[INFO] updating cached repository jameshiew/ave [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/jameshiew/ave [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/jameshiew/ave" "work/ex/clippy-test-run/sources/stable/gh/jameshiew/ave"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/jameshiew/ave'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/jameshiew/ave" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/jameshiew/ave"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/jameshiew/ave'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 441d46bbfcaf1bee4cf27cc26518c7a79a6f3537 [INFO] sha for GitHub repo jameshiew/ave: 441d46bbfcaf1bee4cf27cc26518c7a79a6f3537 [INFO] validating manifest of jameshiew/ave 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 jameshiew/ave 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 jameshiew/ave [INFO] finished frobbing jameshiew/ave [INFO] frobbed toml for jameshiew/ave written to work/ex/clippy-test-run/sources/stable/gh/jameshiew/ave/Cargo.toml [INFO] started frobbing jameshiew/ave [INFO] finished frobbing jameshiew/ave [INFO] frobbed toml for jameshiew/ave written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/jameshiew/ave/Cargo.toml [INFO] crate jameshiew/ave 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] [stderr] Blocking waiting for file lock on the registry index [INFO] linting jameshiew/ave against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/jameshiew/ave:/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] 1427f963f082e00ac45281fc96f9207f1a400b380a9331af08a0952500640690 [INFO] running `"docker" "start" "-a" "1427f963f082e00ac45281fc96f9207f1a400b380a9331af08a0952500640690"` [INFO] [stderr] Checking cgmath v0.15.0 [INFO] [stderr] Checking noise v0.4.1 [INFO] [stderr] Checking simplelog v0.4.3 [INFO] [stderr] Checking float-cmp v0.2.5 [INFO] [stderr] Checking wayland-window v0.8.0 [INFO] [stderr] Checking winit v0.8.3 [INFO] [stderr] Checking glutin v0.10.1 [INFO] [stderr] Checking glium v0.18.1 [INFO] [stderr] Checking collision v0.12.0 [INFO] [stderr] Checking ave v0.1.0-alpha (/opt/crater/workdir) [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/block.rs:61:5 [INFO] [stderr] | [INFO] [stderr] 61 | / return [ [INFO] [stderr] 62 | | [x, y, z ].into(), [INFO] [stderr] 63 | | [x, y, z + 1.0].into(), [INFO] [stderr] 64 | | [x, y + 1.0, z ].into(), [INFO] [stderr] ... | [INFO] [stderr] 69 | | [x + 1.0, y + 1.0, z + 1.0].into(), [INFO] [stderr] 70 | | ] [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 61 | [ [INFO] [stderr] 62 | [x, y, z ].into(), [INFO] [stderr] 63 | [x, y, z + 1.0].into(), [INFO] [stderr] 64 | [x, y + 1.0, z ].into(), [INFO] [stderr] 65 | [x, y + 1.0, z + 1.0].into(), [INFO] [stderr] 66 | [x + 1.0, y, z ].into(), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/world.rs:64:9 [INFO] [stderr] | [INFO] [stderr] 64 | return set; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `set` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/world.rs:80:9 [INFO] [stderr] | [INFO] [stderr] 80 | return self.blocks.get(&position); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.blocks.get(&position)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/world.rs:93:9 [INFO] [stderr] | [INFO] [stderr] 93 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/world.rs:104:9 [INFO] [stderr] | [INFO] [stderr] 104 | return visible; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `visible` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/world.rs:146:5 [INFO] [stderr] | [INFO] [stderr] 146 | return [x as f32, y as f32, z as f32].into(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `[x as f32, y as f32, z as f32].into()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/world.rs:175:13 [INFO] [stderr] | [INFO] [stderr] 175 | return self.chunks.get(&coordinates).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.chunks.get(&coordinates).unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/world.rs:179:13 [INFO] [stderr] | [INFO] [stderr] 179 | return self.chunks.get_mut(&coordinates).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.chunks.get_mut(&coordinates).unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/worldgen.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | return chunk; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `chunk` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/worldgen.rs:71:9 [INFO] [stderr] | [INFO] [stderr] 71 | return chunk; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `chunk` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:92:49 [INFO] [stderr] | [INFO] [stderr] 92 | let fixed_time_stamp = Duration::new(0, 16666667); [INFO] [stderr] | ^^^^^^^^ help: consider: `16_666_667` [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: unneeded return statement [INFO] [stderr] --> src/main.rs:210:9 [INFO] [stderr] | [INFO] [stderr] 210 | return action; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `action` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/block.rs:61:5 [INFO] [stderr] | [INFO] [stderr] 61 | / return [ [INFO] [stderr] 62 | | [x, y, z ].into(), [INFO] [stderr] 63 | | [x, y, z + 1.0].into(), [INFO] [stderr] 64 | | [x, y + 1.0, z ].into(), [INFO] [stderr] ... | [INFO] [stderr] 69 | | [x + 1.0, y + 1.0, z + 1.0].into(), [INFO] [stderr] 70 | | ] [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 61 | [ [INFO] [stderr] 62 | [x, y, z ].into(), [INFO] [stderr] 63 | [x, y, z + 1.0].into(), [INFO] [stderr] 64 | [x, y + 1.0, z ].into(), [INFO] [stderr] 65 | [x, y + 1.0, z + 1.0].into(), [INFO] [stderr] 66 | [x + 1.0, y, z ].into(), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/world.rs:64:9 [INFO] [stderr] | [INFO] [stderr] 64 | return set; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `set` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/world.rs:80:9 [INFO] [stderr] | [INFO] [stderr] 80 | return self.blocks.get(&position); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.blocks.get(&position)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/world.rs:93:9 [INFO] [stderr] | [INFO] [stderr] 93 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/world.rs:104:9 [INFO] [stderr] | [INFO] [stderr] 104 | return visible; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `visible` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/world.rs:146:5 [INFO] [stderr] | [INFO] [stderr] 146 | return [x as f32, y as f32, z as f32].into(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `[x as f32, y as f32, z as f32].into()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/world.rs:175:13 [INFO] [stderr] | [INFO] [stderr] 175 | return self.chunks.get(&coordinates).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.chunks.get(&coordinates).unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/world.rs:179:13 [INFO] [stderr] | [INFO] [stderr] 179 | return self.chunks.get_mut(&coordinates).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.chunks.get_mut(&coordinates).unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/worldgen.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | return chunk; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `chunk` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/worldgen.rs:71:9 [INFO] [stderr] | [INFO] [stderr] 71 | return chunk; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `chunk` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:92:49 [INFO] [stderr] | [INFO] [stderr] 92 | let fixed_time_stamp = Duration::new(0, 16666667); [INFO] [stderr] | ^^^^^^^^ help: consider: `16_666_667` [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: unneeded return statement [INFO] [stderr] --> src/main.rs:210:9 [INFO] [stderr] | [INFO] [stderr] 210 | return action; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `action` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: static item is never used: `WATER` [INFO] [stderr] --> src/block.rs:175:1 [INFO] [stderr] | [INFO] [stderr] 175 | / pub static WATER: &BlockType = &BlockType { [INFO] [stderr] 176 | | name: "water", [INFO] [stderr] 177 | | color: [0.498, 1.000, 0.831], [INFO] [stderr] 178 | | }; [INFO] [stderr] | |__^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `get_random_color` [INFO] [stderr] --> src/color.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn get_random_color() -> Color { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `FlatWorldGenerator` [INFO] [stderr] --> src/worldgen.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | pub struct FlatWorldGenerator {} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/worldgen.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | pub fn new() -> FlatWorldGenerator { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable appears on both sides of an assignment operation [INFO] [stderr] --> src/camera.rs:224:17 [INFO] [stderr] | [INFO] [stderr] 224 | self.move_speed += self.move_speed + 0.1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::misrefactored_assign_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#misrefactored_assign_op [INFO] [stderr] help: Did you mean self.move_speed = self.move_speed + 0.1 or self.move_speed = self.move_speed + self.move_speed + 0.1? Consider replacing it with [INFO] [stderr] | [INFO] [stderr] 224 | self.move_speed += 0.1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or [INFO] [stderr] | [INFO] [stderr] 224 | self.move_speed = self.move_speed + self.move_speed + 0.1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/camera.rs:230:17 [INFO] [stderr] | [INFO] [stderr] 230 | self.move_speed = self.move_speed - 0.1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.move_speed -= 0.1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/world.rs:142:78 [INFO] [stderr] | [INFO] [stderr] 142 | pub fn get_position(chunk_coordinates: &ChunkCoordinates, block_coordinates: &BlockCoordinates) -> Position { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider passing by value instead: `BlockCoordinates` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/world.rs:143:37 [INFO] [stderr] | [INFO] [stderr] 143 | let x = (chunk_coordinates[0] * CHUNK_SIZE as i32) + block_coordinates[0] as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `i32::from(CHUNK_SIZE)` [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: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/world.rs:143:58 [INFO] [stderr] | [INFO] [stderr] 143 | let x = (chunk_coordinates[0] * CHUNK_SIZE as i32) + block_coordinates[0] as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(block_coordinates[0])` [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/world.rs:144:37 [INFO] [stderr] | [INFO] [stderr] 144 | let y = (chunk_coordinates[1] * CHUNK_SIZE as i32) + block_coordinates[1] as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `i32::from(CHUNK_SIZE)` [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/world.rs:144:58 [INFO] [stderr] | [INFO] [stderr] 144 | let y = (chunk_coordinates[1] * CHUNK_SIZE as i32) + block_coordinates[1] as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(block_coordinates[1])` [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/world.rs:145:37 [INFO] [stderr] | [INFO] [stderr] 145 | let z = (chunk_coordinates[2] * CHUNK_SIZE as i32) + block_coordinates[2] as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `i32::from(CHUNK_SIZE)` [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/world.rs:145:58 [INFO] [stderr] | [INFO] [stderr] 145 | let z = (chunk_coordinates[2] * CHUNK_SIZE as i32) + block_coordinates[2] as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(block_coordinates[2])` [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/world.rs:150:24 [INFO] [stderr] | [INFO] [stderr] 150 | ((coordinates[0] / CHUNK_SIZE as f32) as i32, (coordinates[1] / CHUNK_SIZE as f32) as i32, (coordinates[2] / CHUNK_SIZE as f32) as i32).into() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f32::from(CHUNK_SIZE)` [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/world.rs:150:69 [INFO] [stderr] | [INFO] [stderr] 150 | ((coordinates[0] / CHUNK_SIZE as f32) as i32, (coordinates[1] / CHUNK_SIZE as f32) as i32, (coordinates[2] / CHUNK_SIZE as f32) as i32).into() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f32::from(CHUNK_SIZE)` [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/world.rs:150:114 [INFO] [stderr] | [INFO] [stderr] 150 | ((coordinates[0] / CHUNK_SIZE as f32) as i32, (coordinates[1] / CHUNK_SIZE as f32) as i32, (coordinates[2] / CHUNK_SIZE as f32) as i32).into() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f32::from(CHUNK_SIZE)` [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: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/world.rs:174:9 [INFO] [stderr] | [INFO] [stderr] 174 | / if self.chunks.contains_key(&coordinates) { [INFO] [stderr] 175 | | return self.chunks.get(&coordinates).unwrap(); [INFO] [stderr] 176 | | } else { [INFO] [stderr] 177 | | let chunk = self.generator.generate_chunk(coordinates); [INFO] [stderr] 178 | | self.chunks.insert(coordinates, chunk); [INFO] [stderr] 179 | | return self.chunks.get_mut(&coordinates).unwrap(); [INFO] [stderr] 180 | | } [INFO] [stderr] | |_________^ help: consider using: `self.chunks.entry(coordinates)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_entry)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/world.rs:175:20 [INFO] [stderr] | [INFO] [stderr] 175 | return self.chunks.get(&coordinates).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.chunks[&coordinates]` [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: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/world.rs:188:23 [INFO] [stderr] | [INFO] [stderr] 188 | let iradius = radius as i32; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i32::from(radius)` [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: an inclusive range would be more readable [INFO] [stderr] --> src/world.rs:189:18 [INFO] [stderr] | [INFO] [stderr] 189 | for x in -iradius..iradius + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: use: `-iradius..=iradius` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/world.rs:190:22 [INFO] [stderr] | [INFO] [stderr] 190 | for y in -iradius..iradius + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: use: `-iradius..=iradius` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/world.rs:191:26 [INFO] [stderr] | [INFO] [stderr] 191 | for z in -iradius..iradius + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: use: `-iradius..=iradius` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [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/world.rs:204:13 [INFO] [stderr] | [INFO] [stderr] 204 | / match chunk_opt { [INFO] [stderr] 205 | | Some(chunk) => { [INFO] [stderr] 206 | | for (block_coordinates, block_type) in chunk.get_visible() { [INFO] [stderr] 207 | | blocks.push((get_position(&chunk_coordinates, &block_coordinates), block_type)) [INFO] [stderr] ... | [INFO] [stderr] 210 | | None => (), [INFO] [stderr] 211 | | } [INFO] [stderr] | |_____________^ [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] help: try this [INFO] [stderr] | [INFO] [stderr] 204 | if let Some(chunk) = chunk_opt { [INFO] [stderr] 205 | for (block_coordinates, block_type) in chunk.get_visible() { [INFO] [stderr] 206 | blocks.push((get_position(&chunk_coordinates, &block_coordinates), block_type)) [INFO] [stderr] 207 | } [INFO] [stderr] 208 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/world.rs:226:73 [INFO] [stderr] | [INFO] [stderr] 226 | assert_eq!(get_position(&[1, 1, 1].into(), &[1, 1, 1].into()), [CHUNK_SIZE as f32 + 1.0, CHUNK_SIZE as f32 + 1.0, CHUNK_SIZE as f32 + 1.0].into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f32::from(CHUNK_SIZE)` [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/world.rs:226:98 [INFO] [stderr] | [INFO] [stderr] 226 | assert_eq!(get_position(&[1, 1, 1].into(), &[1, 1, 1].into()), [CHUNK_SIZE as f32 + 1.0, CHUNK_SIZE as f32 + 1.0, CHUNK_SIZE as f32 + 1.0].into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f32::from(CHUNK_SIZE)` [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/world.rs:226:123 [INFO] [stderr] | [INFO] [stderr] 226 | assert_eq!(get_position(&[1, 1, 1].into(), &[1, 1, 1].into()), [CHUNK_SIZE as f32 + 1.0, CHUNK_SIZE as f32 + 1.0, CHUNK_SIZE as f32 + 1.0].into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f32::from(CHUNK_SIZE)` [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/worldgen.rs:100:67 [INFO] [stderr] | [INFO] [stderr] 100 | let normalized_height: u8 = (height.powi(4) * (CHUNK_SIZE as f32)) as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(CHUNK_SIZE)` [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: an inclusive range would be more readable [INFO] [stderr] --> src/worldgen.rs:108:34 [INFO] [stderr] | [INFO] [stderr] 108 | for y in 0..normalized_height + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=normalized_height` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/worldgen.rs:112:34 [INFO] [stderr] | [INFO] [stderr] 112 | for y in 20..normalized_height + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `20..=normalized_height` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [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:178:13 [INFO] [stderr] | [INFO] [stderr] 178 | / match event { [INFO] [stderr] 179 | | glutin::Event::WindowEvent { event, .. } => match event { [INFO] [stderr] 180 | | Closed => action = Action::Stop, [INFO] [stderr] 181 | | Resized(w, h) => { [INFO] [stderr] ... | [INFO] [stderr] 206 | | _ => (), [INFO] [stderr] 207 | | } [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] 178 | if let glutin::Event::WindowEvent { event, .. } = event { match event { [INFO] [stderr] 179 | Closed => action = Action::Stop, [INFO] [stderr] 180 | Resized(w, h) => { [INFO] [stderr] 181 | info!("Window resized to {}px x {}px", w, h); [INFO] [stderr] 182 | }, [INFO] [stderr] 183 | KeyboardInput { input, .. } => { [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/main.rs:186:25 [INFO] [stderr] | [INFO] [stderr] 186 | / match input.virtual_keycode { [INFO] [stderr] 187 | | Some(key) => match key { [INFO] [stderr] 188 | | glutin::VirtualKeyCode::Escape => { [INFO] [stderr] 189 | | if pressed { [INFO] [stderr] ... | [INFO] [stderr] 201 | | None => (), [INFO] [stderr] 202 | | }; [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] 186 | if let Some(key) = input.virtual_keycode { match key { [INFO] [stderr] 187 | glutin::VirtualKeyCode::Escape => { [INFO] [stderr] 188 | if pressed { [INFO] [stderr] 189 | if cursor_grabbed { [INFO] [stderr] 190 | application.display.gl_window().set_cursor_state(glutin::CursorState::Normal).expect("couldn't ungrab cursor"); [INFO] [stderr] 191 | cursor_grabbed = false; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: static item is never used: `WATER` [INFO] [stderr] --> src/block.rs:175:1 [INFO] [stderr] | [INFO] [stderr] 175 | / pub static WATER: &BlockType = &BlockType { [INFO] [stderr] 176 | | name: "water", [INFO] [stderr] 177 | | color: [0.498, 1.000, 0.831], [INFO] [stderr] 178 | | }; [INFO] [stderr] | |__^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `get_random_color` [INFO] [stderr] --> src/color.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn get_random_color() -> Color { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `FlatWorldGenerator` [INFO] [stderr] --> src/worldgen.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | pub struct FlatWorldGenerator {} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/worldgen.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | pub fn new() -> FlatWorldGenerator { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable appears on both sides of an assignment operation [INFO] [stderr] --> src/camera.rs:224:17 [INFO] [stderr] | [INFO] [stderr] 224 | self.move_speed += self.move_speed + 0.1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::misrefactored_assign_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#misrefactored_assign_op [INFO] [stderr] help: Did you mean self.move_speed = self.move_speed + 0.1 or self.move_speed = self.move_speed + self.move_speed + 0.1? Consider replacing it with [INFO] [stderr] | [INFO] [stderr] 224 | self.move_speed += 0.1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or [INFO] [stderr] | [INFO] [stderr] 224 | self.move_speed = self.move_speed + self.move_speed + 0.1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/camera.rs:230:17 [INFO] [stderr] | [INFO] [stderr] 230 | self.move_speed = self.move_speed - 0.1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.move_speed -= 0.1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/world.rs:142:78 [INFO] [stderr] | [INFO] [stderr] 142 | pub fn get_position(chunk_coordinates: &ChunkCoordinates, block_coordinates: &BlockCoordinates) -> Position { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider passing by value instead: `BlockCoordinates` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/world.rs:143:37 [INFO] [stderr] | [INFO] [stderr] 143 | let x = (chunk_coordinates[0] * CHUNK_SIZE as i32) + block_coordinates[0] as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `i32::from(CHUNK_SIZE)` [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: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/world.rs:143:58 [INFO] [stderr] | [INFO] [stderr] 143 | let x = (chunk_coordinates[0] * CHUNK_SIZE as i32) + block_coordinates[0] as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(block_coordinates[0])` [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/world.rs:144:37 [INFO] [stderr] | [INFO] [stderr] 144 | let y = (chunk_coordinates[1] * CHUNK_SIZE as i32) + block_coordinates[1] as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `i32::from(CHUNK_SIZE)` [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/world.rs:144:58 [INFO] [stderr] | [INFO] [stderr] 144 | let y = (chunk_coordinates[1] * CHUNK_SIZE as i32) + block_coordinates[1] as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(block_coordinates[1])` [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/world.rs:145:37 [INFO] [stderr] | [INFO] [stderr] 145 | let z = (chunk_coordinates[2] * CHUNK_SIZE as i32) + block_coordinates[2] as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `i32::from(CHUNK_SIZE)` [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/world.rs:145:58 [INFO] [stderr] | [INFO] [stderr] 145 | let z = (chunk_coordinates[2] * CHUNK_SIZE as i32) + block_coordinates[2] as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(block_coordinates[2])` [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/world.rs:150:24 [INFO] [stderr] | [INFO] [stderr] 150 | ((coordinates[0] / CHUNK_SIZE as f32) as i32, (coordinates[1] / CHUNK_SIZE as f32) as i32, (coordinates[2] / CHUNK_SIZE as f32) as i32).into() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f32::from(CHUNK_SIZE)` [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/world.rs:150:69 [INFO] [stderr] | [INFO] [stderr] 150 | ((coordinates[0] / CHUNK_SIZE as f32) as i32, (coordinates[1] / CHUNK_SIZE as f32) as i32, (coordinates[2] / CHUNK_SIZE as f32) as i32).into() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f32::from(CHUNK_SIZE)` [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/world.rs:150:114 [INFO] [stderr] | [INFO] [stderr] 150 | ((coordinates[0] / CHUNK_SIZE as f32) as i32, (coordinates[1] / CHUNK_SIZE as f32) as i32, (coordinates[2] / CHUNK_SIZE as f32) as i32).into() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f32::from(CHUNK_SIZE)` [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: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/world.rs:174:9 [INFO] [stderr] | [INFO] [stderr] 174 | / if self.chunks.contains_key(&coordinates) { [INFO] [stderr] 175 | | return self.chunks.get(&coordinates).unwrap(); [INFO] [stderr] 176 | | } else { [INFO] [stderr] 177 | | let chunk = self.generator.generate_chunk(coordinates); [INFO] [stderr] 178 | | self.chunks.insert(coordinates, chunk); [INFO] [stderr] 179 | | return self.chunks.get_mut(&coordinates).unwrap(); [INFO] [stderr] 180 | | } [INFO] [stderr] | |_________^ help: consider using: `self.chunks.entry(coordinates)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_entry)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/world.rs:175:20 [INFO] [stderr] | [INFO] [stderr] 175 | return self.chunks.get(&coordinates).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.chunks[&coordinates]` [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: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/world.rs:188:23 [INFO] [stderr] | [INFO] [stderr] 188 | let iradius = radius as i32; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i32::from(radius)` [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: an inclusive range would be more readable [INFO] [stderr] --> src/world.rs:189:18 [INFO] [stderr] | [INFO] [stderr] 189 | for x in -iradius..iradius + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: use: `-iradius..=iradius` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/world.rs:190:22 [INFO] [stderr] | [INFO] [stderr] 190 | for y in -iradius..iradius + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: use: `-iradius..=iradius` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/world.rs:191:26 [INFO] [stderr] | [INFO] [stderr] 191 | for z in -iradius..iradius + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: use: `-iradius..=iradius` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [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/world.rs:204:13 [INFO] [stderr] | [INFO] [stderr] 204 | / match chunk_opt { [INFO] [stderr] 205 | | Some(chunk) => { [INFO] [stderr] 206 | | for (block_coordinates, block_type) in chunk.get_visible() { [INFO] [stderr] 207 | | blocks.push((get_position(&chunk_coordinates, &block_coordinates), block_type)) [INFO] [stderr] ... | [INFO] [stderr] 210 | | None => (), [INFO] [stderr] 211 | | } [INFO] [stderr] | |_____________^ [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] help: try this [INFO] [stderr] | [INFO] [stderr] 204 | if let Some(chunk) = chunk_opt { [INFO] [stderr] 205 | for (block_coordinates, block_type) in chunk.get_visible() { [INFO] [stderr] 206 | blocks.push((get_position(&chunk_coordinates, &block_coordinates), block_type)) [INFO] [stderr] 207 | } [INFO] [stderr] 208 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/worldgen.rs:100:67 [INFO] [stderr] | [INFO] [stderr] 100 | let normalized_height: u8 = (height.powi(4) * (CHUNK_SIZE as f32)) as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(CHUNK_SIZE)` [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: an inclusive range would be more readable [INFO] [stderr] --> src/worldgen.rs:108:34 [INFO] [stderr] | [INFO] [stderr] 108 | for y in 0..normalized_height + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=normalized_height` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/worldgen.rs:112:34 [INFO] [stderr] | [INFO] [stderr] 112 | for y in 20..normalized_height + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `20..=normalized_height` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [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:178:13 [INFO] [stderr] | [INFO] [stderr] 178 | / match event { [INFO] [stderr] 179 | | glutin::Event::WindowEvent { event, .. } => match event { [INFO] [stderr] 180 | | Closed => action = Action::Stop, [INFO] [stderr] 181 | | Resized(w, h) => { [INFO] [stderr] ... | [INFO] [stderr] 206 | | _ => (), [INFO] [stderr] 207 | | } [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] 178 | if let glutin::Event::WindowEvent { event, .. } = event { match event { [INFO] [stderr] 179 | Closed => action = Action::Stop, [INFO] [stderr] 180 | Resized(w, h) => { [INFO] [stderr] 181 | info!("Window resized to {}px x {}px", w, h); [INFO] [stderr] 182 | }, [INFO] [stderr] 183 | KeyboardInput { input, .. } => { [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/main.rs:186:25 [INFO] [stderr] | [INFO] [stderr] 186 | / match input.virtual_keycode { [INFO] [stderr] 187 | | Some(key) => match key { [INFO] [stderr] 188 | | glutin::VirtualKeyCode::Escape => { [INFO] [stderr] 189 | | if pressed { [INFO] [stderr] ... | [INFO] [stderr] 201 | | None => (), [INFO] [stderr] 202 | | }; [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] 186 | if let Some(key) = input.virtual_keycode { match key { [INFO] [stderr] 187 | glutin::VirtualKeyCode::Escape => { [INFO] [stderr] 188 | if pressed { [INFO] [stderr] 189 | if cursor_grabbed { [INFO] [stderr] 190 | application.display.gl_window().set_cursor_state(glutin::CursorState::Normal).expect("couldn't ungrab cursor"); [INFO] [stderr] 191 | cursor_grabbed = false; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 30.83s [INFO] running `"docker" "inspect" "1427f963f082e00ac45281fc96f9207f1a400b380a9331af08a0952500640690"` [INFO] running `"docker" "rm" "-f" "1427f963f082e00ac45281fc96f9207f1a400b380a9331af08a0952500640690"` [INFO] [stdout] 1427f963f082e00ac45281fc96f9207f1a400b380a9331af08a0952500640690