[INFO] updating cached repository drager/caudices [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/drager/caudices [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/drager/caudices" "work/ex/clippy-test-run/sources/stable/gh/drager/caudices"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/drager/caudices'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/drager/caudices" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/drager/caudices"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/drager/caudices'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 46a9e179e51efcd6ae3b91b57d5f4425a7c5f792 [INFO] sha for GitHub repo drager/caudices: 46a9e179e51efcd6ae3b91b57d5f4425a7c5f792 [INFO] validating manifest of drager/caudices 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 drager/caudices 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 drager/caudices [INFO] finished frobbing drager/caudices [INFO] frobbed toml for drager/caudices written to work/ex/clippy-test-run/sources/stable/gh/drager/caudices/Cargo.toml [INFO] started frobbing drager/caudices [INFO] finished frobbing drager/caudices [INFO] frobbed toml for drager/caudices written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/drager/caudices/Cargo.toml [INFO] crate drager/caudices 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 drager/caudices 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/drager/caudices:/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] b27a9ec82f4809f33a8be476f58568025bdfe936c3ca36b4e01adf667a8e0cda [INFO] running `"docker" "start" "-a" "b27a9ec82f4809f33a8be476f58568025bdfe936c3ca36b4e01adf667a8e0cda"` [INFO] [stderr] Compiling stdweb-internal-runtime v0.1.2 [INFO] [stderr] Compiling base-x v0.2.3 [INFO] [stderr] Checking discard v1.0.4 [INFO] [stderr] Checking nonzero_signed v1.0.2 [INFO] [stderr] Checking fxhash v0.2.1 [INFO] [stderr] Checking crossbeam-epoch v0.5.2 [INFO] [stderr] Checking crossbeam-epoch v0.6.1 [INFO] [stderr] Compiling stdweb-internal-macros v0.2.2 [INFO] [stderr] Compiling stdweb v0.4.10 [INFO] [stderr] Checking parking_lot_core v0.2.14 [INFO] [stderr] Checking shred v0.7.1 [INFO] [stderr] Compiling wasm-bindgen-backend v0.2.28 [INFO] [stderr] Compiling shred-derive v0.5.1 [INFO] [stderr] Checking ncollide2d v0.17.3 [INFO] [stderr] Checking hibitset v0.5.3 [INFO] [stderr] Compiling stdweb-derive v0.5.1 [INFO] [stderr] Checking crossbeam-deque v0.5.2 [INFO] [stderr] Checking parking_lot v0.5.5 [INFO] [stderr] Checking crossbeam-channel v0.2.6 [INFO] [stderr] Checking shrev v1.0.1 [INFO] [stderr] Checking winit v0.17.2 [INFO] [stderr] Checking crossbeam v0.4.1 [INFO] [stderr] Checking specs v0.14.1 [INFO] [stderr] Compiling wasm-bindgen-macro-support v0.2.28 [INFO] [stderr] Compiling wasm-bindgen-macro v0.2.28 [INFO] [stderr] Checking glutin v0.18.0 [INFO] [stderr] Checking wasm-bindgen v0.2.28 [INFO] [stderr] Checking console_error_panic_hook v0.1.5 [INFO] [stderr] Checking quicksilver v0.3.2 [INFO] [stderr] Checking caudices v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/collision.rs:64:13 [INFO] [stderr] | [INFO] [stderr] 64 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/collision.rs:64:13 [INFO] [stderr] | [INFO] [stderr] 64 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: unused import: `Ball` [INFO] [stderr] --> src/collision.rs:6:25 [INFO] [stderr] | [INFO] [stderr] 6 | use ncollide2d::shape::{Ball, Cuboid, ShapeHandle}; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `ReadStorage` [INFO] [stderr] --> src/collision.rs:11:50 [INFO] [stderr] | [INFO] [stderr] 11 | Component, Entities, Join, LazyUpdate, Read, ReadStorage, System, VecStorage, WriteStorage, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cell::Cell` [INFO] [stderr] --> src/collision.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | use std::cell::Cell; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Ball` [INFO] [stderr] --> src/collision.rs:6:25 [INFO] [stderr] | [INFO] [stderr] 6 | use ncollide2d::shape::{Ball, Cuboid, ShapeHandle}; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `ReadStorage` [INFO] [stderr] --> src/collision.rs:11:50 [INFO] [stderr] | [INFO] [stderr] 11 | Component, Entities, Join, LazyUpdate, Read, ReadStorage, System, VecStorage, WriteStorage, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cell::Cell` [INFO] [stderr] --> src/collision.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | use std::cell::Cell; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `entities_world` [INFO] [stderr] --> src/collision.rs:76:5 [INFO] [stderr] | [INFO] [stderr] 76 | entities_world: &'b EntitiesWorld, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using `_entities_world` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `entity` [INFO] [stderr] --> src/collision.rs:34:25 [INFO] [stderr] | [INFO] [stderr] 34 | .for_each(|(entity, collision_object)| { [INFO] [stderr] | ^^^^^^ help: consider using `_entity` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `collision_object` [INFO] [stderr] --> src/collision.rs:34:33 [INFO] [stderr] | [INFO] [stderr] 34 | .for_each(|(entity, collision_object)| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using `_collision_object` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `updater` [INFO] [stderr] --> src/collision.rs:29:57 [INFO] [stderr] | [INFO] [stderr] 29 | fn run(&mut self, (entities, mut collision_objects, updater): Self::SystemData) { [INFO] [stderr] | ^^^^^^^ help: consider using `_updater` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ne` [INFO] [stderr] --> src/lib.rs:692:49 [INFO] [stderr] | [INFO] [stderr] 692 | let ne = entities [INFO] [stderr] | ^^ help: consider using `_ne` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `stages_asset` [INFO] [stderr] --> src/lib.rs:757:13 [INFO] [stderr] | [INFO] [stderr] 757 | let stages_asset = &mut self.game_asset.stages; [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using `_stages_asset` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `entities_world` [INFO] [stderr] --> src/collision.rs:76:5 [INFO] [stderr] | [INFO] [stderr] 76 | entities_world: &'b EntitiesWorld, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using `_entities_world` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `entity` [INFO] [stderr] --> src/collision.rs:34:25 [INFO] [stderr] | [INFO] [stderr] 34 | .for_each(|(entity, collision_object)| { [INFO] [stderr] | ^^^^^^ help: consider using `_entity` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `collision_object` [INFO] [stderr] --> src/collision.rs:34:33 [INFO] [stderr] | [INFO] [stderr] 34 | .for_each(|(entity, collision_object)| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using `_collision_object` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `updater` [INFO] [stderr] --> src/collision.rs:29:57 [INFO] [stderr] | [INFO] [stderr] 29 | fn run(&mut self, (entities, mut collision_objects, updater): Self::SystemData) { [INFO] [stderr] | ^^^^^^^ help: consider using `_updater` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ne` [INFO] [stderr] --> src/lib.rs:692:49 [INFO] [stderr] | [INFO] [stderr] 692 | let ne = entities [INFO] [stderr] | ^^ help: consider using `_ne` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `stages_asset` [INFO] [stderr] --> src/lib.rs:757:13 [INFO] [stderr] | [INFO] [stderr] 757 | let stages_asset = &mut self.game_asset.stages; [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using `_stages_asset` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/lib.rs:742:13 [INFO] [stderr] | [INFO] [stderr] 742 | let mut world = &mut self.world; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/lib.rs:746:13 [INFO] [stderr] | [INFO] [stderr] 746 | let mut screen_state = world.write_resource::(); [INFO] [stderr] | ----^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/lib.rs:748:13 [INFO] [stderr] | [INFO] [stderr] 748 | let mut stages = world.write_storage::(); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/lib.rs:742:13 [INFO] [stderr] | [INFO] [stderr] 742 | let mut world = &mut self.world; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/lib.rs:746:13 [INFO] [stderr] | [INFO] [stderr] 746 | let mut screen_state = world.write_resource::(); [INFO] [stderr] | ----^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/lib.rs:748:13 [INFO] [stderr] | [INFO] [stderr] 748 | let mut stages = world.write_storage::(); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: function is never used: `log` [INFO] [stderr] --> src/log.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | pub fn log(s: &str) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `find_current_map` [INFO] [stderr] --> src/lib.rs:384:1 [INFO] [stderr] | [INFO] [stderr] 384 | fn find_current_map(stages: Vec, state: &ScreenState) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `create_base_map_entities` [INFO] [stderr] --> src/lib.rs:396:1 [INFO] [stderr] | [INFO] [stderr] 396 | fn create_base_map_entities(world: &mut World, settings: &Settings) -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/collision.rs:96:9 [INFO] [stderr] | [INFO] [stderr] 96 | co1.position().clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*co1.position()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/collision.rs:98:9 [INFO] [stderr] | [INFO] [stderr] 98 | co1.collision_groups().clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*co1.collision_groups()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/collision.rs:139:28 [INFO] [stderr] | [INFO] [stderr] 139 | if let None = characters.get(entity) { [INFO] [stderr] | _____________________- ^^^^ [INFO] [stderr] 140 | | let position = position.position; [INFO] [stderr] 141 | | println!("BLOCK POS {:?}", position); [INFO] [stderr] 142 | | Some(Isometry2::new( [INFO] [stderr] ... | [INFO] [stderr] 147 | | None [INFO] [stderr] 148 | | } [INFO] [stderr] | |_____________________- help: try this: `if characters.get(entity).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: function is never used: `log` [INFO] [stderr] --> src/log.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | pub fn log(s: &str) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `find_current_map` [INFO] [stderr] --> src/lib.rs:384:1 [INFO] [stderr] | [INFO] [stderr] 384 | fn find_current_map(stages: Vec, state: &ScreenState) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `create_base_map_entities` [INFO] [stderr] --> src/lib.rs:396:1 [INFO] [stderr] | [INFO] [stderr] 396 | fn create_base_map_entities(world: &mut World, settings: &Settings) -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/collision.rs:96:9 [INFO] [stderr] | [INFO] [stderr] 96 | co1.position().clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*co1.position()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/collision.rs:98:9 [INFO] [stderr] | [INFO] [stderr] 98 | co1.collision_groups().clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*co1.collision_groups()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/collision.rs:139:28 [INFO] [stderr] | [INFO] [stderr] 139 | if let None = characters.get(entity) { [INFO] [stderr] | _____________________- ^^^^ [INFO] [stderr] 140 | | let position = position.position; [INFO] [stderr] 141 | | println!("BLOCK POS {:?}", position); [INFO] [stderr] 142 | | Some(Isometry2::new( [INFO] [stderr] ... | [INFO] [stderr] 147 | | None [INFO] [stderr] 148 | | } [INFO] [stderr] | |_____________________- help: try this: `if characters.get(entity).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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/lib.rs:212:30 [INFO] [stderr] | [INFO] [stderr] 212 | animation_positions: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[CharacterPosition]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/lib.rs:228:30 [INFO] [stderr] | [INFO] [stderr] 228 | animation_positions: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[CharacterPosition]` [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/lib.rs:244:30 [INFO] [stderr] | [INFO] [stderr] 244 | animation_positions: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[CharacterPosition]` [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/lib.rs:260:30 [INFO] [stderr] | [INFO] [stderr] 260 | animation_positions: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[CharacterPosition]` [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/lib.rs:275:30 [INFO] [stderr] | [INFO] [stderr] 275 | animation_positions: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[CharacterPosition]` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lib.rs:276:20 [INFO] [stderr] | [INFO] [stderr] 276 | key_state: &ButtonState, [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `ButtonState` [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: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/lib.rs:279:64 [INFO] [stderr] | [INFO] [stderr] 279 | let mut animation_positions_iter = animation_positions.into_iter(); [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/lib.rs:301:32 [INFO] [stderr] | [INFO] [stderr] 301 | if x == rectangle.pos.x { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(x - rectangle.pos.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/lib.rs:301:32 [INFO] [stderr] | [INFO] [stderr] 301 | if x == rectangle.pos.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/lib.rs:316:28 [INFO] [stderr] | [INFO] [stderr] 316 | if x == rectangle.pos.x { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(x - rectangle.pos.x).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/lib.rs:316:28 [INFO] [stderr] | [INFO] [stderr] 316 | if x == rectangle.pos.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] warning: casting u16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:403:17 [INFO] [stderr] | [INFO] [stderr] 403 | (width_index + 1) as f32 * 50., [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(width_index + 1)` [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 u16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:411:17 [INFO] [stderr] | [INFO] [stderr] 411 | (width_index + 1) as f32 * 50., [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(width_index + 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 u16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:421:38 [INFO] [stderr] | [INFO] [stderr] 421 | .with(Position::new(50., (height_index + 1) as f32 * 50.)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(height_index + 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 u16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:430:17 [INFO] [stderr] | [INFO] [stderr] 430 | (height_index + 1) as f32 * 50., [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(height_index + 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: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/lib.rs:549:17 [INFO] [stderr] | [INFO] [stderr] 549 | / stage [INFO] [stderr] 550 | | .maps [INFO] [stderr] 551 | | .iter() [INFO] [stderr] 552 | | .find(|map| map.level == screen_state.current_level) [INFO] [stderr] ... | [INFO] [stderr] 556 | | } [INFO] [stderr] 557 | | }); [INFO] [stderr] | |______________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 549 | if let Some(map) = stage [INFO] [stderr] 550 | .maps [INFO] [stderr] 551 | .iter() [INFO] [stderr] 552 | .find(|map| map.level == screen_state.current_level) { ... } [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/lib.rs:650:13 [INFO] [stderr] | [INFO] [stderr] 650 | / match screen_state.game_state { [INFO] [stderr] 651 | | GameState::Active => { [INFO] [stderr] 652 | | if let Some(position) = positions.get_mut(entity) { [INFO] [stderr] 653 | | if let Some(_character) = characters.get(entity) { [INFO] [stderr] ... | [INFO] [stderr] 731 | | _ => {} [INFO] [stderr] 732 | | } [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] 650 | if let GameState::Active = screen_state.game_state { [INFO] [stderr] 651 | if let Some(position) = positions.get_mut(entity) { [INFO] [stderr] 652 | if let Some(_character) = characters.get(entity) { [INFO] [stderr] 653 | let _ = character_asset.execute(|character_animation| { [INFO] [stderr] 654 | if let Some(collision_world) = collision_world { [INFO] [stderr] 655 | let mut collision = [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/lib.rs:771:16 [INFO] [stderr] | [INFO] [stderr] 771 | if let None = self.collision_world { [INFO] [stderr] | _________- ^^^^ [INFO] [stderr] 772 | | self.collision_world = Some(Collision::new(&world)); [INFO] [stderr] 773 | | } [INFO] [stderr] | |_________- help: try this: `if self.collision_world.is_none()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:805:13 [INFO] [stderr] | [INFO] [stderr] 805 | / match current_map { [INFO] [stderr] 806 | | Some(map) => { [INFO] [stderr] 807 | | Screen::draw_time_left(window, &time_elapsed, map, mali_font)?; [INFO] [stderr] 808 | | [INFO] [stderr] ... | [INFO] [stderr] 811 | | None => {} [INFO] [stderr] 812 | | }; [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] 805 | if let Some(map) = current_map { [INFO] [stderr] 806 | Screen::draw_time_left(window, &time_elapsed, map, mali_font)?; [INFO] [stderr] 807 | [INFO] [stderr] 808 | Screen::draw_blocks(window, map, block_asset); [INFO] [stderr] 809 | }; [INFO] [stderr] | [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/lib.rs:212:30 [INFO] [stderr] | [INFO] [stderr] 212 | animation_positions: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[CharacterPosition]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/lib.rs:228:30 [INFO] [stderr] | [INFO] [stderr] 228 | animation_positions: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[CharacterPosition]` [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/lib.rs:244:30 [INFO] [stderr] | [INFO] [stderr] 244 | animation_positions: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[CharacterPosition]` [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/lib.rs:260:30 [INFO] [stderr] | [INFO] [stderr] 260 | animation_positions: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[CharacterPosition]` [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/lib.rs:275:30 [INFO] [stderr] | [INFO] [stderr] 275 | animation_positions: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[CharacterPosition]` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lib.rs:276:20 [INFO] [stderr] | [INFO] [stderr] 276 | key_state: &ButtonState, [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `ButtonState` [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: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/lib.rs:279:64 [INFO] [stderr] | [INFO] [stderr] 279 | let mut animation_positions_iter = animation_positions.into_iter(); [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/lib.rs:301:32 [INFO] [stderr] | [INFO] [stderr] 301 | if x == rectangle.pos.x { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(x - rectangle.pos.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/lib.rs:301:32 [INFO] [stderr] | [INFO] [stderr] 301 | if x == rectangle.pos.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/lib.rs:316:28 [INFO] [stderr] | [INFO] [stderr] 316 | if x == rectangle.pos.x { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(x - rectangle.pos.x).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/lib.rs:316:28 [INFO] [stderr] | [INFO] [stderr] 316 | if x == rectangle.pos.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: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] warning: casting u16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:403:17 [INFO] [stderr] | [INFO] [stderr] 403 | (width_index + 1) as f32 * 50., [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(width_index + 1)` [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 u16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:411:17 [INFO] [stderr] | [INFO] [stderr] 411 | (width_index + 1) as f32 * 50., [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(width_index + 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 u16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:421:38 [INFO] [stderr] | [INFO] [stderr] 421 | .with(Position::new(50., (height_index + 1) as f32 * 50.)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(height_index + 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 u16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:430:17 [INFO] [stderr] | [INFO] [stderr] 430 | (height_index + 1) as f32 * 50., [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(height_index + 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] error: Could not compile `caudices`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/lib.rs:549:17 [INFO] [stderr] | [INFO] [stderr] 549 | / stage [INFO] [stderr] 550 | | .maps [INFO] [stderr] 551 | | .iter() [INFO] [stderr] 552 | | .find(|map| map.level == screen_state.current_level) [INFO] [stderr] ... | [INFO] [stderr] 556 | | } [INFO] [stderr] 557 | | }); [INFO] [stderr] | |______________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 549 | if let Some(map) = stage [INFO] [stderr] 550 | .maps [INFO] [stderr] 551 | .iter() [INFO] [stderr] 552 | .find(|map| map.level == screen_state.current_level) { ... } [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/lib.rs:650:13 [INFO] [stderr] | [INFO] [stderr] 650 | / match screen_state.game_state { [INFO] [stderr] 651 | | GameState::Active => { [INFO] [stderr] 652 | | if let Some(position) = positions.get_mut(entity) { [INFO] [stderr] 653 | | if let Some(_character) = characters.get(entity) { [INFO] [stderr] ... | [INFO] [stderr] 731 | | _ => {} [INFO] [stderr] 732 | | } [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] 650 | if let GameState::Active = screen_state.game_state { [INFO] [stderr] 651 | if let Some(position) = positions.get_mut(entity) { [INFO] [stderr] 652 | if let Some(_character) = characters.get(entity) { [INFO] [stderr] 653 | let _ = character_asset.execute(|character_animation| { [INFO] [stderr] 654 | if let Some(collision_world) = collision_world { [INFO] [stderr] 655 | let mut collision = [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/lib.rs:771:16 [INFO] [stderr] | [INFO] [stderr] 771 | if let None = self.collision_world { [INFO] [stderr] | _________- ^^^^ [INFO] [stderr] 772 | | self.collision_world = Some(Collision::new(&world)); [INFO] [stderr] 773 | | } [INFO] [stderr] | |_________- help: try this: `if self.collision_world.is_none()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:805:13 [INFO] [stderr] | [INFO] [stderr] 805 | / match current_map { [INFO] [stderr] 806 | | Some(map) => { [INFO] [stderr] 807 | | Screen::draw_time_left(window, &time_elapsed, map, mali_font)?; [INFO] [stderr] 808 | | [INFO] [stderr] ... | [INFO] [stderr] 811 | | None => {} [INFO] [stderr] 812 | | }; [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] 805 | if let Some(map) = current_map { [INFO] [stderr] 806 | Screen::draw_time_left(window, &time_elapsed, map, mali_font)?; [INFO] [stderr] 807 | [INFO] [stderr] 808 | Screen::draw_blocks(window, map, block_asset); [INFO] [stderr] 809 | }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `caudices`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "b27a9ec82f4809f33a8be476f58568025bdfe936c3ca36b4e01adf667a8e0cda"` [INFO] running `"docker" "rm" "-f" "b27a9ec82f4809f33a8be476f58568025bdfe936c3ca36b4e01adf667a8e0cda"` [INFO] [stdout] b27a9ec82f4809f33a8be476f58568025bdfe936c3ca36b4e01adf667a8e0cda