[INFO] updating cached repository NSResident/rusty_shell [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/NSResident/rusty_shell [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/NSResident/rusty_shell" "work/ex/clippy-test-run/sources/stable/gh/NSResident/rusty_shell"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/NSResident/rusty_shell'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/NSResident/rusty_shell" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/NSResident/rusty_shell"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/NSResident/rusty_shell'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 41caac18b0e988ee6f749d8a1e92fb2c9eead05e [INFO] sha for GitHub repo NSResident/rusty_shell: 41caac18b0e988ee6f749d8a1e92fb2c9eead05e [INFO] validating manifest of NSResident/rusty_shell 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 NSResident/rusty_shell 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 NSResident/rusty_shell [INFO] finished frobbing NSResident/rusty_shell [INFO] frobbed toml for NSResident/rusty_shell written to work/ex/clippy-test-run/sources/stable/gh/NSResident/rusty_shell/Cargo.toml [INFO] started frobbing NSResident/rusty_shell [INFO] finished frobbing NSResident/rusty_shell [INFO] frobbed toml for NSResident/rusty_shell written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/NSResident/rusty_shell/Cargo.toml [INFO] crate NSResident/rusty_shell 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 NSResident/rusty_shell against stable+rustflags=-Dclippy::into_iter_on_array for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-0/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/NSResident/rusty_shell:/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 -Dclippy::into_iter_on_array" "-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] 117a7f54d3cc1a3cc60a01aa99319422fa1f3bd81643d335c67218ac3f7f6ded [INFO] running `"docker" "start" "-a" "117a7f54d3cc1a3cc60a01aa99319422fa1f3bd81643d335c67218ac3f7f6ded"` [INFO] [stderr] Checking rusty_shell v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: value assigned to `input` is never read [INFO] [stderr] --> src/main.rs:9:13 [INFO] [stderr] | [INFO] [stderr] 9 | let mut input = String::new(); [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `pipecount` [INFO] [stderr] --> src/main.rs:29:16 [INFO] [stderr] | [INFO] [stderr] 29 | let (jobs, pipecount) = parse_command(&input); [INFO] [stderr] | ^^^^^^^^^ help: consider using `_pipecount` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `err` [INFO] [stderr] --> src/main.rs:58:17 [INFO] [stderr] | [INFO] [stderr] 58 | Err(err) => println!("Cannot find program") [INFO] [stderr] | ^^^ help: consider using `_err` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/main.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | Err(e) => print!("No path found"), [INFO] [stderr] | ^ help: consider using `_e` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `input` is never read [INFO] [stderr] --> src/main.rs:9:13 [INFO] [stderr] | [INFO] [stderr] 9 | let mut input = String::new(); [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `pipecount` [INFO] [stderr] --> src/main.rs:29:16 [INFO] [stderr] | [INFO] [stderr] 29 | let (jobs, pipecount) = parse_command(&input); [INFO] [stderr] | ^^^^^^^^^ help: consider using `_pipecount` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `err` [INFO] [stderr] --> src/main.rs:58:17 [INFO] [stderr] | [INFO] [stderr] 58 | Err(err) => println!("Cannot find program") [INFO] [stderr] | ^^^ help: consider using `_err` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/main.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | Err(e) => print!("No path found"), [INFO] [stderr] | ^ help: consider using `_e` instead [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/main.rs:33:8 [INFO] [stderr] | [INFO] [stderr] 33 | if *program == "cd".to_owned(){ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ try implementing the comparison without allocating [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_owned)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/main.rs:34:12 [INFO] [stderr] | [INFO] [stderr] 34 | if arguements.len() >= 1{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!arguements.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: this call to `as_ref` does nothing [INFO] [stderr] --> src/main.rs:35:19 [INFO] [stderr] | [INFO] [stderr] 35 | match arguements[0].as_ref(){ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try this: `arguements[0]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_asref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_asref [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:40:21 [INFO] [stderr] | [INFO] [stderr] 40 | env::set_current_dir(new_path.as_path()); [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: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/main.rs:63:24 [INFO] [stderr] | [INFO] [stderr] 63 | fn parse_command(input:&String) -> (Vec<(&str, Vec<&str>)>, usize){ [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [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: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:68:60 [INFO] [stderr] | [INFO] [stderr] 68 | let mut command_string: Vec<&str> = elements.split(" ").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `' '` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:80:5 [INFO] [stderr] | [INFO] [stderr] 80 | stdout().flush(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:82:5 [INFO] [stderr] | [INFO] [stderr] 82 | stdin().read_line(&mut input); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/main.rs:33:8 [INFO] [stderr] | [INFO] [stderr] 33 | if *program == "cd".to_owned(){ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ try implementing the comparison without allocating [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_owned)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/main.rs:34:12 [INFO] [stderr] | [INFO] [stderr] 34 | if arguements.len() >= 1{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!arguements.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: this call to `as_ref` does nothing [INFO] [stderr] --> src/main.rs:35:19 [INFO] [stderr] | [INFO] [stderr] 35 | match arguements[0].as_ref(){ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try this: `arguements[0]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_asref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_asref [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:40:21 [INFO] [stderr] | [INFO] [stderr] 40 | env::set_current_dir(new_path.as_path()); [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: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/main.rs:63:24 [INFO] [stderr] | [INFO] [stderr] 63 | fn parse_command(input:&String) -> (Vec<(&str, Vec<&str>)>, usize){ [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [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: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:68:60 [INFO] [stderr] | [INFO] [stderr] 68 | let mut command_string: Vec<&str> = elements.split(" ").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `' '` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:80:5 [INFO] [stderr] | [INFO] [stderr] 80 | stdout().flush(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:82:5 [INFO] [stderr] | [INFO] [stderr] 82 | stdin().read_line(&mut input); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 0.81s [INFO] running `"docker" "inspect" "117a7f54d3cc1a3cc60a01aa99319422fa1f3bd81643d335c67218ac3f7f6ded"` [INFO] running `"docker" "rm" "-f" "117a7f54d3cc1a3cc60a01aa99319422fa1f3bd81643d335c67218ac3f7f6ded"` [INFO] [stdout] 117a7f54d3cc1a3cc60a01aa99319422fa1f3bd81643d335c67218ac3f7f6ded