[INFO] updating cached repository jswz72/rush [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/jswz72/rush [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/jswz72/rush" "work/ex/clippy-test-run/sources/stable/gh/jswz72/rush"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/jswz72/rush'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/jswz72/rush" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/jswz72/rush"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/jswz72/rush'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 08b196eb1d94ac57a659c027143134e56629bcb0 [INFO] sha for GitHub repo jswz72/rush: 08b196eb1d94ac57a659c027143134e56629bcb0 [INFO] validating manifest of jswz72/rush 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 jswz72/rush 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 jswz72/rush [INFO] finished frobbing jswz72/rush [INFO] frobbed toml for jswz72/rush written to work/ex/clippy-test-run/sources/stable/gh/jswz72/rush/Cargo.toml [INFO] started frobbing jswz72/rush [INFO] finished frobbing jswz72/rush [INFO] frobbed toml for jswz72/rush written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/jswz72/rush/Cargo.toml [INFO] crate jswz72/rush 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 jswz72/rush 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-5/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/jswz72/rush:/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] 87d5f4418c3dff7019d5cf49d5c3e3339a7757f6e26ce5e28ab5bf1edcdb8c5c [INFO] running `"docker" "start" "-a" "87d5f4418c3dff7019d5cf49d5c3e3339a7757f6e26ce5e28ab5bf1edcdb8c5c"` [INFO] [stderr] Checking rush v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: use of deprecated item 'std::env::home_dir': This function's behavior is unexpected and probably not what you want. Consider using the home_dir function from https://crates.io/crates/dirs instead. [INFO] [stderr] --> src/commands/utils.rs:7:20 [INFO] [stderr] | [INFO] [stderr] 7 | let home_dir = env::home_dir().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::env::home_dir': This function's behavior is unexpected and probably not what you want. Consider using the home_dir function from https://crates.io/crates/dirs instead. [INFO] [stderr] --> src/config.rs:160:11 [INFO] [stderr] | [INFO] [stderr] 160 | match env::home_dir() { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::env::home_dir': This function's behavior is unexpected and probably not what you want. Consider using the home_dir function from https://crates.io/crates/dirs instead. [INFO] [stderr] --> src/commands/utils.rs:7:20 [INFO] [stderr] | [INFO] [stderr] 7 | let home_dir = env::home_dir().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::env::home_dir': This function's behavior is unexpected and probably not what you want. Consider using the home_dir function from https://crates.io/crates/dirs instead. [INFO] [stderr] --> src/config.rs:160:11 [INFO] [stderr] | [INFO] [stderr] 160 | match env::home_dir() { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `command` [INFO] [stderr] --> src/commands/pwd.rs:6:47 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn execute<'a>(oh: &'a mut OutputHandler, command: &BasicCommand) -> Result<&'a mut OutputHandler, io::Error>{ [INFO] [stderr] | ^^^^^^^ help: consider using `_command` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `command` [INFO] [stderr] --> src/commands/cat.rs:5:47 [INFO] [stderr] | [INFO] [stderr] 5 | pub fn execute<'a>(oh: &'a mut OutputHandler, command: &FileCommand) -> Result<&'a mut OutputHandler, io::Error>{ [INFO] [stderr] | ^^^^^^^ help: consider using `_command` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `command` [INFO] [stderr] --> src/commands/pwd.rs:6:47 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn execute<'a>(oh: &'a mut OutputHandler, command: &BasicCommand) -> Result<&'a mut OutputHandler, io::Error>{ [INFO] [stderr] | ^^^^^^^ help: consider using `_command` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `command` [INFO] [stderr] --> src/commands/cat.rs:5:47 [INFO] [stderr] | [INFO] [stderr] 5 | pub fn execute<'a>(oh: &'a mut OutputHandler, command: &FileCommand) -> Result<&'a mut OutputHandler, io::Error>{ [INFO] [stderr] | ^^^^^^^ help: consider using `_command` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/config.rs:28:13 [INFO] [stderr] | [INFO] [stderr] 28 | let mut config_file = fs::read_to_string(RCFILE); [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/config.rs:28:13 [INFO] [stderr] | [INFO] [stderr] 28 | let mut config_file = fs::read_to_string(RCFILE); [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: length comparison to zero [INFO] [stderr] --> src/commands/utils.rs:8:8 [INFO] [stderr] | [INFO] [stderr] 8 | if paths.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `paths.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: identical conversion [INFO] [stderr] --> src/commands/utils.rs:9:24 [INFO] [stderr] | [INFO] [stderr] 9 | return Ok(vec![PathBuf::from(cur_dir)]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `PathBuf::from()`: `cur_dir` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/commands/utils.rs:12:52 [INFO] [stderr] | [INFO] [stderr] 12 | let mut path_builder = if path.starts_with("~") { [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: single-character string constant used as pattern [INFO] [stderr] --> src/commands/utils.rs:20:36 [INFO] [stderr] | [INFO] [stderr] 20 | } else if path.starts_with("~") { [INFO] [stderr] | ^^^ help: try using a char instead: `'~'` [INFO] [stderr] | [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: length comparison to zero [INFO] [stderr] --> src/commands/utils.rs:8:8 [INFO] [stderr] | [INFO] [stderr] 8 | if paths.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `paths.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: identical conversion [INFO] [stderr] --> src/commands/utils.rs:9:24 [INFO] [stderr] | [INFO] [stderr] 9 | return Ok(vec![PathBuf::from(cur_dir)]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `PathBuf::from()`: `cur_dir` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/commands/utils.rs:12:52 [INFO] [stderr] | [INFO] [stderr] 12 | let mut path_builder = if path.starts_with("~") { [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: single-character string constant used as pattern [INFO] [stderr] --> src/commands/utils.rs:20:36 [INFO] [stderr] | [INFO] [stderr] 20 | } else if path.starts_with("~") { [INFO] [stderr] | ^^^ help: try using a char instead: `'~'` [INFO] [stderr] | [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: single-character string constant used as pattern [INFO] [stderr] --> src/commands/mod.rs:39:52 [INFO] [stderr] | [INFO] [stderr] 39 | let is_flag = |i: &&str| i.starts_with("-"); [INFO] [stderr] | ^^^ help: try using a char instead: `'-'` [INFO] [stderr] | [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: you should consider adding a `Default` implementation for `config::Config` [INFO] [stderr] --> src/config.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | / pub fn new() -> Config { [INFO] [stderr] 28 | | let mut config_file = fs::read_to_string(RCFILE); [INFO] [stderr] 29 | | let mut config = match config_file { [INFO] [stderr] 30 | | Err(_) => { [INFO] [stderr] ... | [INFO] [stderr] 55 | | config [INFO] [stderr] 56 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 26 | impl Default for config::Config { [INFO] [stderr] 27 | fn default() -> Self { [INFO] [stderr] 28 | Self::new() [INFO] [stderr] 29 | } [INFO] [stderr] 30 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/commands/mod.rs:39:52 [INFO] [stderr] | [INFO] [stderr] 39 | let is_flag = |i: &&str| i.starts_with("-"); [INFO] [stderr] | ^^^ help: try using a char instead: `'-'` [INFO] [stderr] | [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: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/config.rs:126:12 [INFO] [stderr] | [INFO] [stderr] 126 | if let None = index { return None } [INFO] [stderr] | -------^^^^------------------------ help: try this: `if index.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: you should consider adding a `Default` implementation for `config::Config` [INFO] [stderr] --> src/config.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | / pub fn new() -> Config { [INFO] [stderr] 28 | | let mut config_file = fs::read_to_string(RCFILE); [INFO] [stderr] 29 | | let mut config = match config_file { [INFO] [stderr] 30 | | Err(_) => { [INFO] [stderr] ... | [INFO] [stderr] 55 | | config [INFO] [stderr] 56 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] warning: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/config.rs:158:12 [INFO] [stderr] | [INFO] [stderr] 158 | if let Err(_) = path { return String::from(unixdata::UNKNOWN) } [INFO] [stderr] | -------^^^^^^-------------------------------------------------- help: try this: `if path.is_err()` [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: single-character string constant used as pattern [INFO] [stderr] --> src/lib.rs:44:23 [INFO] [stderr] | [INFO] [stderr] 44 | if input.contains("|") { [INFO] [stderr] | ^^^ help: try using a char instead: `'|'` [INFO] [stderr] | [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 26 | impl Default for config::Config { [INFO] [stderr] 27 | fn default() -> Self { [INFO] [stderr] 28 | Self::new() [INFO] [stderr] 29 | } [INFO] [stderr] 30 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/config.rs:126:12 [INFO] [stderr] | [INFO] [stderr] 126 | if let None = index { return None } [INFO] [stderr] | -------^^^^------------------------ help: try this: `if index.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] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/lib.rs:45:41 [INFO] [stderr] | [INFO] [stderr] 45 | let pipe_sections = input.split("|"); [INFO] [stderr] | ^^^ help: try using a char instead: `'|'` [INFO] [stderr] | [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: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/config.rs:158:12 [INFO] [stderr] | [INFO] [stderr] 158 | if let Err(_) = path { return String::from(unixdata::UNKNOWN) } [INFO] [stderr] | -------^^^^^^-------------------------------------------------- help: try this: `if path.is_err()` [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:115:13 [INFO] [stderr] | [INFO] [stderr] 115 | / match command { [INFO] [stderr] 116 | | Command::Ls(file_cmd) => { [INFO] [stderr] 117 | | let FileCommand { mut files, flags } = file_cmd; [INFO] [stderr] 118 | | let add_in = str::from_utf8(&output).unwrap().trim(); [INFO] [stderr] ... | [INFO] [stderr] 123 | | _ => () [INFO] [stderr] 124 | | } [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] 115 | if let Command::Ls(file_cmd) = command { [INFO] [stderr] 116 | let FileCommand { mut files, flags } = file_cmd; [INFO] [stderr] 117 | let add_in = str::from_utf8(&output).unwrap().trim(); [INFO] [stderr] 118 | files.push(add_in); [INFO] [stderr] 119 | let cmd = Command::Ls(FileCommand { files, flags }); [INFO] [stderr] 120 | cmd.execute(&mut oh)?; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/lib.rs:44:23 [INFO] [stderr] | [INFO] [stderr] 44 | if input.contains("|") { [INFO] [stderr] | ^^^ help: try using a char instead: `'|'` [INFO] [stderr] | [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: single-character string constant used as pattern [INFO] [stderr] --> src/lib.rs:45:41 [INFO] [stderr] | [INFO] [stderr] 45 | let pipe_sections = input.split("|"); [INFO] [stderr] | ^^^ help: try using a char instead: `'|'` [INFO] [stderr] | [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:115:13 [INFO] [stderr] | [INFO] [stderr] 115 | / match command { [INFO] [stderr] 116 | | Command::Ls(file_cmd) => { [INFO] [stderr] 117 | | let FileCommand { mut files, flags } = file_cmd; [INFO] [stderr] 118 | | let add_in = str::from_utf8(&output).unwrap().trim(); [INFO] [stderr] ... | [INFO] [stderr] 123 | | _ => () [INFO] [stderr] 124 | | } [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] 115 | if let Command::Ls(file_cmd) = command { [INFO] [stderr] 116 | let FileCommand { mut files, flags } = file_cmd; [INFO] [stderr] 117 | let add_in = str::from_utf8(&output).unwrap().trim(); [INFO] [stderr] 118 | files.push(add_in); [INFO] [stderr] 119 | let cmd = Command::Ls(FileCommand { files, flags }); [INFO] [stderr] 120 | cmd.execute(&mut oh)?; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1.63s [INFO] running `"docker" "inspect" "87d5f4418c3dff7019d5cf49d5c3e3339a7757f6e26ce5e28ab5bf1edcdb8c5c"` [INFO] running `"docker" "rm" "-f" "87d5f4418c3dff7019d5cf49d5c3e3339a7757f6e26ce5e28ab5bf1edcdb8c5c"` [INFO] [stdout] 87d5f4418c3dff7019d5cf49d5c3e3339a7757f6e26ce5e28ab5bf1edcdb8c5c