[INFO] updating cached repository jleahred/rtime [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/jleahred/rtime [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/jleahred/rtime" "work/ex/clippy-test-run/sources/stable/gh/jleahred/rtime"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/jleahred/rtime'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/jleahred/rtime" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/jleahred/rtime"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/jleahred/rtime'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] d8a08e9e82cd46544f196dc1eb6ddfaa7dd90cdb [INFO] sha for GitHub repo jleahred/rtime: d8a08e9e82cd46544f196dc1eb6ddfaa7dd90cdb [INFO] validating manifest of jleahred/rtime 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 jleahred/rtime 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 jleahred/rtime [INFO] finished frobbing jleahred/rtime [INFO] frobbed toml for jleahred/rtime written to work/ex/clippy-test-run/sources/stable/gh/jleahred/rtime/Cargo.toml [INFO] started frobbing jleahred/rtime [INFO] finished frobbing jleahred/rtime [INFO] frobbed toml for jleahred/rtime written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/jleahred/rtime/Cargo.toml [INFO] crate jleahred/rtime 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 jleahred/rtime 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-7/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/jleahred/rtime:/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] 0466956e0822daa4140b6d95cf5908341c099aa6fa918cfc03a8872605652c31 [INFO] running `"docker" "start" "-a" "0466956e0822daa4140b6d95cf5908341c099aa6fa918cfc03a8872605652c31"` [INFO] [stderr] Checking rtime v0.6.1 (/opt/crater/workdir) [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/main.rs:174:25 [INFO] [stderr] | [INFO] [stderr] 174 | let _ = write!( [INFO] [stderr] | _________________________^ [INFO] [stderr] 175 | | stdout, [INFO] [stderr] 176 | | "\r{}{}|{}\n", [INFO] [stderr] 177 | | termion::clear::CurrentLine, [INFO] [stderr] 178 | | string_time, [INFO] [stderr] 179 | | l [INFO] [stderr] 180 | | ); [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/main.rs:174:25 [INFO] [stderr] | [INFO] [stderr] 174 | let _ = write!( [INFO] [stderr] | _________________________^ [INFO] [stderr] 175 | | stdout, [INFO] [stderr] 176 | | "\r{}{}|{}\n", [INFO] [stderr] 177 | | termion::clear::CurrentLine, [INFO] [stderr] 178 | | string_time, [INFO] [stderr] 179 | | l [INFO] [stderr] 180 | | ); [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [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:107:9 [INFO] [stderr] | [INFO] [stderr] 107 | / match unix_listener.accept() { [INFO] [stderr] 108 | | Ok((socket, _)) => { [INFO] [stderr] 109 | | let child_buf = std::io::BufReader::new(socket); [INFO] [stderr] 110 | | for line in child_buf.lines() { [INFO] [stderr] ... | [INFO] [stderr] 119 | | Err(_) => { /* connection failed */ } [INFO] [stderr] 120 | | } [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] 107 | if let Ok((socket, _)) = unix_listener.accept() { [INFO] [stderr] 108 | let child_buf = std::io::BufReader::new(socket); [INFO] [stderr] 109 | for line in child_buf.lines() { [INFO] [stderr] 110 | let line_s = line.unwrap_or("".to_owned()); [INFO] [stderr] 111 | if line_s == "__RTIME_END__".to_owned() { [INFO] [stderr] 112 | break; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/main.rs:111:39 [INFO] [stderr] | [INFO] [stderr] 111 | let line_s = line.unwrap_or("".to_owned()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| "".to_owned())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/main.rs:112:34 [INFO] [stderr] | [INFO] [stderr] 112 | if line_s == "__RTIME_END__".to_owned() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `"__RTIME_END__"` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:148:5 [INFO] [stderr] | [INFO] [stderr] 148 | / match iostdout { [INFO] [stderr] 149 | | Ok(mut stdout) => { [INFO] [stderr] 150 | | let _ = write!( [INFO] [stderr] 151 | | stdout, [INFO] [stderr] ... | [INFO] [stderr] 158 | | _ => (), [INFO] [stderr] 159 | | } [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] 148 | if let Ok(mut stdout) = iostdout { [INFO] [stderr] 149 | let _ = write!( [INFO] [stderr] 150 | stdout, [INFO] [stderr] 151 | "\r{}{} ...", [INFO] [stderr] 152 | termion::clear::CurrentLine, [INFO] [stderr] 153 | get_string_time(status.start.elapsed().as_secs()), [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:172:9 [INFO] [stderr] | [INFO] [stderr] 172 | / match iostdout { [INFO] [stderr] 173 | | Ok(mut stdout) => { [INFO] [stderr] 174 | | let _ = write!( [INFO] [stderr] 175 | | stdout, [INFO] [stderr] ... | [INFO] [stderr] 183 | | _ => (), [INFO] [stderr] 184 | | } [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] 172 | if let Ok(mut stdout) = iostdout { [INFO] [stderr] 173 | let _ = write!( [INFO] [stderr] 174 | stdout, [INFO] [stderr] 175 | "\r{}{}|{}\n", [INFO] [stderr] 176 | termion::clear::CurrentLine, [INFO] [stderr] 177 | string_time, [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:187:5 [INFO] [stderr] | [INFO] [stderr] 187 | / match termion::terminal_size() { [INFO] [stderr] 188 | | Ok((width, _)) => { [INFO] [stderr] 189 | | let string_time = get_string_time(status.start.elapsed().as_secs()); [INFO] [stderr] 190 | | let spaces = " ".repeat(string_time.len()); [INFO] [stderr] ... | [INFO] [stderr] 200 | | _ => (), [INFO] [stderr] 201 | | } [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] 187 | if let Ok((width, _)) = termion::terminal_size() { [INFO] [stderr] 188 | let string_time = get_string_time(status.start.elapsed().as_secs()); [INFO] [stderr] 189 | let spaces = " ".repeat(string_time.len()); [INFO] [stderr] 190 | [INFO] [stderr] 191 | let vlines = split_str_len(line, width as usize - string_time.len() - 1); [INFO] [stderr] 192 | if vlines.len() > 0 { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:193:16 [INFO] [stderr] | [INFO] [stderr] 193 | if vlines.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!vlines.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 match on a boolean expression [INFO] [stderr] --> src/main.rs:220:24 [INFO] [stderr] | [INFO] [stderr] 220 | let split_on = match len < s.len() { [INFO] [stderr] | ________________________^ [INFO] [stderr] 221 | | true => len, [INFO] [stderr] 222 | | false => s.len(), [INFO] [stderr] 223 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if len < s.len() { len } else { s.len() }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [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:107:9 [INFO] [stderr] | [INFO] [stderr] 107 | / match unix_listener.accept() { [INFO] [stderr] 108 | | Ok((socket, _)) => { [INFO] [stderr] 109 | | let child_buf = std::io::BufReader::new(socket); [INFO] [stderr] 110 | | for line in child_buf.lines() { [INFO] [stderr] ... | [INFO] [stderr] 119 | | Err(_) => { /* connection failed */ } [INFO] [stderr] 120 | | } [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] 107 | if let Ok((socket, _)) = unix_listener.accept() { [INFO] [stderr] 108 | let child_buf = std::io::BufReader::new(socket); [INFO] [stderr] 109 | for line in child_buf.lines() { [INFO] [stderr] 110 | let line_s = line.unwrap_or("".to_owned()); [INFO] [stderr] 111 | if line_s == "__RTIME_END__".to_owned() { [INFO] [stderr] 112 | break; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/main.rs:111:39 [INFO] [stderr] | [INFO] [stderr] 111 | let line_s = line.unwrap_or("".to_owned()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| "".to_owned())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/main.rs:112:34 [INFO] [stderr] | [INFO] [stderr] 112 | if line_s == "__RTIME_END__".to_owned() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `"__RTIME_END__"` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:148:5 [INFO] [stderr] | [INFO] [stderr] 148 | / match iostdout { [INFO] [stderr] 149 | | Ok(mut stdout) => { [INFO] [stderr] 150 | | let _ = write!( [INFO] [stderr] 151 | | stdout, [INFO] [stderr] ... | [INFO] [stderr] 158 | | _ => (), [INFO] [stderr] 159 | | } [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] 148 | if let Ok(mut stdout) = iostdout { [INFO] [stderr] 149 | let _ = write!( [INFO] [stderr] 150 | stdout, [INFO] [stderr] 151 | "\r{}{} ...", [INFO] [stderr] 152 | termion::clear::CurrentLine, [INFO] [stderr] 153 | get_string_time(status.start.elapsed().as_secs()), [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:172:9 [INFO] [stderr] | [INFO] [stderr] 172 | / match iostdout { [INFO] [stderr] 173 | | Ok(mut stdout) => { [INFO] [stderr] 174 | | let _ = write!( [INFO] [stderr] 175 | | stdout, [INFO] [stderr] ... | [INFO] [stderr] 183 | | _ => (), [INFO] [stderr] 184 | | } [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] 172 | if let Ok(mut stdout) = iostdout { [INFO] [stderr] 173 | let _ = write!( [INFO] [stderr] 174 | stdout, [INFO] [stderr] 175 | "\r{}{}|{}\n", [INFO] [stderr] 176 | termion::clear::CurrentLine, [INFO] [stderr] 177 | string_time, [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:187:5 [INFO] [stderr] | [INFO] [stderr] 187 | / match termion::terminal_size() { [INFO] [stderr] 188 | | Ok((width, _)) => { [INFO] [stderr] 189 | | let string_time = get_string_time(status.start.elapsed().as_secs()); [INFO] [stderr] 190 | | let spaces = " ".repeat(string_time.len()); [INFO] [stderr] ... | [INFO] [stderr] 200 | | _ => (), [INFO] [stderr] 201 | | } [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] 187 | if let Ok((width, _)) = termion::terminal_size() { [INFO] [stderr] 188 | let string_time = get_string_time(status.start.elapsed().as_secs()); [INFO] [stderr] 189 | let spaces = " ".repeat(string_time.len()); [INFO] [stderr] 190 | [INFO] [stderr] 191 | let vlines = split_str_len(line, width as usize - string_time.len() - 1); [INFO] [stderr] 192 | if vlines.len() > 0 { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:193:16 [INFO] [stderr] | [INFO] [stderr] 193 | if vlines.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!vlines.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 match on a boolean expression [INFO] [stderr] --> src/main.rs:220:24 [INFO] [stderr] | [INFO] [stderr] 220 | let split_on = match len < s.len() { [INFO] [stderr] | ________________________^ [INFO] [stderr] 221 | | true => len, [INFO] [stderr] 222 | | false => s.len(), [INFO] [stderr] 223 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if len < s.len() { len } else { s.len() }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 0.40s [INFO] running `"docker" "inspect" "0466956e0822daa4140b6d95cf5908341c099aa6fa918cfc03a8872605652c31"` [INFO] running `"docker" "rm" "-f" "0466956e0822daa4140b6d95cf5908341c099aa6fa918cfc03a8872605652c31"` [INFO] [stdout] 0466956e0822daa4140b6d95cf5908341c099aa6fa918cfc03a8872605652c31