[INFO] updating cached repository Noah2610/LD43 [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/Noah2610/LD43 [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/Noah2610/LD43" "work/ex/clippy-test-run/sources/stable/gh/Noah2610/LD43"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/Noah2610/LD43'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/Noah2610/LD43" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Noah2610/LD43"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Noah2610/LD43'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] edcd8db7627fb7b4ee2752a058fe42acdbd52794 [INFO] sha for GitHub repo Noah2610/LD43: edcd8db7627fb7b4ee2752a058fe42acdbd52794 [INFO] validating manifest of Noah2610/LD43 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 Noah2610/LD43 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 Noah2610/LD43 [INFO] finished frobbing Noah2610/LD43 [INFO] frobbed toml for Noah2610/LD43 written to work/ex/clippy-test-run/sources/stable/gh/Noah2610/LD43/Cargo.toml [INFO] started frobbing Noah2610/LD43 [INFO] finished frobbing Noah2610/LD43 [INFO] frobbed toml for Noah2610/LD43 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Noah2610/LD43/Cargo.toml [INFO] crate Noah2610/LD43 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 Noah2610/LD43 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/Noah2610/LD43:/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] 733d556274a25c02a68374b749a9500e62173bfa6e6e9f62892b1166587e441a [INFO] running `"docker" "start" "-a" "733d556274a25c02a68374b749a9500e62173bfa6e6e9f62892b1166587e441a"` [INFO] [stderr] Checking arrayvec v0.4.8 [INFO] [stderr] Checking ogg v0.4.1 [INFO] [stderr] Checking jpeg-decoder v0.1.15 [INFO] [stderr] Checking app_dirs2 v2.0.3 [INFO] [stderr] Checking generic-array v0.8.3 [INFO] [stderr] Compiling gfx_gl v0.5.0 [INFO] [stderr] Checking msdos_time v0.1.6 [INFO] [stderr] Checking twox-hash v1.1.1 [INFO] [stderr] Checking gfx_core v0.8.3 [INFO] [stderr] Checking sdl2 v0.31.0 [INFO] [stderr] Checking zip v0.3.3 [INFO] [stderr] Checking nalgebra v0.14.4 [INFO] [stderr] Checking lewton v0.5.2 [INFO] [stderr] Checking image v0.19.0 [INFO] [stderr] Checking lyon_geom v0.10.1 [INFO] [stderr] Checking rusttype v0.5.2 [INFO] [stderr] Checking rodio v0.7.0 [INFO] [stderr] Checking lyon_path v0.10.1 [INFO] [stderr] Checking lyon_tessellation v0.10.2 [INFO] [stderr] Checking lyon v0.10.2 [INFO] [stderr] Checking gfx_device_gl v0.15.3 [INFO] [stderr] Checking gfx v0.17.1 [INFO] [stderr] Checking gfx_glyph v0.10.2 [INFO] [stderr] Checking gfx_window_sdl v0.8.0 [INFO] [stderr] Checking ggez v0.4.4 [INFO] [stderr] Checking noframe v0.0.2 [INFO] [stderr] Checking LD43 v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/game/mod.rs:67:7 [INFO] [stderr] | [INFO] [stderr] 67 | song: song [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `song` [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/game/mod.rs:67:7 [INFO] [stderr] | [INFO] [stderr] 67 | song: song [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `song` [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: unused import: `Movement` [INFO] [stderr] --> src/game/mod.rs:18:3 [INFO] [stderr] | [INFO] [stderr] 18 | Movement [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `noframe::camera::Camera` [INFO] [stderr] --> src/game/mod.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | use noframe::camera::Camera; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `noframe::deltatime::Deltatime` [INFO] [stderr] --> src/game/mod.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | use noframe::deltatime::Deltatime; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `interactables::Interactable` [INFO] [stderr] --> src/game/mod.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | use interactables::Interactable; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `menu::buttons::Button` [INFO] [stderr] --> src/game/mod.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | use menu::buttons::Button; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/game/mod.rs:167:5 [INFO] [stderr] | [INFO] [stderr] 167 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [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] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/game/mod.rs:180:5 [INFO] [stderr] | [INFO] [stderr] 180 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [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: unused import: `settings::child` [INFO] [stderr] --> src/persons/person_animations/animations/player.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use settings::child; //::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `GameResult` [INFO] [stderr] --> src/persons/person_animations/mod.rs:4:3 [INFO] [stderr] | [INFO] [stderr] 4 | GameResult, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `settings::player::*` [INFO] [stderr] --> src/persons/person_animations/mod.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use settings::player::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `noframe::deltatime::Deltatime` [INFO] [stderr] --> src/gravity.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use noframe::deltatime::Deltatime; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `settings::res::MISSING_IMAGE` [INFO] [stderr] --> src/interactables/animations/switch.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use settings::res::MISSING_IMAGE; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `settings::res::MISSING_IMAGE` [INFO] [stderr] --> src/interactables/animations/door.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use settings::res::MISSING_IMAGE; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `settings::res::MISSING_IMAGE` [INFO] [stderr] --> src/interactables/animations/one_way.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use settings::res::MISSING_IMAGE; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `settings::interactables::*` [INFO] [stderr] --> src/interactables/animations/goal.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use settings::interactables::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `settings::interactables::jump_pad::*` [INFO] [stderr] --> src/interactables/door.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use settings::interactables::jump_pad::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `noframe::geo::prelude::*` [INFO] [stderr] --> src/interactables/mod.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | use noframe::geo::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/interactables/mod.rs:37:12 [INFO] [stderr] | [INFO] [stderr] 37 | } else { [INFO] [stderr] | ____________^ [INFO] [stderr] 38 | | if let Some(index) = self.get_intersected().iter().position( |&id| person.has_id(id) ) { [INFO] [stderr] 39 | | self.rm_intersected_at(index); [INFO] [stderr] 40 | | } [INFO] [stderr] 41 | | } [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] 37 | } else if let Some(index) = self.get_intersected().iter().position( |&id| person.has_id(id) ) { [INFO] [stderr] 38 | self.rm_intersected_at(index); [INFO] [stderr] 39 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused import: `GameResult` [INFO] [stderr] --> src/menu/title.rs:2:3 [INFO] [stderr] | [INFO] [stderr] 2 | GameResult, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `animation::Facing` [INFO] [stderr] --> src/menu/title.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | use animation::Facing; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `settings::menus::IMAGES` [INFO] [stderr] --> src/menu/toolbox.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use settings::menus::IMAGES; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/menu/toolbox.rs:157:12 [INFO] [stderr] | [INFO] [stderr] 157 | } else { [INFO] [stderr] | ____________^ [INFO] [stderr] 158 | | if self.previous_to_save_amount != self.to_save_amount { [INFO] [stderr] 159 | | self.to_save_text = Some(graphics::Text::new(ctx, &format!("Saving: {}", self.to_save_amount), &self.font)?); [INFO] [stderr] 160 | | } [INFO] [stderr] 161 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [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] 157 | } else if self.previous_to_save_amount != self.to_save_amount { [INFO] [stderr] 158 | self.to_save_text = Some(graphics::Text::new(ctx, &format!("Saving: {}", self.to_save_amount), &self.font)?); [INFO] [stderr] 159 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused import: `event::MouseButton` [INFO] [stderr] --> src/menu/mod.rs:9:3 [INFO] [stderr] | [INFO] [stderr] 9 | event::MouseButton [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `interactables::Interactable` [INFO] [stderr] --> src/lib.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | use interactables::Interactable; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:52:3 [INFO] [stderr] | [INFO] [stderr] 52 | return event::run(&mut ctx, &mut state); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `event::run(&mut ctx, &mut state)` [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: unused import: `Movement` [INFO] [stderr] --> src/game/mod.rs:18:3 [INFO] [stderr] | [INFO] [stderr] 18 | Movement [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `noframe::camera::Camera` [INFO] [stderr] --> src/game/mod.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | use noframe::camera::Camera; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `noframe::deltatime::Deltatime` [INFO] [stderr] --> src/game/mod.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | use noframe::deltatime::Deltatime; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `interactables::Interactable` [INFO] [stderr] --> src/game/mod.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | use interactables::Interactable; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `menu::buttons::Button` [INFO] [stderr] --> src/game/mod.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | use menu::buttons::Button; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/game/mod.rs:167:5 [INFO] [stderr] | [INFO] [stderr] 167 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [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] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/game/mod.rs:180:5 [INFO] [stderr] | [INFO] [stderr] 180 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [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: unused import: `settings::child` [INFO] [stderr] --> src/persons/person_animations/animations/player.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use settings::child; //::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `GameResult` [INFO] [stderr] --> src/persons/person_animations/mod.rs:4:3 [INFO] [stderr] | [INFO] [stderr] 4 | GameResult, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `settings::player::*` [INFO] [stderr] --> src/persons/person_animations/mod.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use settings::player::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `noframe::deltatime::Deltatime` [INFO] [stderr] --> src/gravity.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use noframe::deltatime::Deltatime; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `settings::res::MISSING_IMAGE` [INFO] [stderr] --> src/interactables/animations/switch.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use settings::res::MISSING_IMAGE; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `settings::res::MISSING_IMAGE` [INFO] [stderr] --> src/interactables/animations/door.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use settings::res::MISSING_IMAGE; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `settings::res::MISSING_IMAGE` [INFO] [stderr] --> src/interactables/animations/one_way.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use settings::res::MISSING_IMAGE; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `settings::interactables::*` [INFO] [stderr] --> src/interactables/animations/goal.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use settings::interactables::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `settings::interactables::jump_pad::*` [INFO] [stderr] --> src/interactables/door.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use settings::interactables::jump_pad::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `noframe::geo::prelude::*` [INFO] [stderr] --> src/interactables/mod.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | use noframe::geo::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/interactables/mod.rs:37:12 [INFO] [stderr] | [INFO] [stderr] 37 | } else { [INFO] [stderr] | ____________^ [INFO] [stderr] 38 | | if let Some(index) = self.get_intersected().iter().position( |&id| person.has_id(id) ) { [INFO] [stderr] 39 | | self.rm_intersected_at(index); [INFO] [stderr] 40 | | } [INFO] [stderr] 41 | | } [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] 37 | } else if let Some(index) = self.get_intersected().iter().position( |&id| person.has_id(id) ) { [INFO] [stderr] 38 | self.rm_intersected_at(index); [INFO] [stderr] 39 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused import: `GameResult` [INFO] [stderr] --> src/menu/title.rs:2:3 [INFO] [stderr] | [INFO] [stderr] 2 | GameResult, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `animation::Facing` [INFO] [stderr] --> src/menu/title.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | use animation::Facing; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `settings::menus::IMAGES` [INFO] [stderr] --> src/menu/toolbox.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use settings::menus::IMAGES; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/menu/toolbox.rs:157:12 [INFO] [stderr] | [INFO] [stderr] 157 | } else { [INFO] [stderr] | ____________^ [INFO] [stderr] 158 | | if self.previous_to_save_amount != self.to_save_amount { [INFO] [stderr] 159 | | self.to_save_text = Some(graphics::Text::new(ctx, &format!("Saving: {}", self.to_save_amount), &self.font)?); [INFO] [stderr] 160 | | } [INFO] [stderr] 161 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [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] 157 | } else if self.previous_to_save_amount != self.to_save_amount { [INFO] [stderr] 158 | self.to_save_text = Some(graphics::Text::new(ctx, &format!("Saving: {}", self.to_save_amount), &self.font)?); [INFO] [stderr] 159 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused import: `event::MouseButton` [INFO] [stderr] --> src/menu/mod.rs:9:3 [INFO] [stderr] | [INFO] [stderr] 9 | event::MouseButton [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `interactables::Interactable` [INFO] [stderr] --> src/lib.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | use interactables::Interactable; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:52:3 [INFO] [stderr] | [INFO] [stderr] 52 | return event::run(&mut ctx, &mut state); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `event::run(&mut ctx, &mut state)` [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: unreachable expression [INFO] [stderr] --> src/animation.rs:88:5 [INFO] [stderr] | [INFO] [stderr] 88 | / if self.image_index >= self.images.len() - 1 { [INFO] [stderr] 89 | | self.times_played += 1; [INFO] [stderr] 90 | | self.image_index = 0; [INFO] [stderr] 91 | | } else { [INFO] [stderr] 92 | | self.image_index += 1; [INFO] [stderr] 93 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unreachable_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/animation.rs:88:5 [INFO] [stderr] | [INFO] [stderr] 88 | / if self.image_index >= self.images.len() - 1 { [INFO] [stderr] 89 | | self.times_played += 1; [INFO] [stderr] 90 | | self.image_index = 0; [INFO] [stderr] 91 | | } else { [INFO] [stderr] 92 | | self.image_index += 1; [INFO] [stderr] 93 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unreachable_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `Entity` [INFO] [stderr] --> src/game/mod.rs:17:3 [INFO] [stderr] | [INFO] [stderr] 17 | Entity, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: private type `persons::AnimState` in public interface (error E0446) [INFO] [stderr] --> src/persons/person_animations/mod.rs:40:3 [INFO] [stderr] | [INFO] [stderr] 40 | / pub fn get_by_state(&self, state: &AnimState) -> &Animation { [INFO] [stderr] 41 | | match state { [INFO] [stderr] 42 | | AnimState::Idle => &self.idle_anim, [INFO] [stderr] 43 | | AnimState::Walk => &self.walk_anim, [INFO] [stderr] ... | [INFO] [stderr] 46 | | } [INFO] [stderr] 47 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(private_in_public)] on by default [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #34537 [INFO] [stderr] [INFO] [stderr] warning: private type `persons::AnimState` in public interface (error E0446) [INFO] [stderr] --> src/persons/person_animations/mod.rs:49:3 [INFO] [stderr] | [INFO] [stderr] 49 | / pub fn get_by_state_mut(&mut self, state: &AnimState) -> &mut Animation { [INFO] [stderr] 50 | | match state { [INFO] [stderr] 51 | | AnimState::Idle => &mut self.idle_anim, [INFO] [stderr] 52 | | AnimState::Walk => &mut self.walk_anim, [INFO] [stderr] ... | [INFO] [stderr] 55 | | } [INFO] [stderr] 56 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #34537 [INFO] [stderr] [INFO] [stderr] warning: unused import: `Entity` [INFO] [stderr] --> src/game/mod.rs:17:3 [INFO] [stderr] | [INFO] [stderr] 17 | Entity, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ctx` [INFO] [stderr] --> src/game/mod.rs:71:26 [INFO] [stderr] | [INFO] [stderr] 71 | pub fn init(&mut self, ctx: &mut Context) -> GameResult<()> { [INFO] [stderr] | ^^^ help: consider using `_ctx` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `btn` [INFO] [stderr] --> src/game/mod.rs:135:61 [INFO] [stderr] | [INFO] [stderr] 135 | fn mouse_button_down_event(&mut self, _ctx: &mut Context, btn: MouseButton, x: i32, y: i32) { [INFO] [stderr] | ^^^ help: consider using `_btn` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `btn` [INFO] [stderr] --> src/game/mod.rs:147:59 [INFO] [stderr] | [INFO] [stderr] 147 | fn mouse_button_up_event(&mut self, _ctx: &mut Context, btn: MouseButton, x: i32, y: i32) { [INFO] [stderr] | ^^^ help: consider using `_btn` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `x` [INFO] [stderr] --> src/game/mod.rs:147:77 [INFO] [stderr] | [INFO] [stderr] 147 | fn mouse_button_up_event(&mut self, _ctx: &mut Context, btn: MouseButton, x: i32, y: i32) { [INFO] [stderr] | ^ help: consider using `_x` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `y` [INFO] [stderr] --> src/game/mod.rs:147:85 [INFO] [stderr] | [INFO] [stderr] 147 | fn mouse_button_up_event(&mut self, _ctx: &mut Context, btn: MouseButton, x: i32, y: i32) { [INFO] [stderr] | ^ help: consider using `_y` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ctx` [INFO] [stderr] --> src/interactables/jump_pad.rs:82:24 [INFO] [stderr] | [INFO] [stderr] 82 | fn update(&mut self, ctx: &mut Context) -> GameResult<()> { [INFO] [stderr] | ^^^ help: consider using `_ctx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ctx` [INFO] [stderr] --> src/interactables/switch.rs:113:24 [INFO] [stderr] | [INFO] [stderr] 113 | fn update(&mut self, ctx: &mut Context) -> GameResult<()> { [INFO] [stderr] | ^^^ help: consider using `_ctx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `person` [INFO] [stderr] --> src/interactables/switch.rs:160:36 [INFO] [stderr] | [INFO] [stderr] 160 | fn trigger(&mut self, person: &mut T) { [INFO] [stderr] | ^^^^^^ help: consider using `_person` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ctx` [INFO] [stderr] --> src/interactables/door.rs:97:24 [INFO] [stderr] | [INFO] [stderr] 97 | fn update(&mut self, ctx: &mut Context) -> GameResult<()> { [INFO] [stderr] | ^^^ help: consider using `_ctx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ctx` [INFO] [stderr] --> src/interactables/one_way.rs:76:24 [INFO] [stderr] | [INFO] [stderr] 76 | fn update(&mut self, ctx: &mut Context) -> GameResult<()> { [INFO] [stderr] | ^^^ help: consider using `_ctx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `person` [INFO] [stderr] --> src/interactables/one_way.rs:110:36 [INFO] [stderr] | [INFO] [stderr] 110 | fn trigger(&mut self, person: &mut T) { [INFO] [stderr] | ^^^^^^ help: consider using `_person` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ctx` [INFO] [stderr] --> src/interactables/solidifier.rs:22:14 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn new(ctx: &mut Context, point: Point, size: Size) -> Self { [INFO] [stderr] | ^^^ help: consider using `_ctx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ctx` [INFO] [stderr] --> src/interactables/solidifier.rs:42:24 [INFO] [stderr] | [INFO] [stderr] 42 | fn update(&mut self, ctx: &mut Context) -> GameResult<()> { [INFO] [stderr] | ^^^ help: consider using `_ctx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ctx` [INFO] [stderr] --> src/interactables/solidifier.rs:46:18 [INFO] [stderr] | [INFO] [stderr] 46 | fn draw(&self, ctx: &mut Context) -> GameResult<()> { [INFO] [stderr] | ^^^ help: consider using `_ctx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ctx` [INFO] [stderr] --> src/interactables/solidifier.rs:50:25 [INFO] [stderr] | [INFO] [stderr] 50 | fn draw_offset(&self, ctx: &mut Context, offset: &Point) -> GameResult<()> { [INFO] [stderr] | ^^^ help: consider using `_ctx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `offset` [INFO] [stderr] --> src/interactables/solidifier.rs:50:44 [INFO] [stderr] | [INFO] [stderr] 50 | fn draw_offset(&self, ctx: &mut Context, offset: &Point) -> GameResult<()> { [INFO] [stderr] | ^^^^^^ help: consider using `_offset` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ctx` [INFO] [stderr] --> src/interactables/goal.rs:81:24 [INFO] [stderr] | [INFO] [stderr] 81 | fn update(&mut self, ctx: &mut Context) -> GameResult<()> { [INFO] [stderr] | ^^^ help: consider using `_ctx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `person` [INFO] [stderr] --> src/interactables/goal.rs:121:36 [INFO] [stderr] | [INFO] [stderr] 121 | fn trigger(&mut self, person: &mut T) { [INFO] [stderr] | ^^^^^^ help: consider using `_person` instead [INFO] [stderr] [INFO] [stderr] warning: private type `persons::AnimState` in public interface (error E0446) [INFO] [stderr] --> src/persons/person_animations/mod.rs:40:3 [INFO] [stderr] | [INFO] [stderr] 40 | / pub fn get_by_state(&self, state: &AnimState) -> &Animation { [INFO] [stderr] 41 | | match state { [INFO] [stderr] 42 | | AnimState::Idle => &self.idle_anim, [INFO] [stderr] 43 | | AnimState::Walk => &self.walk_anim, [INFO] [stderr] ... | [INFO] [stderr] 46 | | } [INFO] [stderr] 47 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(private_in_public)] on by default [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #34537 [INFO] [stderr] [INFO] [stderr] warning: private type `persons::AnimState` in public interface (error E0446) [INFO] [stderr] --> src/persons/person_animations/mod.rs:49:3 [INFO] [stderr] | [INFO] [stderr] 49 | / pub fn get_by_state_mut(&mut self, state: &AnimState) -> &mut Animation { [INFO] [stderr] 50 | | match state { [INFO] [stderr] 51 | | AnimState::Idle => &mut self.idle_anim, [INFO] [stderr] 52 | | AnimState::Walk => &mut self.walk_anim, [INFO] [stderr] ... | [INFO] [stderr] 55 | | } [INFO] [stderr] 56 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #34537 [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ctx` [INFO] [stderr] --> src/game/mod.rs:71:26 [INFO] [stderr] | [INFO] [stderr] 71 | pub fn init(&mut self, ctx: &mut Context) -> GameResult<()> { [INFO] [stderr] | ^^^ help: consider using `_ctx` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `btn` [INFO] [stderr] --> src/game/mod.rs:135:61 [INFO] [stderr] | [INFO] [stderr] 135 | fn mouse_button_down_event(&mut self, _ctx: &mut Context, btn: MouseButton, x: i32, y: i32) { [INFO] [stderr] | ^^^ help: consider using `_btn` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `btn` [INFO] [stderr] --> src/game/mod.rs:147:59 [INFO] [stderr] | [INFO] [stderr] 147 | fn mouse_button_up_event(&mut self, _ctx: &mut Context, btn: MouseButton, x: i32, y: i32) { [INFO] [stderr] | ^^^ help: consider using `_btn` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `x` [INFO] [stderr] --> src/game/mod.rs:147:77 [INFO] [stderr] | [INFO] [stderr] 147 | fn mouse_button_up_event(&mut self, _ctx: &mut Context, btn: MouseButton, x: i32, y: i32) { [INFO] [stderr] | ^ help: consider using `_x` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `y` [INFO] [stderr] --> src/game/mod.rs:147:85 [INFO] [stderr] | [INFO] [stderr] 147 | fn mouse_button_up_event(&mut self, _ctx: &mut Context, btn: MouseButton, x: i32, y: i32) { [INFO] [stderr] | ^ help: consider using `_y` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ctx` [INFO] [stderr] --> src/interactables/jump_pad.rs:82:24 [INFO] [stderr] | [INFO] [stderr] 82 | fn update(&mut self, ctx: &mut Context) -> GameResult<()> { [INFO] [stderr] | ^^^ help: consider using `_ctx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ctx` [INFO] [stderr] --> src/interactables/switch.rs:113:24 [INFO] [stderr] | [INFO] [stderr] 113 | fn update(&mut self, ctx: &mut Context) -> GameResult<()> { [INFO] [stderr] | ^^^ help: consider using `_ctx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `person` [INFO] [stderr] --> src/interactables/switch.rs:160:36 [INFO] [stderr] | [INFO] [stderr] 160 | fn trigger(&mut self, person: &mut T) { [INFO] [stderr] | ^^^^^^ help: consider using `_person` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ctx` [INFO] [stderr] --> src/interactables/door.rs:97:24 [INFO] [stderr] | [INFO] [stderr] 97 | fn update(&mut self, ctx: &mut Context) -> GameResult<()> { [INFO] [stderr] | ^^^ help: consider using `_ctx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ctx` [INFO] [stderr] --> src/interactables/one_way.rs:76:24 [INFO] [stderr] | [INFO] [stderr] 76 | fn update(&mut self, ctx: &mut Context) -> GameResult<()> { [INFO] [stderr] | ^^^ help: consider using `_ctx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `person` [INFO] [stderr] --> src/interactables/one_way.rs:110:36 [INFO] [stderr] | [INFO] [stderr] 110 | fn trigger(&mut self, person: &mut T) { [INFO] [stderr] | ^^^^^^ help: consider using `_person` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ctx` [INFO] [stderr] --> src/interactables/solidifier.rs:22:14 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn new(ctx: &mut Context, point: Point, size: Size) -> Self { [INFO] [stderr] | ^^^ help: consider using `_ctx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ctx` [INFO] [stderr] --> src/interactables/solidifier.rs:42:24 [INFO] [stderr] | [INFO] [stderr] 42 | fn update(&mut self, ctx: &mut Context) -> GameResult<()> { [INFO] [stderr] | ^^^ help: consider using `_ctx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ctx` [INFO] [stderr] --> src/interactables/solidifier.rs:46:18 [INFO] [stderr] | [INFO] [stderr] 46 | fn draw(&self, ctx: &mut Context) -> GameResult<()> { [INFO] [stderr] | ^^^ help: consider using `_ctx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ctx` [INFO] [stderr] --> src/interactables/solidifier.rs:50:25 [INFO] [stderr] | [INFO] [stderr] 50 | fn draw_offset(&self, ctx: &mut Context, offset: &Point) -> GameResult<()> { [INFO] [stderr] | ^^^ help: consider using `_ctx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `offset` [INFO] [stderr] --> src/interactables/solidifier.rs:50:44 [INFO] [stderr] | [INFO] [stderr] 50 | fn draw_offset(&self, ctx: &mut Context, offset: &Point) -> GameResult<()> { [INFO] [stderr] | ^^^^^^ help: consider using `_offset` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ctx` [INFO] [stderr] --> src/interactables/goal.rs:81:24 [INFO] [stderr] | [INFO] [stderr] 81 | fn update(&mut self, ctx: &mut Context) -> GameResult<()> { [INFO] [stderr] | ^^^ help: consider using `_ctx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `person` [INFO] [stderr] --> src/interactables/goal.rs:121:36 [INFO] [stderr] | [INFO] [stderr] 121 | fn trigger(&mut self, person: &mut T) { [INFO] [stderr] | ^^^^^^ help: consider using `_person` instead [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `IMAGES` [INFO] [stderr] --> src/settings.rs:18:3 [INFO] [stderr] | [INFO] [stderr] 18 | pub const IMAGES: &str = "/images/"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: field is never used: `window_rect` [INFO] [stderr] --> src/game/mod.rs:40:3 [INFO] [stderr] | [INFO] [stderr] 40 | window_rect: Rect, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `window_rect` [INFO] [stderr] --> src/level/mod.rs:55:3 [INFO] [stderr] | [INFO] [stderr] 55 | window_rect: Rect, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `camera_rect` [INFO] [stderr] --> src/level/mod.rs:57:3 [INFO] [stderr] | [INFO] [stderr] 57 | camera_rect: Rect, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_door_by_id_mut` [INFO] [stderr] --> src/level/mod.rs:389:3 [INFO] [stderr] | [INFO] [stderr] 389 | fn get_door_by_id_mut(&mut self, id: IdType) -> Option<&mut Door> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Trigger` [INFO] [stderr] --> src/interactables/goal.rs:18:3 [INFO] [stderr] | [INFO] [stderr] 18 | Trigger [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `animation` [INFO] [stderr] --> src/menu/buttons/mod.rs:34:3 [INFO] [stderr] | [INFO] [stderr] 34 | pub fn animation(&self) -> &Animation { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: crate `LD43` should have a snake case name such as `ld43` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/game/mod.rs:72:5 [INFO] [stderr] | [INFO] [stderr] 72 | self.song.play(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/wall.rs:22:49 [INFO] [stderr] | [INFO] [stderr] 22 | let image = Image::new(ctx, image_filepath).expect( [INFO] [stderr] | _________________________________________________^ [INFO] [stderr] 23 | | &format!("Couldn't load image for wall: {}", image_filepath) [INFO] [stderr] 24 | | ); [INFO] [stderr] | |_____^ help: try this: `unwrap_or_else(|_| panic!("Couldn't load image for wall: {}", image_filepath))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::expect_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/persons/player.rs:60:44 [INFO] [stderr] | [INFO] [stderr] 60 | pub fn keys_pressed(&mut self, keycodes: &Vec) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: change this to: `&[Keycode]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/persons/player.rs:62:28 [INFO] [stderr] | [INFO] [stderr] 62 | if let Some(point) = match keycode { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 63 | | &controls::LEFT => { [INFO] [stderr] 64 | | if !self.has_moved(Axis::X) { [INFO] [stderr] 65 | | self.moved_on_axis(Axis::X); [INFO] [stderr] ... | [INFO] [stderr] 75 | | _ => None [INFO] [stderr] 76 | | } { [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 62 | if let Some(point) = match *keycode { [INFO] [stderr] 63 | controls::LEFT => { [INFO] [stderr] 64 | if !self.has_moved(Axis::X) { [INFO] [stderr] 65 | self.moved_on_axis(Axis::X); [INFO] [stderr] 66 | Some(Point::new( -SPEED_INCREASE, 0.0 )) [INFO] [stderr] 67 | } else { None } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/persons/player.rs:82:39 [INFO] [stderr] | [INFO] [stderr] 82 | pub fn key_down(&mut self, keycode: &Keycode) { [INFO] [stderr] | ^^^^^^^^ help: consider passing by value instead: `Keycode` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/persons/player.rs:83:5 [INFO] [stderr] | [INFO] [stderr] 83 | / if let &controls::JUMP = keycode { [INFO] [stderr] 84 | | self.jump(); [INFO] [stderr] 85 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 83 | if let controls::JUMP = *keycode { [INFO] [stderr] | ^^^^^^^^^^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/persons/player.rs:88:37 [INFO] [stderr] | [INFO] [stderr] 88 | pub fn key_up(&mut self, keycode: &Keycode) { [INFO] [stderr] | ^^^^^^^^ help: consider passing by value instead: `Keycode` [INFO] [stderr] | [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/persons/player.rs:89:5 [INFO] [stderr] | [INFO] [stderr] 89 | / if let &controls::JUMP = keycode { [INFO] [stderr] 90 | | if self.is_jumping && self.velocity.y < 0.0 { [INFO] [stderr] 91 | | self.add_velocity(&Point::new(0.0, JUMP_KILL_VELOCITY)); [INFO] [stderr] 92 | | if self.velocity.y > 0.0 { [INFO] [stderr] ... | [INFO] [stderr] 95 | | } [INFO] [stderr] 96 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 89 | if let controls::JUMP = *keycode { [INFO] [stderr] | ^^^^^^^^^^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: this boolean expression contains a logic bug [INFO] [stderr] --> src/persons/player.rs:124:10 [INFO] [stderr] | [INFO] [stderr] 124 | if false && !self.has_moved(Axis::Y) { // TODO I don't think we need to decrease y velocity automatically [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: it would look like the following: `false` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::logic_bug)] on by default [INFO] [stderr] help: this expression can be optimized out by applying boolean operations to the outer expression [INFO] [stderr] --> src/persons/player.rs:124:20 [INFO] [stderr] | [INFO] [stderr] 124 | if false && !self.has_moved(Axis::Y) { // TODO I don't think we need to decrease y velocity automatically [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#logic_bug [INFO] [stderr] [INFO] [stderr] error: this boolean expression contains a logic bug [INFO] [stderr] --> src/persons/children/mod.rs:110:10 [INFO] [stderr] | [INFO] [stderr] 110 | if false && !self.has_moved(Axis::Y) { // TODO I don't think we need to decrease y velocity automatically [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: it would look like the following: `false` [INFO] [stderr] | [INFO] [stderr] help: this expression can be optimized out by applying boolean operations to the outer expression [INFO] [stderr] --> src/persons/children/mod.rs:110:20 [INFO] [stderr] | [INFO] [stderr] 110 | if false && !self.has_moved(Axis::Y) { // TODO I don't think we need to decrease y velocity automatically [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#logic_bug [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/level/mod.rs:270:44 [INFO] [stderr] | [INFO] [stderr] 270 | pub fn keys_pressed(&mut self, keycodes: &Vec) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: change this to: `&[Keycode]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/level/mod.rs:283:41 [INFO] [stderr] | [INFO] [stderr] 283 | pub fn keys_down(&mut self, keycodes: &Vec) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: change this to: `&[Keycode]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/level/mod.rs:289:39 [INFO] [stderr] | [INFO] [stderr] 289 | pub fn keys_up(&mut self, keycodes: &Vec) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: change this to: `&[Keycode]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `IMAGES` [INFO] [stderr] --> src/settings.rs:18:3 [INFO] [stderr] | [INFO] [stderr] 18 | pub const IMAGES: &str = "/images/"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: field is never used: `window_rect` [INFO] [stderr] --> src/game/mod.rs:40:3 [INFO] [stderr] | [INFO] [stderr] 40 | window_rect: Rect, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `window_rect` [INFO] [stderr] --> src/level/mod.rs:55:3 [INFO] [stderr] | [INFO] [stderr] 55 | window_rect: Rect, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `camera_rect` [INFO] [stderr] --> src/level/mod.rs:57:3 [INFO] [stderr] | [INFO] [stderr] 57 | camera_rect: Rect, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_door_by_id_mut` [INFO] [stderr] --> src/level/mod.rs:389:3 [INFO] [stderr] | [INFO] [stderr] 389 | fn get_door_by_id_mut(&mut self, id: IdType) -> Option<&mut Door> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Trigger` [INFO] [stderr] --> src/interactables/goal.rs:18:3 [INFO] [stderr] | [INFO] [stderr] 18 | Trigger [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `animation` [INFO] [stderr] --> src/menu/buttons/mod.rs:34:3 [INFO] [stderr] | [INFO] [stderr] 34 | pub fn animation(&self) -> &Animation { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: crate `LD43` should have a snake case name such as `ld43` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/level/mod.rs:415:39 [INFO] [stderr] | [INFO] [stderr] 415 | if child.velocity().x != 0.0 && new_pos.x == child.point().x { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(new_pos.x - child.point().x).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/level/mod.rs:415:39 [INFO] [stderr] | [INFO] [stderr] 415 | if child.velocity().x != 0.0 && new_pos.x == child.point().x { [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/level/mod.rs:419:39 [INFO] [stderr] | [INFO] [stderr] 419 | if child.velocity().y != 0.0 && new_pos.y == child.point().y { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(new_pos.y - child.point().y).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/level/mod.rs:419:39 [INFO] [stderr] | [INFO] [stderr] 419 | if child.velocity().y != 0.0 && new_pos.y == child.point().y { [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/level/mod.rs:470:43 [INFO] [stderr] | [INFO] [stderr] 470 | if self.player.velocity().x != 0.0 && new_pos.x == self.player.point().x { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(new_pos.x - self.player.point().x).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/level/mod.rs:470:43 [INFO] [stderr] | [INFO] [stderr] 470 | if self.player.velocity().x != 0.0 && new_pos.x == self.player.point().x { [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/level/mod.rs:474:43 [INFO] [stderr] | [INFO] [stderr] 474 | if self.player.velocity().y != 0.0 && new_pos.y == self.player.point().y { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(new_pos.y - self.player.point().y).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/level/mod.rs:474:43 [INFO] [stderr] | [INFO] [stderr] 474 | if self.player.velocity().y != 0.0 && new_pos.y == self.player.point().y { [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: unused `std::result::Result` that must be used [INFO] [stderr] --> src/game/mod.rs:72:5 [INFO] [stderr] | [INFO] [stderr] 72 | self.song.play(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/wall.rs:22:49 [INFO] [stderr] | [INFO] [stderr] 22 | let image = Image::new(ctx, image_filepath).expect( [INFO] [stderr] | _________________________________________________^ [INFO] [stderr] 23 | | &format!("Couldn't load image for wall: {}", image_filepath) [INFO] [stderr] 24 | | ); [INFO] [stderr] | |_____^ help: try this: `unwrap_or_else(|_| panic!("Couldn't load image for wall: {}", image_filepath))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::expect_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/persons/player.rs:60:44 [INFO] [stderr] | [INFO] [stderr] 60 | pub fn keys_pressed(&mut self, keycodes: &Vec) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: change this to: `&[Keycode]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/persons/player.rs:62:28 [INFO] [stderr] | [INFO] [stderr] 62 | if let Some(point) = match keycode { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 63 | | &controls::LEFT => { [INFO] [stderr] 64 | | if !self.has_moved(Axis::X) { [INFO] [stderr] 65 | | self.moved_on_axis(Axis::X); [INFO] [stderr] ... | [INFO] [stderr] 75 | | _ => None [INFO] [stderr] 76 | | } { [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 62 | if let Some(point) = match *keycode { [INFO] [stderr] 63 | controls::LEFT => { [INFO] [stderr] 64 | if !self.has_moved(Axis::X) { [INFO] [stderr] 65 | self.moved_on_axis(Axis::X); [INFO] [stderr] 66 | Some(Point::new( -SPEED_INCREASE, 0.0 )) [INFO] [stderr] 67 | } else { None } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/animation.rs:47:33 [INFO] [stderr] | [INFO] [stderr] 47 | Image::new(ctx, filepath).expect(&format!("Couldn't load image: {}", filepath)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| panic!("Couldn't load image: {}", filepath))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/persons/player.rs:82:39 [INFO] [stderr] | [INFO] [stderr] 82 | pub fn key_down(&mut self, keycode: &Keycode) { [INFO] [stderr] | ^^^^^^^^ help: consider passing by value instead: `Keycode` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/persons/player.rs:83:5 [INFO] [stderr] | [INFO] [stderr] 83 | / if let &controls::JUMP = keycode { [INFO] [stderr] 84 | | self.jump(); [INFO] [stderr] 85 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 83 | if let controls::JUMP = *keycode { [INFO] [stderr] | ^^^^^^^^^^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/persons/player.rs:88:37 [INFO] [stderr] | [INFO] [stderr] 88 | pub fn key_up(&mut self, keycode: &Keycode) { [INFO] [stderr] | ^^^^^^^^ help: consider passing by value instead: `Keycode` [INFO] [stderr] | [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/persons/player.rs:89:5 [INFO] [stderr] | [INFO] [stderr] 89 | / if let &controls::JUMP = keycode { [INFO] [stderr] 90 | | if self.is_jumping && self.velocity.y < 0.0 { [INFO] [stderr] 91 | | self.add_velocity(&Point::new(0.0, JUMP_KILL_VELOCITY)); [INFO] [stderr] 92 | | if self.velocity.y > 0.0 { [INFO] [stderr] ... | [INFO] [stderr] 95 | | } [INFO] [stderr] 96 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 89 | if let controls::JUMP = *keycode { [INFO] [stderr] | ^^^^^^^^^^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting i8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/animation.rs:100:44 [INFO] [stderr] | [INFO] [stderr] 100 | size.w / image.width() as NumType * facing.num() as NumType, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(facing.num())` [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] error: this boolean expression contains a logic bug [INFO] [stderr] --> src/persons/player.rs:124:10 [INFO] [stderr] | [INFO] [stderr] 124 | if false && !self.has_moved(Axis::Y) { // TODO I don't think we need to decrease y velocity automatically [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: it would look like the following: `false` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::logic_bug)] on by default [INFO] [stderr] help: this expression can be optimized out by applying boolean operations to the outer expression [INFO] [stderr] --> src/persons/player.rs:124:20 [INFO] [stderr] | [INFO] [stderr] 124 | if false && !self.has_moved(Axis::Y) { // TODO I don't think we need to decrease y velocity automatically [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#logic_bug [INFO] [stderr] [INFO] [stderr] warning: casting i8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/animation.rs:118:44 [INFO] [stderr] | [INFO] [stderr] 118 | size.w / image.width() as NumType * facing.num() as NumType, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(facing.num())` [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] error: this boolean expression contains a logic bug [INFO] [stderr] --> src/persons/children/mod.rs:110:10 [INFO] [stderr] | [INFO] [stderr] 110 | if false && !self.has_moved(Axis::Y) { // TODO I don't think we need to decrease y velocity automatically [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: it would look like the following: `false` [INFO] [stderr] | [INFO] [stderr] help: this expression can be optimized out by applying boolean operations to the outer expression [INFO] [stderr] --> src/persons/children/mod.rs:110:20 [INFO] [stderr] | [INFO] [stderr] 110 | if false && !self.has_moved(Axis::Y) { // TODO I don't think we need to decrease y velocity automatically [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#logic_bug [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/level/mod.rs:270:44 [INFO] [stderr] | [INFO] [stderr] 270 | pub fn keys_pressed(&mut self, keycodes: &Vec) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: change this to: `&[Keycode]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/level/mod.rs:283:41 [INFO] [stderr] | [INFO] [stderr] 283 | pub fn keys_down(&mut self, keycodes: &Vec) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: change this to: `&[Keycode]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/level/mod.rs:289:39 [INFO] [stderr] | [INFO] [stderr] 289 | pub fn keys_up(&mut self, keycodes: &Vec) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: change this to: `&[Keycode]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/level/mod.rs:415:39 [INFO] [stderr] | [INFO] [stderr] 415 | if child.velocity().x != 0.0 && new_pos.x == child.point().x { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(new_pos.x - child.point().x).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/level/mod.rs:415:39 [INFO] [stderr] | [INFO] [stderr] 415 | if child.velocity().x != 0.0 && new_pos.x == child.point().x { [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/level/mod.rs:419:39 [INFO] [stderr] | [INFO] [stderr] 419 | if child.velocity().y != 0.0 && new_pos.y == child.point().y { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(new_pos.y - child.point().y).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/level/mod.rs:419:39 [INFO] [stderr] | [INFO] [stderr] 419 | if child.velocity().y != 0.0 && new_pos.y == child.point().y { [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/level/mod.rs:470:43 [INFO] [stderr] | [INFO] [stderr] 470 | if self.player.velocity().x != 0.0 && new_pos.x == self.player.point().x { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(new_pos.x - self.player.point().x).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/level/mod.rs:470:43 [INFO] [stderr] | [INFO] [stderr] 470 | if self.player.velocity().x != 0.0 && new_pos.x == self.player.point().x { [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/level/mod.rs:474:43 [INFO] [stderr] | [INFO] [stderr] 474 | if self.player.velocity().y != 0.0 && new_pos.y == self.player.point().y { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(new_pos.y - self.player.point().y).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/level/mod.rs:474:43 [INFO] [stderr] | [INFO] [stderr] 474 | if self.player.velocity().y != 0.0 && new_pos.y == self.player.point().y { [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: use of `expect` followed by a function call [INFO] [stderr] --> src/animation.rs:47:33 [INFO] [stderr] | [INFO] [stderr] 47 | Image::new(ctx, filepath).expect(&format!("Couldn't load image: {}", filepath)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| panic!("Couldn't load image: {}", filepath))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: casting i8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/animation.rs:100:44 [INFO] [stderr] | [INFO] [stderr] 100 | size.w / image.width() as NumType * facing.num() as NumType, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(facing.num())` [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 i8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/animation.rs:118:44 [INFO] [stderr] | [INFO] [stderr] 118 | size.w / image.width() as NumType * facing.num() as NumType, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(facing.num())` [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: unused `std::result::Result` that must be used [INFO] [stderr] --> src/menu/toolbox.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | self.animation.draw(ctx, &self.point, &self.size, &Facing::Right); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/menu/toolbox.rs:155:12 [INFO] [stderr] | [INFO] [stderr] 155 | if let None = self.to_save_text { [INFO] [stderr] | _____- ^^^^ [INFO] [stderr] 156 | | self.to_save_text = Some(graphics::Text::new(ctx, &format!("Saving: {}", self.to_save_amount), &self.font)?); [INFO] [stderr] 157 | | } else { [INFO] [stderr] 158 | | if self.previous_to_save_amount != self.to_save_amount { [INFO] [stderr] 159 | | self.to_save_text = Some(graphics::Text::new(ctx, &format!("Saving: {}", self.to_save_amount), &self.font)?); [INFO] [stderr] 160 | | } [INFO] [stderr] 161 | | } [INFO] [stderr] | |_____- help: try this: `if self.to_save_text.is_none()` [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: unused `std::result::Result` that must be used [INFO] [stderr] --> src/menu/toolbox.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | self.animation.draw(ctx, &self.point, &self.size, &Facing::Right); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/menu/toolbox.rs:155:12 [INFO] [stderr] | [INFO] [stderr] 155 | if let None = self.to_save_text { [INFO] [stderr] | _____- ^^^^ [INFO] [stderr] 156 | | self.to_save_text = Some(graphics::Text::new(ctx, &format!("Saving: {}", self.to_save_amount), &self.font)?); [INFO] [stderr] 157 | | } else { [INFO] [stderr] 158 | | if self.previous_to_save_amount != self.to_save_amount { [INFO] [stderr] 159 | | self.to_save_text = Some(graphics::Text::new(ctx, &format!("Saving: {}", self.to_save_amount), &self.font)?); [INFO] [stderr] 160 | | } [INFO] [stderr] 161 | | } [INFO] [stderr] | |_____- help: try this: `if self.to_save_text.is_none()` [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] error: aborting due to 6 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `LD43`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: aborting due to 6 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `LD43`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "733d556274a25c02a68374b749a9500e62173bfa6e6e9f62892b1166587e441a"` [INFO] running `"docker" "rm" "-f" "733d556274a25c02a68374b749a9500e62173bfa6e6e9f62892b1166587e441a"` [INFO] [stdout] 733d556274a25c02a68374b749a9500e62173bfa6e6e9f62892b1166587e441a