[INFO] updating cached repository tragle/samesies [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/tragle/samesies [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/tragle/samesies" "work/ex/clippy-test-run/sources/stable/gh/tragle/samesies"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/tragle/samesies'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/tragle/samesies" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/tragle/samesies"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/tragle/samesies'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 746b6f0f5c098b01dad69e47d6e46bde0189bc05 [INFO] sha for GitHub repo tragle/samesies: 746b6f0f5c098b01dad69e47d6e46bde0189bc05 [INFO] validating manifest of tragle/samesies 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 tragle/samesies 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 tragle/samesies [INFO] finished frobbing tragle/samesies [INFO] frobbed toml for tragle/samesies written to work/ex/clippy-test-run/sources/stable/gh/tragle/samesies/Cargo.toml [INFO] started frobbing tragle/samesies [INFO] finished frobbing tragle/samesies [INFO] frobbed toml for tragle/samesies written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/tragle/samesies/Cargo.toml [INFO] crate tragle/samesies 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 tragle/samesies 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/tragle/samesies:/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] 5c72f8f98728689b95b0ff1dbfd793a27f61c257b46b5f9768c950f0bba11ff2 [INFO] running `"docker" "start" "-a" "5c72f8f98728689b95b0ff1dbfd793a27f61c257b46b5f9768c950f0bba11ff2"` [INFO] [stderr] Checking samesies v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | / match dir_entry.metadata() { [INFO] [stderr] 25 | | Ok(metadata) => { [INFO] [stderr] 26 | | let length = metadata.len(); [INFO] [stderr] 27 | | if length > 0 { [INFO] [stderr] ... | [INFO] [stderr] 33 | | _ => () [INFO] [stderr] 34 | | } [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] 24 | if let Ok(metadata) = dir_entry.metadata() { [INFO] [stderr] 25 | let length = metadata.len(); [INFO] [stderr] 26 | if length > 0 { [INFO] [stderr] 27 | let path_vec: Vec = Vec::new(); [INFO] [stderr] 28 | let filenames = hashes.entry(length).or_insert(path_vec); [INFO] [stderr] 29 | filenames.push(filename); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | / match fs::read(&filename) { [INFO] [stderr] 41 | | Ok(bytes) => { [INFO] [stderr] 42 | | if bytes.len() > 0 { [INFO] [stderr] 43 | | let path_vec: Vec = Vec::new(); [INFO] [stderr] ... | [INFO] [stderr] 48 | | _ => () [INFO] [stderr] 49 | | } [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] 40 | if let Ok(bytes) = fs::read(&filename) { [INFO] [stderr] 41 | if bytes.len() > 0 { [INFO] [stderr] 42 | let path_vec: Vec = Vec::new(); [INFO] [stderr] 43 | let filenames = hashes.entry(bytes).or_insert(path_vec); [INFO] [stderr] 44 | filenames.push(filename.to_path_buf()); [INFO] [stderr] 45 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:42:16 [INFO] [stderr] | [INFO] [stderr] 42 | if bytes.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!bytes.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:55:9 [INFO] [stderr] | [INFO] [stderr] 55 | / match fs::read_dir(dir) { [INFO] [stderr] 56 | | Ok(entries) => for entry in entries { [INFO] [stderr] 57 | | let entry = entry?; [INFO] [stderr] 58 | | let path = entry.path(); [INFO] [stderr] ... | [INFO] [stderr] 65 | | _ => () [INFO] [stderr] 66 | | } [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] 55 | if let Ok(entries) = fs::read_dir(dir) for entry in entries { [INFO] [stderr] 56 | let entry = entry?; [INFO] [stderr] 57 | let path = entry.path(); [INFO] [stderr] 58 | if path.is_dir() { [INFO] [stderr] 59 | visit_write(&path, cb, &mut hash)?; [INFO] [stderr] 60 | } else { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's values [INFO] [stderr] --> src/main.rs:84:20 [INFO] [stderr] | [INFO] [stderr] 84 | for (_s, f) in &size_hashes { [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] 84 | for f in size_hashes.values() { [INFO] [stderr] | ^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's values [INFO] [stderr] --> src/main.rs:95:20 [INFO] [stderr] | [INFO] [stderr] 95 | for (_b, f) in &bytes_hashes { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [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] 95 | for f in bytes_hashes.values() { [INFO] [stderr] | ^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the variable `num` is used as a loop counter. Consider using `for (num, item) in f.enumerate()` or similar iterators [INFO] [stderr] --> src/main.rs:99:25 [INFO] [stderr] | [INFO] [stderr] 99 | for file in f { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_counter_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | / match dir_entry.metadata() { [INFO] [stderr] 25 | | Ok(metadata) => { [INFO] [stderr] 26 | | let length = metadata.len(); [INFO] [stderr] 27 | | if length > 0 { [INFO] [stderr] ... | [INFO] [stderr] 33 | | _ => () [INFO] [stderr] 34 | | } [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] 24 | if let Ok(metadata) = dir_entry.metadata() { [INFO] [stderr] 25 | let length = metadata.len(); [INFO] [stderr] 26 | if length > 0 { [INFO] [stderr] 27 | let path_vec: Vec = Vec::new(); [INFO] [stderr] 28 | let filenames = hashes.entry(length).or_insert(path_vec); [INFO] [stderr] 29 | filenames.push(filename); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | / match fs::read(&filename) { [INFO] [stderr] 41 | | Ok(bytes) => { [INFO] [stderr] 42 | | if bytes.len() > 0 { [INFO] [stderr] 43 | | let path_vec: Vec = Vec::new(); [INFO] [stderr] ... | [INFO] [stderr] 48 | | _ => () [INFO] [stderr] 49 | | } [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] 40 | if let Ok(bytes) = fs::read(&filename) { [INFO] [stderr] 41 | if bytes.len() > 0 { [INFO] [stderr] 42 | let path_vec: Vec = Vec::new(); [INFO] [stderr] 43 | let filenames = hashes.entry(bytes).or_insert(path_vec); [INFO] [stderr] 44 | filenames.push(filename.to_path_buf()); [INFO] [stderr] 45 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:42:16 [INFO] [stderr] | [INFO] [stderr] 42 | if bytes.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!bytes.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:55:9 [INFO] [stderr] | [INFO] [stderr] 55 | / match fs::read_dir(dir) { [INFO] [stderr] 56 | | Ok(entries) => for entry in entries { [INFO] [stderr] 57 | | let entry = entry?; [INFO] [stderr] 58 | | let path = entry.path(); [INFO] [stderr] ... | [INFO] [stderr] 65 | | _ => () [INFO] [stderr] 66 | | } [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] 55 | if let Ok(entries) = fs::read_dir(dir) for entry in entries { [INFO] [stderr] 56 | let entry = entry?; [INFO] [stderr] 57 | let path = entry.path(); [INFO] [stderr] 58 | if path.is_dir() { [INFO] [stderr] 59 | visit_write(&path, cb, &mut hash)?; [INFO] [stderr] 60 | } else { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's values [INFO] [stderr] --> src/main.rs:84:20 [INFO] [stderr] | [INFO] [stderr] 84 | for (_s, f) in &size_hashes { [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] 84 | for f in size_hashes.values() { [INFO] [stderr] | ^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's values [INFO] [stderr] --> src/main.rs:95:20 [INFO] [stderr] | [INFO] [stderr] 95 | for (_b, f) in &bytes_hashes { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [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] 95 | for f in bytes_hashes.values() { [INFO] [stderr] | ^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the variable `num` is used as a loop counter. Consider using `for (num, item) in f.enumerate()` or similar iterators [INFO] [stderr] --> src/main.rs:99:25 [INFO] [stderr] | [INFO] [stderr] 99 | for file in f { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_counter_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 0.54s [INFO] running `"docker" "inspect" "5c72f8f98728689b95b0ff1dbfd793a27f61c257b46b5f9768c950f0bba11ff2"` [INFO] running `"docker" "rm" "-f" "5c72f8f98728689b95b0ff1dbfd793a27f61c257b46b5f9768c950f0bba11ff2"` [INFO] [stdout] 5c72f8f98728689b95b0ff1dbfd793a27f61c257b46b5f9768c950f0bba11ff2