[INFO] updating cached repository PistonDevelopers/hematite [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/PistonDevelopers/hematite [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/PistonDevelopers/hematite" "work/ex/clippy-test-run/sources/stable/gh/PistonDevelopers/hematite"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/PistonDevelopers/hematite'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/PistonDevelopers/hematite" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/PistonDevelopers/hematite"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/PistonDevelopers/hematite'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 70de2fd993ffe76465b36f0b47dc44fd90f0051a [INFO] sha for GitHub repo PistonDevelopers/hematite: 70de2fd993ffe76465b36f0b47dc44fd90f0051a [INFO] validating manifest of PistonDevelopers/hematite on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of PistonDevelopers/hematite on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing PistonDevelopers/hematite [INFO] finished frobbing PistonDevelopers/hematite [INFO] frobbed toml for PistonDevelopers/hematite written to work/ex/clippy-test-run/sources/stable/gh/PistonDevelopers/hematite/Cargo.toml [INFO] started frobbing PistonDevelopers/hematite [INFO] finished frobbing PistonDevelopers/hematite [INFO] frobbed toml for PistonDevelopers/hematite written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/PistonDevelopers/hematite/Cargo.toml [INFO] crate PistonDevelopers/hematite has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting PistonDevelopers/hematite against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/PistonDevelopers/hematite:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] f118ac1fd3bdb670c55b67104ae0ad38208fe351028572a238196dc99a67d743 [INFO] running `"docker" "start" "-a" "f118ac1fd3bdb670c55b67104ae0ad38208fe351028572a238196dc99a67d743"` [INFO] [stderr] Checking array v0.0.1 [INFO] [stderr] Checking fps_counter v1.0.0 [INFO] [stderr] Checking shared_library v0.1.9 [INFO] [stderr] Checking x11-dl v2.18.3 [INFO] [stderr] Checking rusttype v0.7.2 [INFO] [stderr] Checking zip v0.1.19 [INFO] [stderr] Compiling derivative v1.0.2 [INFO] [stderr] Compiling num-derive v0.2.3 [INFO] [stderr] Checking memmap v0.2.3 [INFO] [stderr] Checking wayland-commons v0.21.4 [INFO] [stderr] Checking jpeg-decoder v0.1.15 [INFO] [stderr] Checking pistoncore-input v0.23.0 [INFO] [stderr] Checking osmesa-sys v0.1.2 [INFO] [stderr] Checking andrew v0.1.4 [INFO] [stderr] Checking wayland-client v0.21.4 [INFO] [stderr] Checking pistoncore-window v0.34.0 [INFO] [stderr] Checking camera_controllers v0.26.0 [INFO] [stderr] Checking wayland-protocols v0.21.4 [INFO] [stderr] Checking tiff v0.2.1 [INFO] [stderr] Checking gfx_core v0.8.3 [INFO] [stderr] Checking image v0.20.1 [INFO] [stderr] Checking pistoncore-event_loop v0.39.0 [INFO] [stderr] Checking piston v0.39.0 [INFO] [stderr] Checking smithay-client-toolkit v0.4.2 [INFO] [stderr] Checking winit v0.18.0 [INFO] [stderr] Checking glutin v0.19.0 [INFO] [stderr] Checking pistoncore-glutin_window v0.51.0 [INFO] [stderr] Checking gfx v0.17.1 [INFO] [stderr] Checking gfx_device_gl v0.15.3 [INFO] [stderr] Checking piston-gfx_texture v0.34.0 [INFO] [stderr] Checking piston3d-gfx_voxel v0.26.0 [INFO] [stderr] Checking hematite v0.0.31 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minecraft/biome.rs:32:17 [INFO] [stderr] | [INFO] [stderr] 32 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minecraft/block_state.rs:185:17 [INFO] [stderr] | [INFO] [stderr] 185 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minecraft/block_state.rs:186:17 [INFO] [stderr] | [INFO] [stderr] 186 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minecraft/block_state.rs:187:17 [INFO] [stderr] | [INFO] [stderr] 187 | variant: variant, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `variant` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minecraft/block_state.rs:188:17 [INFO] [stderr] | [INFO] [stderr] 188 | random_offset: random_offset, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `random_offset` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minecraft/block_state.rs:189:17 [INFO] [stderr] | [INFO] [stderr] 189 | polymorph_oracle: polymorph_oracle [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `polymorph_oracle` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/minecraft/block_state.rs:278:31 [INFO] [stderr] | [INFO] [stderr] 278 | let (a, b, c, d) = (rot_mat[0] as f32, rot_mat[1] as f32, [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/minecraft/block_state.rs:283:30 [INFO] [stderr] | [INFO] [stderr] 283 | let (x, y) = (xyz[ix] - 0.5, xyz[iy] - 0.5); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 7th binding whose name is just one char [INFO] [stderr] --> src/minecraft/block_state.rs:283:33 [INFO] [stderr] | [INFO] [stderr] 283 | let (x, y) = (xyz[ix] - 0.5, xyz[iy] - 0.5); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/minecraft/block_state.rs:290:30 [INFO] [stderr] | [INFO] [stderr] 290 | let (x, y) = (dir[ix], dir[iy]); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 7th binding whose name is just one char [INFO] [stderr] --> src/minecraft/block_state.rs:290:33 [INFO] [stderr] | [INFO] [stderr] 290 | let (x, y) = (dir[ix], dir[iy]); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/minecraft/block_state.rs:321:34 [INFO] [stderr] | [INFO] [stderr] 321 | let (u, v) = (uv[0] - u_base - 8.0, uv[1] - v_base - 8.0); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 7th binding whose name is just one char [INFO] [stderr] --> src/minecraft/block_state.rs:321:37 [INFO] [stderr] | [INFO] [stderr] 321 | let (u, v) = (uv[0] - u_base - 8.0, uv[1] - v_base - 8.0); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minecraft/block_state.rs:257:37 [INFO] [stderr] | [INFO] [stderr] 257 | model: model, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `model` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minecraft/block_state.rs:258:37 [INFO] [stderr] | [INFO] [stderr] 258 | rotate_x: rotate_x, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `rotate_x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minecraft/block_state.rs:259:37 [INFO] [stderr] | [INFO] [stderr] 259 | rotate_y: rotate_y, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `rotate_y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minecraft/block_state.rs:260:37 [INFO] [stderr] | [INFO] [stderr] 260 | uvlock: uvlock [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `uvlock` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minecraft/block_state.rs:349:17 [INFO] [stderr] | [INFO] [stderr] 349 | model: model, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `model` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minecraft/block_state.rs:373:13 [INFO] [stderr] | [INFO] [stderr] 373 | models: models, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `models` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minecraft/block_state.rs:374:13 [INFO] [stderr] | [INFO] [stderr] 374 | texture: texture [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `texture` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/minecraft/model.rs:247:42 [INFO] [stderr] | [INFO] [stderr] 247 | let (x, y) = (v.xyz[ix] - ox, v.xyz[iy] - oy); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/minecraft/model.rs:247:45 [INFO] [stderr] | [INFO] [stderr] 247 | let (x, y) = (v.xyz[ix] - ox, v.xyz[iy] - oy); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minecraft/model.rs:227:25 [INFO] [stderr] | [INFO] [stderr] 227 | tint: tint, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `tint` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minecraft/model.rs:228:25 [INFO] [stderr] | [INFO] [stderr] 228 | cull_face: cull_face, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `cull_face` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minecraft/model.rs:366:17 [INFO] [stderr] | [INFO] [stderr] 366 | faces: faces, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `faces` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minecraft/model.rs:368:17 [INFO] [stderr] | [INFO] [stderr] 368 | tint_source: tint_source [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `tint_source` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minecraft/region.rs:36:19 [INFO] [stderr] | [INFO] [stderr] 36 | Ok(Region{mmap: mmap}) [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `mmap` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/minecraft/region.rs:71:17 [INFO] [stderr] | [INFO] [stderr] 71 | let y = chunk.get("Y") [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minecraft/region.rs:117:13 [INFO] [stderr] | [INFO] [stderr] 117 | chunks: chunks, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `chunks` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/shader.rs:94:13 [INFO] [stderr] | [INFO] [stderr] 94 | vbuf: vbuf, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `vbuf` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/shader.rs:103:13 [INFO] [stderr] | [INFO] [stderr] 103 | factory: factory, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `factory` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/shader.rs:104:13 [INFO] [stderr] | [INFO] [stderr] 104 | pipe: pipe, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `pipe` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/shader.rs:105:13 [INFO] [stderr] | [INFO] [stderr] 105 | data: data, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/shader.rs:106:13 [INFO] [stderr] | [INFO] [stderr] 106 | encoder: encoder, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `encoder` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/shader.rs:110:13 [INFO] [stderr] | [INFO] [stderr] 110 | slice: slice, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `slice` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minecraft/biome.rs:32:17 [INFO] [stderr] | [INFO] [stderr] 32 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minecraft/block_state.rs:185:17 [INFO] [stderr] | [INFO] [stderr] 185 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minecraft/block_state.rs:186:17 [INFO] [stderr] | [INFO] [stderr] 186 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minecraft/block_state.rs:187:17 [INFO] [stderr] | [INFO] [stderr] 187 | variant: variant, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `variant` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minecraft/block_state.rs:188:17 [INFO] [stderr] | [INFO] [stderr] 188 | random_offset: random_offset, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `random_offset` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minecraft/block_state.rs:189:17 [INFO] [stderr] | [INFO] [stderr] 189 | polymorph_oracle: polymorph_oracle [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `polymorph_oracle` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/minecraft/block_state.rs:278:31 [INFO] [stderr] | [INFO] [stderr] 278 | let (a, b, c, d) = (rot_mat[0] as f32, rot_mat[1] as f32, [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/minecraft/block_state.rs:283:30 [INFO] [stderr] | [INFO] [stderr] 283 | let (x, y) = (xyz[ix] - 0.5, xyz[iy] - 0.5); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 7th binding whose name is just one char [INFO] [stderr] --> src/minecraft/block_state.rs:283:33 [INFO] [stderr] | [INFO] [stderr] 283 | let (x, y) = (xyz[ix] - 0.5, xyz[iy] - 0.5); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/minecraft/block_state.rs:290:30 [INFO] [stderr] | [INFO] [stderr] 290 | let (x, y) = (dir[ix], dir[iy]); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 7th binding whose name is just one char [INFO] [stderr] --> src/minecraft/block_state.rs:290:33 [INFO] [stderr] | [INFO] [stderr] 290 | let (x, y) = (dir[ix], dir[iy]); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/minecraft/block_state.rs:321:34 [INFO] [stderr] | [INFO] [stderr] 321 | let (u, v) = (uv[0] - u_base - 8.0, uv[1] - v_base - 8.0); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 7th binding whose name is just one char [INFO] [stderr] --> src/minecraft/block_state.rs:321:37 [INFO] [stderr] | [INFO] [stderr] 321 | let (u, v) = (uv[0] - u_base - 8.0, uv[1] - v_base - 8.0); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minecraft/block_state.rs:257:37 [INFO] [stderr] | [INFO] [stderr] 257 | model: model, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `model` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minecraft/block_state.rs:258:37 [INFO] [stderr] | [INFO] [stderr] 258 | rotate_x: rotate_x, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `rotate_x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minecraft/block_state.rs:259:37 [INFO] [stderr] | [INFO] [stderr] 259 | rotate_y: rotate_y, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `rotate_y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minecraft/block_state.rs:260:37 [INFO] [stderr] | [INFO] [stderr] 260 | uvlock: uvlock [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `uvlock` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minecraft/block_state.rs:349:17 [INFO] [stderr] | [INFO] [stderr] 349 | model: model, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `model` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minecraft/block_state.rs:373:13 [INFO] [stderr] | [INFO] [stderr] 373 | models: models, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `models` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minecraft/block_state.rs:374:13 [INFO] [stderr] | [INFO] [stderr] 374 | texture: texture [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `texture` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/minecraft/model.rs:247:42 [INFO] [stderr] | [INFO] [stderr] 247 | let (x, y) = (v.xyz[ix] - ox, v.xyz[iy] - oy); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/minecraft/model.rs:247:45 [INFO] [stderr] | [INFO] [stderr] 247 | let (x, y) = (v.xyz[ix] - ox, v.xyz[iy] - oy); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minecraft/model.rs:227:25 [INFO] [stderr] | [INFO] [stderr] 227 | tint: tint, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `tint` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minecraft/model.rs:228:25 [INFO] [stderr] | [INFO] [stderr] 228 | cull_face: cull_face, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `cull_face` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minecraft/model.rs:366:17 [INFO] [stderr] | [INFO] [stderr] 366 | faces: faces, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `faces` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minecraft/model.rs:368:17 [INFO] [stderr] | [INFO] [stderr] 368 | tint_source: tint_source [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `tint_source` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minecraft/region.rs:36:19 [INFO] [stderr] | [INFO] [stderr] 36 | Ok(Region{mmap: mmap}) [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `mmap` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/minecraft/region.rs:71:17 [INFO] [stderr] | [INFO] [stderr] 71 | let y = chunk.get("Y") [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minecraft/region.rs:117:13 [INFO] [stderr] | [INFO] [stderr] 117 | chunks: chunks, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `chunks` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/shader.rs:94:13 [INFO] [stderr] | [INFO] [stderr] 94 | vbuf: vbuf, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `vbuf` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/shader.rs:103:13 [INFO] [stderr] | [INFO] [stderr] 103 | factory: factory, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `factory` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/shader.rs:104:13 [INFO] [stderr] | [INFO] [stderr] 104 | pipe: pipe, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `pipe` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/shader.rs:105:13 [INFO] [stderr] | [INFO] [stderr] 105 | data: data, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/shader.rs:106:13 [INFO] [stderr] | [INFO] [stderr] 106 | encoder: encoder, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `encoder` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/shader.rs:110:13 [INFO] [stderr] | [INFO] [stderr] 110 | slice: slice, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `slice` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/minecraft/block_state.rs:467:36 [INFO] [stderr] | [INFO] [stderr] 467 | let seed = Wrapping((Wrapping(x as i32) * Wrapping(3129871)).0 as i64) ^ Wrapping(z as i64) * Wrapping(116129781); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `Wrapping((Wrapping(x as i32) * Wrapping(3129871)).0 as i64) ^ (Wrapping(z as i64) * Wrapping(116129781))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::precedence)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/minecraft/block_state.rs:467:76 [INFO] [stderr] | [INFO] [stderr] 467 | let seed = Wrapping((Wrapping(x as i32) * Wrapping(3129871)).0 as i64) ^ Wrapping(z as i64) * Wrapping(116129781); [INFO] [stderr] | ^^^^^^^ help: consider: `3_129_871` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/minecraft/block_state.rs:467:128 [INFO] [stderr] | [INFO] [stderr] 467 | let seed = Wrapping((Wrapping(x as i32) * Wrapping(3129871)).0 as i64) ^ Wrapping(z as i64) * Wrapping(116129781); [INFO] [stderr] | ^^^^^^^^^ help: consider: `116_129_781` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/minecraft/block_state.rs:468:60 [INFO] [stderr] | [INFO] [stderr] 468 | let value = seed * seed * Wrapping(42317861) + seed * Wrapping(11); [INFO] [stderr] | ^^^^^^^^ help: consider: `42_317_861` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/minecraft/model.rs:340:20 [INFO] [stderr] | [INFO] [stderr] 340 | } else { [INFO] [stderr] | ____________________^ [INFO] [stderr] 341 | | if faces.iter().any(|f| f.ao_face.is_none()) { [INFO] [stderr] 342 | | println!("Warning: model {} uses AO but has faces which are unsuitable", name); [INFO] [stderr] 343 | | } [INFO] [stderr] 344 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 340 | } else if faces.iter().any(|f| f.ao_face.is_none()) { [INFO] [stderr] 341 | println!("Warning: model {} uses AO but has faces which are unsuitable", name); [INFO] [stderr] 342 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/chunk.rs:44:25 [INFO] [stderr] | [INFO] [stderr] 44 | pub const EMPTY_CHUNK: &'static Chunk = &Chunk { [INFO] [stderr] | -^^^^^^^------ help: consider removing `'static`: `&Chunk` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/main.rs:296:90 [INFO] [stderr] | [INFO] [stderr] 296 | end_duration.as_secs() as f64 + end_duration.subsec_nanos() as f64 / 1000_000_000.0, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider: `1_000_000_000.0` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::inconsistent_digit_grouping)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/main.rs:297:102 [INFO] [stderr] | [INFO] [stderr] 297 | frame_end_duration.as_secs() as f64 + frame_end_duration.subsec_nanos() as f64 / 1000_000_000.0, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider: `1_000_000_000.0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/minecraft/block_state.rs:467:36 [INFO] [stderr] | [INFO] [stderr] 467 | let seed = Wrapping((Wrapping(x as i32) * Wrapping(3129871)).0 as i64) ^ Wrapping(z as i64) * Wrapping(116129781); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `Wrapping((Wrapping(x as i32) * Wrapping(3129871)).0 as i64) ^ (Wrapping(z as i64) * Wrapping(116129781))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::precedence)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/minecraft/block_state.rs:467:76 [INFO] [stderr] | [INFO] [stderr] 467 | let seed = Wrapping((Wrapping(x as i32) * Wrapping(3129871)).0 as i64) ^ Wrapping(z as i64) * Wrapping(116129781); [INFO] [stderr] | ^^^^^^^ help: consider: `3_129_871` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/minecraft/block_state.rs:467:128 [INFO] [stderr] | [INFO] [stderr] 467 | let seed = Wrapping((Wrapping(x as i32) * Wrapping(3129871)).0 as i64) ^ Wrapping(z as i64) * Wrapping(116129781); [INFO] [stderr] | ^^^^^^^^^ help: consider: `116_129_781` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/minecraft/block_state.rs:468:60 [INFO] [stderr] | [INFO] [stderr] 468 | let value = seed * seed * Wrapping(42317861) + seed * Wrapping(11); [INFO] [stderr] | ^^^^^^^^ help: consider: `42_317_861` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/minecraft/model.rs:340:20 [INFO] [stderr] | [INFO] [stderr] 340 | } else { [INFO] [stderr] | ____________________^ [INFO] [stderr] 341 | | if faces.iter().any(|f| f.ao_face.is_none()) { [INFO] [stderr] 342 | | println!("Warning: model {} uses AO but has faces which are unsuitable", name); [INFO] [stderr] 343 | | } [INFO] [stderr] 344 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 340 | } else if faces.iter().any(|f| f.ao_face.is_none()) { [INFO] [stderr] 341 | println!("Warning: model {} uses AO but has faces which are unsuitable", name); [INFO] [stderr] 342 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/chunk.rs:44:25 [INFO] [stderr] | [INFO] [stderr] 44 | pub const EMPTY_CHUNK: &'static Chunk = &Chunk { [INFO] [stderr] | -^^^^^^^------ help: consider removing `'static`: `&Chunk` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/main.rs:296:90 [INFO] [stderr] | [INFO] [stderr] 296 | end_duration.as_secs() as f64 + end_duration.subsec_nanos() as f64 / 1000_000_000.0, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider: `1_000_000_000.0` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::inconsistent_digit_grouping)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/main.rs:297:102 [INFO] [stderr] | [INFO] [stderr] 297 | frame_end_duration.as_secs() as f64 + frame_end_duration.subsec_nanos() as f64 / 1000_000_000.0, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider: `1_000_000_000.0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/minecraft/block_state.rs:251:33 [INFO] [stderr] | [INFO] [stderr] 251 | / match variant.remove("z") { [INFO] [stderr] 252 | | Some(r) => println!("ignoring z rotation {} in {}", r, name), [INFO] [stderr] 253 | | None => {} [INFO] [stderr] 254 | | } [INFO] [stderr] | |_________________________________^ help: try this: `if let Some(r) = variant.remove("z") { println!("ignoring z rotation {} in {}", r, name) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/minecraft/block_state.rs:306:39 [INFO] [stderr] | [INFO] [stderr] 306 | if xs.map(|x| x == xs[0]) == [true, true, true, true] { [INFO] [stderr] | ^^^^^^^^^^ help: consider comparing them within some error: `(x - xs[0]).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/minecraft/block_state.rs:306:39 [INFO] [stderr] | [INFO] [stderr] 306 | if xs.map(|x| x == xs[0]) == [true, true, true, true] { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/minecraft/block_state.rs:310:39 [INFO] [stderr] | [INFO] [stderr] 310 | if ys.map(|y| y == ys[0]) == [true, true, true, true] { [INFO] [stderr] | ^^^^^^^^^^ help: consider comparing them within some error: `(y - ys[0]).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/minecraft/block_state.rs:310:39 [INFO] [stderr] | [INFO] [stderr] 310 | if ys.map(|y| y == ys[0]) == [true, true, true, true] { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/minecraft/block_state.rs:467:45 [INFO] [stderr] | [INFO] [stderr] 467 | let seed = Wrapping((Wrapping(x as i32) * Wrapping(3129871)).0 as i64) ^ Wrapping(z as i64) * Wrapping(116129781); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from((Wrapping(x as i32) * Wrapping(3129871)).0)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/minecraft/block_state.rs:479:21 [INFO] [stderr] | [INFO] [stderr] 479 | / match face.cull_face { [INFO] [stderr] 480 | | Some(cull_face) => { [INFO] [stderr] 481 | | let (neighbor, _) = at(cull_face.direction()); [INFO] [stderr] 482 | | if block_states.get_opacity(neighbor).is_opaque() { [INFO] [stderr] ... | [INFO] [stderr] 486 | | None => {} [INFO] [stderr] 487 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 479 | if let Some(cull_face) = face.cull_face { [INFO] [stderr] 480 | let (neighbor, _) = at(cull_face.direction()); [INFO] [stderr] 481 | if block_states.get_opacity(neighbor).is_opaque() { [INFO] [stderr] 482 | continue; [INFO] [stderr] 483 | } [INFO] [stderr] 484 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/minecraft/block_state.rs:502:55 [INFO] [stderr] | [INFO] [stderr] 502 | let mut rgb = rgb.map(|x: u8| x as f32 / 255.0); [INFO] [stderr] | ^^^^^^^^ help: try: `f32::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/minecraft/block_state.rs:513:59 [INFO] [stderr] | [INFO] [stderr] 513 | let mut light_level = light_level as f32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f32::from(light_level)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/minecraft/block_state.rs:564:43 [INFO] [stderr] | [INFO] [stderr] 564 | }.map(|x| x as f32 / 255.0)); [INFO] [stderr] | ^^^^^^^^ help: try: `f32::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/minecraft/model.rs:111:9 [INFO] [stderr] | [INFO] [stderr] 111 | / match cache.get(name) { [INFO] [stderr] 112 | | Some(model) => return f(model, atlas), [INFO] [stderr] 113 | | None => {} [INFO] [stderr] 114 | | } [INFO] [stderr] | |_________^ help: try this: `if let Some(model) = cache.get(name) { return f(model, atlas) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/minecraft/model.rs:130:9 [INFO] [stderr] | [INFO] [stderr] 130 | / match obj.find("ambientocclusion").and_then(|x| x.as_boolean()) { [INFO] [stderr] 131 | | Some(ambient_occlusion) => model.no_ambient_occlusion = !ambient_occlusion, [INFO] [stderr] 132 | | None => {} [INFO] [stderr] 133 | | } [INFO] [stderr] | |_________^ help: try this: `if let Some(ambient_occlusion) = obj.find("ambientocclusion").and_then(|x| x.as_boolean()) { model.no_ambient_occlusion = !ambient_occlusion }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/minecraft/model.rs:135:9 [INFO] [stderr] | [INFO] [stderr] 135 | / match obj.find("textures").and_then(|x| x.as_object()) { [INFO] [stderr] 136 | | Some(textures) => for (name, tex) in textures.iter() { [INFO] [stderr] 137 | | let tex = tex.as_string().unwrap(); [INFO] [stderr] 138 | | let tex = if tex.starts_with('#') { [INFO] [stderr] ... | [INFO] [stderr] 146 | | None => {} [INFO] [stderr] 147 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 135 | if let Some(textures) = obj.find("textures").and_then(|x| x.as_object()) for (name, tex) in textures.iter() { [INFO] [stderr] 136 | let tex = tex.as_string().unwrap(); [INFO] [stderr] 137 | let tex = if tex.starts_with('#') { [INFO] [stderr] 138 | PartialTexture::Variable(tex[1..].to_string()) [INFO] [stderr] 139 | } else { [INFO] [stderr] 140 | let (u, v) = atlas.load(tex); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/minecraft/model.rs:149:9 [INFO] [stderr] | [INFO] [stderr] 149 | / match obj.find("elements").and_then(|x: &json::Json| x.as_array().cloned()) { [INFO] [stderr] 150 | | Some(elements) => for element in elements.iter().map(|x| x) { [INFO] [stderr] 151 | | let from = array3_num(element.find("from").unwrap(), |x| x as f32 / 16.0); [INFO] [stderr] 152 | | let to = array3_num(element.find("to").unwrap(), |x| x as f32 / 16.0); [INFO] [stderr] ... | [INFO] [stderr] 275 | | None => {} [INFO] [stderr] 276 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 149 | if let Some(elements) = obj.find("elements").and_then(|x: &json::Json| x.as_array().cloned()) for element in elements.iter().map(|x| x) { [INFO] [stderr] 150 | let from = array3_num(element.find("from").unwrap(), |x| x as f32 / 16.0); [INFO] [stderr] 151 | let to = array3_num(element.find("to").unwrap(), |x| x as f32 / 16.0); [INFO] [stderr] 152 | let scale = [to[0] - from[0], to[1] - from[1], to[2] - from[2]]; [INFO] [stderr] 153 | [INFO] [stderr] 154 | let is_full_cube = from == [0.0, 0.0, 0.0] && to == [1.0, 1.0, 1.0]; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/minecraft/model.rs:173:45 [INFO] [stderr] | [INFO] [stderr] 173 | assert!(tex.starts_with("#")); [INFO] [stderr] | ^^^ help: try using a char instead: `'#'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/minecraft/model.rs:233:17 [INFO] [stderr] | [INFO] [stderr] 233 | / match element.find("rotation") { [INFO] [stderr] 234 | | Some(r) => { [INFO] [stderr] 235 | | let angle = r.find("angle").unwrap().as_f64().unwrap(); [INFO] [stderr] 236 | | let angle = angle as f32 / 180.0 * PI; [INFO] [stderr] ... | [INFO] [stderr] 272 | | None => {} [INFO] [stderr] 273 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 233 | if let Some(r) = element.find("rotation") { [INFO] [stderr] 234 | let angle = r.find("angle").unwrap().as_f64().unwrap(); [INFO] [stderr] 235 | let angle = angle as f32 / 180.0 * PI; [INFO] [stderr] 236 | let rescale = r.find("rescale").map_or(false, |x| x.as_boolean().unwrap()); [INFO] [stderr] 237 | let origin = array3_num(r.find("origin").unwrap(), |x| x as f32 / 16.0); [INFO] [stderr] 238 | [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/minecraft/nbt.rs:191:13 [INFO] [stderr] | [INFO] [stderr] 191 | try!(self.reader.read(&mut c)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/minecraft/nbt.rs:202:13 [INFO] [stderr] | [INFO] [stderr] 202 | try!(self.reader.read(&mut c)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/minecraft/nbt.rs:369:13 [INFO] [stderr] | [INFO] [stderr] 369 | / match (it.next(), it.next()) { [INFO] [stderr] 370 | | // exactly one character [INFO] [stderr] 371 | | (Some(c), None) => return Ok(c), [INFO] [stderr] 372 | | _ => () [INFO] [stderr] 373 | | } [INFO] [stderr] | |_____________^ help: try this: `if let (Some(c), None) = (it.next(), it.next()) { return Ok(c) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/minecraft/block_state.rs:251:33 [INFO] [stderr] | [INFO] [stderr] 251 | / match variant.remove("z") { [INFO] [stderr] 252 | | Some(r) => println!("ignoring z rotation {} in {}", r, name), [INFO] [stderr] 253 | | None => {} [INFO] [stderr] 254 | | } [INFO] [stderr] | |_________________________________^ help: try this: `if let Some(r) = variant.remove("z") { println!("ignoring z rotation {} in {}", r, name) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/minecraft/block_state.rs:306:39 [INFO] [stderr] | [INFO] [stderr] 306 | if xs.map(|x| x == xs[0]) == [true, true, true, true] { [INFO] [stderr] | ^^^^^^^^^^ help: consider comparing them within some error: `(x - xs[0]).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/minecraft/block_state.rs:306:39 [INFO] [stderr] | [INFO] [stderr] 306 | if xs.map(|x| x == xs[0]) == [true, true, true, true] { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/minecraft/block_state.rs:310:39 [INFO] [stderr] | [INFO] [stderr] 310 | if ys.map(|y| y == ys[0]) == [true, true, true, true] { [INFO] [stderr] | ^^^^^^^^^^ help: consider comparing them within some error: `(y - ys[0]).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/minecraft/block_state.rs:310:39 [INFO] [stderr] | [INFO] [stderr] 310 | if ys.map(|y| y == ys[0]) == [true, true, true, true] { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/minecraft/block_state.rs:467:45 [INFO] [stderr] | [INFO] [stderr] 467 | let seed = Wrapping((Wrapping(x as i32) * Wrapping(3129871)).0 as i64) ^ Wrapping(z as i64) * Wrapping(116129781); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from((Wrapping(x as i32) * Wrapping(3129871)).0)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/minecraft/block_state.rs:479:21 [INFO] [stderr] | [INFO] [stderr] 479 | / match face.cull_face { [INFO] [stderr] 480 | | Some(cull_face) => { [INFO] [stderr] 481 | | let (neighbor, _) = at(cull_face.direction()); [INFO] [stderr] 482 | | if block_states.get_opacity(neighbor).is_opaque() { [INFO] [stderr] ... | [INFO] [stderr] 486 | | None => {} [INFO] [stderr] 487 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 479 | if let Some(cull_face) = face.cull_face { [INFO] [stderr] 480 | let (neighbor, _) = at(cull_face.direction()); [INFO] [stderr] 481 | if block_states.get_opacity(neighbor).is_opaque() { [INFO] [stderr] 482 | continue; [INFO] [stderr] 483 | } [INFO] [stderr] 484 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/minecraft/block_state.rs:502:55 [INFO] [stderr] | [INFO] [stderr] 502 | let mut rgb = rgb.map(|x: u8| x as f32 / 255.0); [INFO] [stderr] | ^^^^^^^^ help: try: `f32::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/minecraft/block_state.rs:513:59 [INFO] [stderr] | [INFO] [stderr] 513 | let mut light_level = light_level as f32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f32::from(light_level)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/minecraft/block_state.rs:564:43 [INFO] [stderr] | [INFO] [stderr] 564 | }.map(|x| x as f32 / 255.0)); [INFO] [stderr] | ^^^^^^^^ help: try: `f32::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/minecraft/region.rs:71:21 [INFO] [stderr] | [INFO] [stderr] 71 | let y = chunk.get("Y") [INFO] [stderr] | _____________________^ [INFO] [stderr] 72 | | .unwrap().as_byte().unwrap(); [INFO] [stderr] | |_________________________^ help: try this: `&chunk["Y"]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/minecraft/region.rs:73:26 [INFO] [stderr] | [INFO] [stderr] 73 | let blocks = chunk.get("Blocks") [INFO] [stderr] | __________________________^ [INFO] [stderr] 74 | | .unwrap().as_bytearray().unwrap(); [INFO] [stderr] | |_________________________^ help: try this: `&chunk["Blocks"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/minecraft/region.rs:77:31 [INFO] [stderr] | [INFO] [stderr] 77 | let blocks_data = chunk.get("Data") [INFO] [stderr] | _______________________________^ [INFO] [stderr] 78 | | .unwrap().as_bytearray().unwrap(); [INFO] [stderr] | |_________________________^ help: try this: `&chunk["Data"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/minecraft/region.rs:79:31 [INFO] [stderr] | [INFO] [stderr] 79 | let block_light = chunk.get("BlockLight") [INFO] [stderr] | _______________________________^ [INFO] [stderr] 80 | | .unwrap().as_bytearray().unwrap(); [INFO] [stderr] | |_________________________^ help: try this: `&chunk["BlockLight"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/minecraft/region.rs:81:29 [INFO] [stderr] | [INFO] [stderr] 81 | let sky_light = chunk.get("SkyLight") [INFO] [stderr] | _____________________________^ [INFO] [stderr] 82 | | .unwrap().as_bytearray().unwrap(); [INFO] [stderr] | |_________________________^ help: try this: `&chunk["SkyLight"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/minecraft/region.rs:95:33 [INFO] [stderr] | [INFO] [stderr] 95 | value: ((blocks[i] as u16) << 4) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u16::from(blocks[i])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/minecraft/region.rs:96:33 [INFO] [stderr] | [INFO] [stderr] 96 | | ((top as u16) << 12) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(top)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/minecraft/region.rs:97:32 [INFO] [stderr] | [INFO] [stderr] 97 | | (data as u16) [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(data)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/minecraft/region.rs:114:22 [INFO] [stderr] | [INFO] [stderr] 114 | let biomes = level.get("Biomes") [INFO] [stderr] | ______________________^ [INFO] [stderr] 115 | | .unwrap().as_bytearray().unwrap(); [INFO] [stderr] | |_____________________^ help: try this: `&level["Biomes"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/minecraft/model.rs:111:9 [INFO] [stderr] | [INFO] [stderr] 111 | / match cache.get(name) { [INFO] [stderr] 112 | | Some(model) => return f(model, atlas), [INFO] [stderr] 113 | | None => {} [INFO] [stderr] 114 | | } [INFO] [stderr] | |_________^ help: try this: `if let Some(model) = cache.get(name) { return f(model, atlas) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/minecraft/model.rs:130:9 [INFO] [stderr] | [INFO] [stderr] 130 | / match obj.find("ambientocclusion").and_then(|x| x.as_boolean()) { [INFO] [stderr] 131 | | Some(ambient_occlusion) => model.no_ambient_occlusion = !ambient_occlusion, [INFO] [stderr] 132 | | None => {} [INFO] [stderr] 133 | | } [INFO] [stderr] | |_________^ help: try this: `if let Some(ambient_occlusion) = obj.find("ambientocclusion").and_then(|x| x.as_boolean()) { model.no_ambient_occlusion = !ambient_occlusion }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/minecraft/model.rs:135:9 [INFO] [stderr] | [INFO] [stderr] 135 | / match obj.find("textures").and_then(|x| x.as_object()) { [INFO] [stderr] 136 | | Some(textures) => for (name, tex) in textures.iter() { [INFO] [stderr] 137 | | let tex = tex.as_string().unwrap(); [INFO] [stderr] 138 | | let tex = if tex.starts_with('#') { [INFO] [stderr] ... | [INFO] [stderr] 146 | | None => {} [INFO] [stderr] 147 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 135 | if let Some(textures) = obj.find("textures").and_then(|x| x.as_object()) for (name, tex) in textures.iter() { [INFO] [stderr] 136 | let tex = tex.as_string().unwrap(); [INFO] [stderr] 137 | let tex = if tex.starts_with('#') { [INFO] [stderr] 138 | PartialTexture::Variable(tex[1..].to_string()) [INFO] [stderr] 139 | } else { [INFO] [stderr] 140 | let (u, v) = atlas.load(tex); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/minecraft/model.rs:149:9 [INFO] [stderr] | [INFO] [stderr] 149 | / match obj.find("elements").and_then(|x: &json::Json| x.as_array().cloned()) { [INFO] [stderr] 150 | | Some(elements) => for element in elements.iter().map(|x| x) { [INFO] [stderr] 151 | | let from = array3_num(element.find("from").unwrap(), |x| x as f32 / 16.0); [INFO] [stderr] 152 | | let to = array3_num(element.find("to").unwrap(), |x| x as f32 / 16.0); [INFO] [stderr] ... | [INFO] [stderr] 275 | | None => {} [INFO] [stderr] 276 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 149 | if let Some(elements) = obj.find("elements").and_then(|x: &json::Json| x.as_array().cloned()) for element in elements.iter().map(|x| x) { [INFO] [stderr] 150 | let from = array3_num(element.find("from").unwrap(), |x| x as f32 / 16.0); [INFO] [stderr] 151 | let to = array3_num(element.find("to").unwrap(), |x| x as f32 / 16.0); [INFO] [stderr] 152 | let scale = [to[0] - from[0], to[1] - from[1], to[2] - from[2]]; [INFO] [stderr] 153 | [INFO] [stderr] 154 | let is_full_cube = from == [0.0, 0.0, 0.0] && to == [1.0, 1.0, 1.0]; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/minecraft/model.rs:173:45 [INFO] [stderr] | [INFO] [stderr] 173 | assert!(tex.starts_with("#")); [INFO] [stderr] | ^^^ help: try using a char instead: `'#'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/minecraft/model.rs:233:17 [INFO] [stderr] | [INFO] [stderr] 233 | / match element.find("rotation") { [INFO] [stderr] 234 | | Some(r) => { [INFO] [stderr] 235 | | let angle = r.find("angle").unwrap().as_f64().unwrap(); [INFO] [stderr] 236 | | let angle = angle as f32 / 180.0 * PI; [INFO] [stderr] ... | [INFO] [stderr] 272 | | None => {} [INFO] [stderr] 273 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 233 | if let Some(r) = element.find("rotation") { [INFO] [stderr] 234 | let angle = r.find("angle").unwrap().as_f64().unwrap(); [INFO] [stderr] 235 | let angle = angle as f32 / 180.0 * PI; [INFO] [stderr] 236 | let rescale = r.find("rescale").map_or(false, |x| x.as_boolean().unwrap()); [INFO] [stderr] 237 | let origin = array3_num(r.find("origin").unwrap(), |x| x as f32 / 16.0); [INFO] [stderr] 238 | [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `chunk::ChunkManager` [INFO] [stderr] --> src/chunk.rs:60:5 [INFO] [stderr] | [INFO] [stderr] 60 | / pub fn new() -> ChunkManager { [INFO] [stderr] 61 | | ChunkManager { [INFO] [stderr] 62 | | chunk_columns: HashMap::new() [INFO] [stderr] 63 | | } [INFO] [stderr] 64 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 55 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/minecraft/nbt.rs:191:13 [INFO] [stderr] | [INFO] [stderr] 191 | try!(self.reader.read(&mut c)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/minecraft/nbt.rs:202:13 [INFO] [stderr] | [INFO] [stderr] 202 | try!(self.reader.read(&mut c)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/minecraft/nbt.rs:369:13 [INFO] [stderr] | [INFO] [stderr] 369 | / match (it.next(), it.next()) { [INFO] [stderr] 370 | | // exactly one character [INFO] [stderr] 371 | | (Some(c), None) => return Ok(c), [INFO] [stderr] 372 | | _ => () [INFO] [stderr] 373 | | } [INFO] [stderr] | |_____________^ help: try this: `if let (Some(c), None) = (it.next(), it.next()) { return Ok(c) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/main.rs:106:21 [INFO] [stderr] | [INFO] [stderr] 106 | let file_name = PathBuf::from(world.join("level.dat")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `PathBuf::from()`: `world.join("level.dat")` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/minecraft/region.rs:71:21 [INFO] [stderr] | [INFO] [stderr] 71 | let y = chunk.get("Y") [INFO] [stderr] | _____________________^ [INFO] [stderr] 72 | | .unwrap().as_byte().unwrap(); [INFO] [stderr] | |_________________________^ help: try this: `&chunk["Y"]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/minecraft/region.rs:73:26 [INFO] [stderr] | [INFO] [stderr] 73 | let blocks = chunk.get("Blocks") [INFO] [stderr] | __________________________^ [INFO] [stderr] 74 | | .unwrap().as_bytearray().unwrap(); [INFO] [stderr] | |_________________________^ help: try this: `&chunk["Blocks"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/minecraft/region.rs:77:31 [INFO] [stderr] | [INFO] [stderr] 77 | let blocks_data = chunk.get("Data") [INFO] [stderr] | _______________________________^ [INFO] [stderr] 78 | | .unwrap().as_bytearray().unwrap(); [INFO] [stderr] | |_________________________^ help: try this: `&chunk["Data"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/minecraft/region.rs:79:31 [INFO] [stderr] | [INFO] [stderr] 79 | let block_light = chunk.get("BlockLight") [INFO] [stderr] | _______________________________^ [INFO] [stderr] 80 | | .unwrap().as_bytearray().unwrap(); [INFO] [stderr] | |_________________________^ help: try this: `&chunk["BlockLight"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/minecraft/region.rs:81:29 [INFO] [stderr] | [INFO] [stderr] 81 | let sky_light = chunk.get("SkyLight") [INFO] [stderr] | _____________________________^ [INFO] [stderr] 82 | | .unwrap().as_bytearray().unwrap(); [INFO] [stderr] | |_________________________^ help: try this: `&chunk["SkyLight"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/minecraft/region.rs:95:33 [INFO] [stderr] | [INFO] [stderr] 95 | value: ((blocks[i] as u16) << 4) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u16::from(blocks[i])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/minecraft/region.rs:96:33 [INFO] [stderr] | [INFO] [stderr] 96 | | ((top as u16) << 12) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(top)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/minecraft/region.rs:97:32 [INFO] [stderr] | [INFO] [stderr] 97 | | (data as u16) [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(data)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/minecraft/region.rs:114:22 [INFO] [stderr] | [INFO] [stderr] 114 | let biomes = level.get("Biomes") [INFO] [stderr] | ______________________^ [INFO] [stderr] 115 | | .unwrap().as_bytearray().unwrap(); [INFO] [stderr] | |_____________________^ help: try this: `&level["Biomes"]` [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:169:13 [INFO] [stderr] | [INFO] [stderr] 169 | / match region.get_chunk_column(cx, cz) { [INFO] [stderr] 170 | | Some(column) => { [INFO] [stderr] 171 | | let (cx, cz) = ( [INFO] [stderr] 172 | | cx as i32 + regions[0] * 32, [INFO] [stderr] ... | [INFO] [stderr] 177 | | None => {} [INFO] [stderr] 178 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 169 | if let Some(column) = region.get_chunk_column(cx, cz) { [INFO] [stderr] 170 | let (cx, cz) = ( [INFO] [stderr] 171 | cx as i32 + regions[0] * 32, [INFO] [stderr] 172 | cz as i32 + regions[1] * 32 [INFO] [stderr] 173 | ); [INFO] [stderr] 174 | chunk_manager.add_chunk_column(cx, cz, column) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:172:25 [INFO] [stderr] | [INFO] [stderr] 172 | cx as i32 + regions[0] * 32, [INFO] [stderr] | ^^^^^^^^^ help: try: `i32::from(cx)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:173:25 [INFO] [stderr] | [INFO] [stderr] 173 | cz as i32 + regions[1] * 32 [INFO] [stderr] | ^^^^^^^^^ help: try: `i32::from(cz)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:224:16 [INFO] [stderr] | [INFO] [stderr] 224 | if let Some(_) = e.render_args() { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 225 | | // Apply the same y/z camera offset vanilla minecraft has. [INFO] [stderr] 226 | | let mut camera = first_person.camera(0.0); [INFO] [stderr] 227 | | camera.position[1] += 1.62; [INFO] [stderr] ... | [INFO] [stderr] 300 | | window.set_title(title); [INFO] [stderr] 301 | | } [INFO] [stderr] | |_________- help: try this: `if e.render_args().is_some()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:244:17 [INFO] [stderr] | [INFO] [stderr] 244 | / match buffer.borrow_mut().as_mut() { [INFO] [stderr] 245 | | Some(buffer) => { [INFO] [stderr] 246 | | num_total_chunks += 1; [INFO] [stderr] 247 | | [INFO] [stderr] ... | [INFO] [stderr] 283 | | None => {} [INFO] [stderr] 284 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 244 | if let Some(buffer) = buffer.borrow_mut().as_mut() { [INFO] [stderr] 245 | num_total_chunks += 1; [INFO] [stderr] 246 | [INFO] [stderr] 247 | let inf = INFINITY; [INFO] [stderr] 248 | let mut bb_min = [inf, inf, inf]; [INFO] [stderr] 249 | let mut bb_max = [-inf, -inf, -inf]; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/main.rs:269:29 [INFO] [stderr] | [INFO] [stderr] 269 | min.signum() == max.signum() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(min.signum() - max.signum()).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/main.rs:269:29 [INFO] [stderr] | [INFO] [stderr] 269 | min.signum() == max.signum() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:296:53 [INFO] [stderr] | [INFO] [stderr] 296 | end_duration.as_secs() as f64 + end_duration.subsec_nanos() as f64 / 1000_000_000.0, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(end_duration.subsec_nanos())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:297:59 [INFO] [stderr] | [INFO] [stderr] 297 | frame_end_duration.as_secs() as f64 + frame_end_duration.subsec_nanos() as f64 / 1000_000_000.0, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(frame_end_duration.subsec_nanos())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:303:16 [INFO] [stderr] | [INFO] [stderr] 303 | if let Some(_) = e.after_render_args() { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 304 | | device.cleanup(); [INFO] [stderr] 305 | | } [INFO] [stderr] | |_________- help: try this: `if e.after_render_args().is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:307:16 [INFO] [stderr] | [INFO] [stderr] 307 | if let Some(_) = e.update_args() { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 308 | | use std::i32; [INFO] [stderr] 309 | | // HACK(eddyb) find the closest chunk to the player. [INFO] [stderr] 310 | | // The pending vector should be sorted instead. [INFO] [stderr] ... | [INFO] [stderr] 348 | | } [INFO] [stderr] 349 | | } [INFO] [stderr] | |_________- help: try this: `if e.update_args().is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:332:13 [INFO] [stderr] | [INFO] [stderr] 332 | / match pending { [INFO] [stderr] 333 | | Some((coords, buffer, chunks, column_biomes)) => { [INFO] [stderr] 334 | | minecraft::block_state::fill_buffer( [INFO] [stderr] 335 | | &block_states, &biomes, &mut staging_buffer, [INFO] [stderr] ... | [INFO] [stderr] 347 | | None => {} [INFO] [stderr] 348 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 332 | if let Some((coords, buffer, chunks, column_biomes)) = pending { [INFO] [stderr] 333 | minecraft::block_state::fill_buffer( [INFO] [stderr] 334 | &block_states, &biomes, &mut staging_buffer, [INFO] [stderr] 335 | coords, chunks, column_biomes [INFO] [stderr] 336 | ); [INFO] [stderr] 337 | *buffer.borrow_mut() = Some( [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:359:16 [INFO] [stderr] | [INFO] [stderr] 359 | if let Some(_) = e.mouse_relative_args() { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 360 | | if !capture_cursor { [INFO] [stderr] 361 | | // Don't send the mouse event to the FPS controller. [INFO] [stderr] 362 | | continue; [INFO] [stderr] 363 | | } [INFO] [stderr] 364 | | } [INFO] [stderr] | |_________- help: try this: `if e.mouse_relative_args().is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `chunk::ChunkManager` [INFO] [stderr] --> src/chunk.rs:60:5 [INFO] [stderr] | [INFO] [stderr] 60 | / pub fn new() -> ChunkManager { [INFO] [stderr] 61 | | ChunkManager { [INFO] [stderr] 62 | | chunk_columns: HashMap::new() [INFO] [stderr] 63 | | } [INFO] [stderr] 64 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 55 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: aborting due to 5 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `hematite`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/main.rs:106:21 [INFO] [stderr] | [INFO] [stderr] 106 | let file_name = PathBuf::from(world.join("level.dat")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `PathBuf::from()`: `world.join("level.dat")` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:169:13 [INFO] [stderr] | [INFO] [stderr] 169 | / match region.get_chunk_column(cx, cz) { [INFO] [stderr] 170 | | Some(column) => { [INFO] [stderr] 171 | | let (cx, cz) = ( [INFO] [stderr] 172 | | cx as i32 + regions[0] * 32, [INFO] [stderr] ... | [INFO] [stderr] 177 | | None => {} [INFO] [stderr] 178 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 169 | if let Some(column) = region.get_chunk_column(cx, cz) { [INFO] [stderr] 170 | let (cx, cz) = ( [INFO] [stderr] 171 | cx as i32 + regions[0] * 32, [INFO] [stderr] 172 | cz as i32 + regions[1] * 32 [INFO] [stderr] 173 | ); [INFO] [stderr] 174 | chunk_manager.add_chunk_column(cx, cz, column) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:172:25 [INFO] [stderr] | [INFO] [stderr] 172 | cx as i32 + regions[0] * 32, [INFO] [stderr] | ^^^^^^^^^ help: try: `i32::from(cx)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:173:25 [INFO] [stderr] | [INFO] [stderr] 173 | cz as i32 + regions[1] * 32 [INFO] [stderr] | ^^^^^^^^^ help: try: `i32::from(cz)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:224:16 [INFO] [stderr] | [INFO] [stderr] 224 | if let Some(_) = e.render_args() { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 225 | | // Apply the same y/z camera offset vanilla minecraft has. [INFO] [stderr] 226 | | let mut camera = first_person.camera(0.0); [INFO] [stderr] 227 | | camera.position[1] += 1.62; [INFO] [stderr] ... | [INFO] [stderr] 300 | | window.set_title(title); [INFO] [stderr] 301 | | } [INFO] [stderr] | |_________- help: try this: `if e.render_args().is_some()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:244:17 [INFO] [stderr] | [INFO] [stderr] 244 | / match buffer.borrow_mut().as_mut() { [INFO] [stderr] 245 | | Some(buffer) => { [INFO] [stderr] 246 | | num_total_chunks += 1; [INFO] [stderr] 247 | | [INFO] [stderr] ... | [INFO] [stderr] 283 | | None => {} [INFO] [stderr] 284 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 244 | if let Some(buffer) = buffer.borrow_mut().as_mut() { [INFO] [stderr] 245 | num_total_chunks += 1; [INFO] [stderr] 246 | [INFO] [stderr] 247 | let inf = INFINITY; [INFO] [stderr] 248 | let mut bb_min = [inf, inf, inf]; [INFO] [stderr] 249 | let mut bb_max = [-inf, -inf, -inf]; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/main.rs:269:29 [INFO] [stderr] | [INFO] [stderr] 269 | min.signum() == max.signum() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(min.signum() - max.signum()).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/main.rs:269:29 [INFO] [stderr] | [INFO] [stderr] 269 | min.signum() == max.signum() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:296:53 [INFO] [stderr] | [INFO] [stderr] 296 | end_duration.as_secs() as f64 + end_duration.subsec_nanos() as f64 / 1000_000_000.0, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(end_duration.subsec_nanos())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:297:59 [INFO] [stderr] | [INFO] [stderr] 297 | frame_end_duration.as_secs() as f64 + frame_end_duration.subsec_nanos() as f64 / 1000_000_000.0, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(frame_end_duration.subsec_nanos())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:303:16 [INFO] [stderr] | [INFO] [stderr] 303 | if let Some(_) = e.after_render_args() { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 304 | | device.cleanup(); [INFO] [stderr] 305 | | } [INFO] [stderr] | |_________- help: try this: `if e.after_render_args().is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:307:16 [INFO] [stderr] | [INFO] [stderr] 307 | if let Some(_) = e.update_args() { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 308 | | use std::i32; [INFO] [stderr] 309 | | // HACK(eddyb) find the closest chunk to the player. [INFO] [stderr] 310 | | // The pending vector should be sorted instead. [INFO] [stderr] ... | [INFO] [stderr] 348 | | } [INFO] [stderr] 349 | | } [INFO] [stderr] | |_________- help: try this: `if e.update_args().is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:332:13 [INFO] [stderr] | [INFO] [stderr] 332 | / match pending { [INFO] [stderr] 333 | | Some((coords, buffer, chunks, column_biomes)) => { [INFO] [stderr] 334 | | minecraft::block_state::fill_buffer( [INFO] [stderr] 335 | | &block_states, &biomes, &mut staging_buffer, [INFO] [stderr] ... | [INFO] [stderr] 347 | | None => {} [INFO] [stderr] 348 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 332 | if let Some((coords, buffer, chunks, column_biomes)) = pending { [INFO] [stderr] 333 | minecraft::block_state::fill_buffer( [INFO] [stderr] 334 | &block_states, &biomes, &mut staging_buffer, [INFO] [stderr] 335 | coords, chunks, column_biomes [INFO] [stderr] 336 | ); [INFO] [stderr] 337 | *buffer.borrow_mut() = Some( [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:359:16 [INFO] [stderr] | [INFO] [stderr] 359 | if let Some(_) = e.mouse_relative_args() { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 360 | | if !capture_cursor { [INFO] [stderr] 361 | | // Don't send the mouse event to the FPS controller. [INFO] [stderr] 362 | | continue; [INFO] [stderr] 363 | | } [INFO] [stderr] 364 | | } [INFO] [stderr] | |_________- help: try this: `if e.mouse_relative_args().is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] error: aborting due to 5 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `hematite`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "f118ac1fd3bdb670c55b67104ae0ad38208fe351028572a238196dc99a67d743"` [INFO] running `"docker" "rm" "-f" "f118ac1fd3bdb670c55b67104ae0ad38208fe351028572a238196dc99a67d743"` [INFO] [stdout] f118ac1fd3bdb670c55b67104ae0ad38208fe351028572a238196dc99a67d743