[INFO] updating cached repository picklenerd/rock_paper_scissors [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/picklenerd/rock_paper_scissors [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/picklenerd/rock_paper_scissors" "work/ex/clippy-test-run/sources/stable/gh/picklenerd/rock_paper_scissors"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/picklenerd/rock_paper_scissors'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/picklenerd/rock_paper_scissors" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/picklenerd/rock_paper_scissors"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/picklenerd/rock_paper_scissors'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] a9a898c39f300a662a655a744f05bacf9d8725d0 [INFO] sha for GitHub repo picklenerd/rock_paper_scissors: a9a898c39f300a662a655a744f05bacf9d8725d0 [INFO] validating manifest of picklenerd/rock_paper_scissors 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 picklenerd/rock_paper_scissors 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 picklenerd/rock_paper_scissors [INFO] finished frobbing picklenerd/rock_paper_scissors [INFO] frobbed toml for picklenerd/rock_paper_scissors written to work/ex/clippy-test-run/sources/stable/gh/picklenerd/rock_paper_scissors/Cargo.toml [INFO] started frobbing picklenerd/rock_paper_scissors [INFO] finished frobbing picklenerd/rock_paper_scissors [INFO] frobbed toml for picklenerd/rock_paper_scissors written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/picklenerd/rock_paper_scissors/Cargo.toml [INFO] crate picklenerd/rock_paper_scissors 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 picklenerd/rock_paper_scissors against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-0/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/picklenerd/rock_paper_scissors:/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] 8649e99cc88c74f9323b8748a3bed63a21bf65ffbb1d6380ed4aa7a0d14f1a27 [INFO] running `"docker" "start" "-a" "8649e99cc88c74f9323b8748a3bed63a21bf65ffbb1d6380ed4aa7a0d14f1a27"` [INFO] [stderr] Checking rockpaperscissors v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unused import: `std::collections::HashMap` [INFO] [stderr] --> src/main.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/game/rps.rs:23:9 [INFO] [stderr] | [INFO] [stderr] 23 | return Winner::Draw; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Winner::Draw` [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/rps.rs:27:13 [INFO] [stderr] | [INFO] [stderr] 27 | return Winner::Player; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Winner::Player` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/game/rps.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | return Winner::Cpu; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Winner::Cpu` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/game/ai.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | return count as f32 / self.get_count_total() as f32 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `count as f32 / self.get_count_total() as f32` [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: `std::collections::HashMap` [INFO] [stderr] --> src/main.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/game/rps.rs:23:9 [INFO] [stderr] | [INFO] [stderr] 23 | return Winner::Draw; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Winner::Draw` [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/rps.rs:27:13 [INFO] [stderr] | [INFO] [stderr] 27 | return Winner::Player; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Winner::Player` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/game/rps.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | return Winner::Cpu; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Winner::Cpu` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/game/ai.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | return count as f32 / self.get_count_total() as f32 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `count as f32 / self.get_count_total() as f32` [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: method is never used: `get_weapon_count` [INFO] [stderr] --> src/game/ai.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | pub fn get_weapon_count(&self, weapon: &Weapon) -> u64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_weapon_weight` [INFO] [stderr] --> src/game/ai.rs:31:5 [INFO] [stderr] | [INFO] [stderr] 31 | pub fn get_weapon_weight(&self, weapon: &Weapon) -> f32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_count_total` [INFO] [stderr] --> src/game/ai.rs:36:5 [INFO] [stderr] | [INFO] [stderr] 36 | pub fn get_count_total(&self) -> u64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/game/weapon.rs:25:9 [INFO] [stderr] | [INFO] [stderr] 25 | / match self { [INFO] [stderr] 26 | | &Weapon::Rock => "Rock".to_string(), [INFO] [stderr] 27 | | &Weapon::Paper => "Paper".to_string(), [INFO] [stderr] 28 | | &Weapon::Scissors => "Scissors".to_string(), [INFO] [stderr] 29 | | } [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] 25 | match *self { [INFO] [stderr] 26 | Weapon::Rock => "Rock".to_string(), [INFO] [stderr] 27 | Weapon::Paper => "Paper".to_string(), [INFO] [stderr] 28 | Weapon::Scissors => "Scissors".to_string(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: needlessly taken reference of both operands [INFO] [stderr] --> src/game/rps.rs:22:8 [INFO] [stderr] | [INFO] [stderr] 22 | if &player_choice == &cpu_choice { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] help: use the values directly [INFO] [stderr] | [INFO] [stderr] 22 | if player_choice == cpu_choice { [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's values [INFO] [stderr] --> src/game/ai.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | for (_, count) in &self.player_choices { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::for_kv_map)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 38 | for count in self.player_choices.values() { [INFO] [stderr] | ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_weapon_count` [INFO] [stderr] --> src/game/ai.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | pub fn get_weapon_count(&self, weapon: &Weapon) -> u64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_weapon_weight` [INFO] [stderr] --> src/game/ai.rs:31:5 [INFO] [stderr] | [INFO] [stderr] 31 | pub fn get_weapon_weight(&self, weapon: &Weapon) -> f32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_count_total` [INFO] [stderr] --> src/game/ai.rs:36:5 [INFO] [stderr] | [INFO] [stderr] 36 | pub fn get_count_total(&self) -> u64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/game/weapon.rs:25:9 [INFO] [stderr] | [INFO] [stderr] 25 | / match self { [INFO] [stderr] 26 | | &Weapon::Rock => "Rock".to_string(), [INFO] [stderr] 27 | | &Weapon::Paper => "Paper".to_string(), [INFO] [stderr] 28 | | &Weapon::Scissors => "Scissors".to_string(), [INFO] [stderr] 29 | | } [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] 25 | match *self { [INFO] [stderr] 26 | Weapon::Rock => "Rock".to_string(), [INFO] [stderr] 27 | Weapon::Paper => "Paper".to_string(), [INFO] [stderr] 28 | Weapon::Scissors => "Scissors".to_string(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: needlessly taken reference of both operands [INFO] [stderr] --> src/game/rps.rs:22:8 [INFO] [stderr] | [INFO] [stderr] 22 | if &player_choice == &cpu_choice { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] help: use the values directly [INFO] [stderr] | [INFO] [stderr] 22 | if player_choice == cpu_choice { [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's values [INFO] [stderr] --> src/game/ai.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | for (_, count) in &self.player_choices { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::for_kv_map)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 38 | for count in self.player_choices.values() { [INFO] [stderr] | ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 0.68s [INFO] running `"docker" "inspect" "8649e99cc88c74f9323b8748a3bed63a21bf65ffbb1d6380ed4aa7a0d14f1a27"` [INFO] running `"docker" "rm" "-f" "8649e99cc88c74f9323b8748a3bed63a21bf65ffbb1d6380ed4aa7a0d14f1a27"` [INFO] [stdout] 8649e99cc88c74f9323b8748a3bed63a21bf65ffbb1d6380ed4aa7a0d14f1a27