[INFO] crate emlop 0.2.0 is already in cache [INFO] extracting crate emlop 0.2.0 into work/ex/clippy-test-run/sources/stable/reg/emlop/0.2.0 [INFO] extracting crate emlop 0.2.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/emlop/0.2.0 [INFO] validating manifest of emlop-0.2.0 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 emlop-0.2.0 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 emlop-0.2.0 [INFO] finished frobbing emlop-0.2.0 [INFO] frobbed toml for emlop-0.2.0 written to work/ex/clippy-test-run/sources/stable/reg/emlop/0.2.0/Cargo.toml [INFO] started frobbing emlop-0.2.0 [INFO] finished frobbing emlop-0.2.0 [INFO] frobbed toml for emlop-0.2.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/emlop/0.2.0/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [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 emlop-0.2.0 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/reg/emlop/0.2.0:/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] 6e724dbc7c39fd92c91b6544dc02b5356e9b606775cd6dbe0662eb93547b7e77 [INFO] running `"docker" "start" "-a" "6e724dbc7c39fd92c91b6544dc02b5356e9b606775cd6dbe0662eb93547b7e77"` [INFO] [stderr] Checking sysconf v0.3.4 [INFO] [stderr] Compiling indoc-impl v0.2.8 [INFO] [stderr] Checking chrono-english v0.1.4 [INFO] [stderr] Checking stderrlog v0.3.0 [INFO] [stderr] Checking tabwriter v1.0.4 [INFO] [stderr] Compiling assert_cli v0.5.4 [INFO] [stderr] Checking emlop v0.2.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:100:28 [INFO] [stderr] | [INFO] [stderr] 100 | Some(Parsed::Start{ts: ts, [INFO] [stderr] | ^^^^^^ help: replace it with: `ts` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:115:27 [INFO] [stderr] | [INFO] [stderr] 115 | Some(Parsed::Stop{ts: ts, [INFO] [stderr] | ^^^^^^ help: replace it with: `ts` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/proces.rs:52:15 [INFO] [stderr] | [INFO] [stderr] 52 | Some(Info{comm: comm, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `comm` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/proces.rs:53:15 [INFO] [stderr] | [INFO] [stderr] 53 | cmdline: cmdline, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `cmdline` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/proces.rs:55:15 [INFO] [stderr] | [INFO] [stderr] 55 | pid: pid, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `pid` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] Checking indoc v0.2.8 [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/commands.rs:54:17 [INFO] [stderr] | [INFO] [stderr] 54 | / match started.remove(&(ebuild.clone(), version.clone(), iter.clone())) { [INFO] [stderr] 55 | | Some(start_ts) => { [INFO] [stderr] 56 | | let timevec = times.entry(ebuild.clone()).or_insert(vec![]); [INFO] [stderr] 57 | | timevec.insert(0, ts-start_ts); [INFO] [stderr] 58 | | }, [INFO] [stderr] 59 | | None => (), [INFO] [stderr] 60 | | } [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] 54 | if let Some(start_ts) = started.remove(&(ebuild.clone(), version.clone(), iter.clone())) { [INFO] [stderr] 55 | let timevec = times.entry(ebuild.clone()).or_insert(vec![]); [INFO] [stderr] 56 | timevec.insert(0, ts-start_ts); [INFO] [stderr] 57 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/commands.rs:56:67 [INFO] [stderr] | [INFO] [stderr] 56 | let timevec = times.entry(ebuild.clone()).or_insert(vec![]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(|| vec![])` [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: use of `or_insert` followed by a function call [INFO] [stderr] --> src/commands.rs:113:63 [INFO] [stderr] | [INFO] [stderr] 113 | let timevec = times.entry(ebuild.clone()).or_insert(vec![]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(|| vec![])` [INFO] [stderr] | [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: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/commands.rs:123:32 [INFO] [stderr] | [INFO] [stderr] 123 | let pretend: Vec = match atty::is(atty::Stream::Stdin) { [INFO] [stderr] | ________________________________^ [INFO] [stderr] 124 | | false => Parser::new_pretend(stdin(), "STDIN")?.collect(), [INFO] [stderr] 125 | | true => started.iter() [INFO] [stderr] 126 | | .filter(|&(_,t)| *t > cms) [INFO] [stderr] 127 | | .map(|(&(ref e,ref v),_)| Parsed::Pretend{ebuild:e.to_string(), version:v.to_string()}) [INFO] [stderr] 128 | | .collect(), [INFO] [stderr] 129 | | }; [INFO] [stderr] | |_____^ [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] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 123 | let pretend: Vec = if atty::is(atty::Stream::Stdin) { started.iter() [INFO] [stderr] 124 | .filter(|&(_,t)| *t > cms) [INFO] [stderr] 125 | .map(|(&(ref e,ref v),_)| Parsed::Pretend{ebuild:e.to_string(), version:v.to_string()}) [INFO] [stderr] 126 | .collect() } else { Parser::new_pretend(stdin(), "STDIN")?.collect() }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/parser.rs:28:65 [INFO] [stderr] | [INFO] [stderr] 28 | match (package, exact, package.map_or(false, |p| p.contains("/"))) { [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/proces.rs:37:27 [INFO] [stderr] | [INFO] [stderr] 37 | while !comm.ends_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: useless use of `format!` [INFO] [stderr] --> src/main.rs:194:22 [INFO] [stderr] | [INFO] [stderr] 194 | .map_err(|_| format!("Couldn't parse as a date or timestamp")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Couldn't parse as a date or timestamp".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:100:28 [INFO] [stderr] | [INFO] [stderr] 100 | Some(Parsed::Start{ts: ts, [INFO] [stderr] | ^^^^^^ help: replace it with: `ts` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:115:27 [INFO] [stderr] | [INFO] [stderr] 115 | Some(Parsed::Stop{ts: ts, [INFO] [stderr] | ^^^^^^ help: replace it with: `ts` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/proces.rs:52:15 [INFO] [stderr] | [INFO] [stderr] 52 | Some(Info{comm: comm, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `comm` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/proces.rs:53:15 [INFO] [stderr] | [INFO] [stderr] 53 | cmdline: cmdline, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `cmdline` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/proces.rs:55:15 [INFO] [stderr] | [INFO] [stderr] 55 | pid: pid, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `pid` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/parser.rs:217:43 [INFO] [stderr] | [INFO] [stderr] 217 | parse_hist("test/emerge.all.log", 1483228800, 1483747200, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_483_228_800` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/parser.rs:217:55 [INFO] [stderr] | [INFO] [stderr] 217 | parse_hist("test/emerge.all.log", 1483228800, 1483747200, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_483_747_200` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/parser.rs:224:49 [INFO] [stderr] | [INFO] [stderr] 224 | parse_hist("test/emerge.nullbytes.log", 1327867709, 1327871057, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_327_867_709` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/parser.rs:224:61 [INFO] [stderr] | [INFO] [stderr] 224 | parse_hist("test/emerge.nullbytes.log", 1327867709, 1327871057, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_327_871_057` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/parser.rs:230:52 [INFO] [stderr] | [INFO] [stderr] 230 | parse_hist("test/emerge.badtimestamp.log", 1327867709, 1327871057, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_327_867_709` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/parser.rs:230:64 [INFO] [stderr] | [INFO] [stderr] 230 | parse_hist("test/emerge.badtimestamp.log", 1327867709, 1327871057, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_327_871_057` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/parser.rs:239:50 [INFO] [stderr] | [INFO] [stderr] 239 | parse_hist("test/emerge.badversion.log", 1327867709, 1327871057, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_327_867_709` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/parser.rs:239:62 [INFO] [stderr] | [INFO] [stderr] 239 | parse_hist("test/emerge.badversion.log", 1327867709, 1327871057, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_327_871_057` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/parser.rs:248:49 [INFO] [stderr] | [INFO] [stderr] 248 | parse_hist("test/emerge.shortline.log", 1327867709, 1327871057, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_327_867_709` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/parser.rs:248:61 [INFO] [stderr] | [INFO] [stderr] 248 | parse_hist("test/emerge.shortline.log", 1327867709, 1327871057, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_327_871_057` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/parser.rs:269:49 [INFO] [stderr] | [INFO] [stderr] 269 | parse_hist("test/emerge.10000.log", 1517609348, 1520891098, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_517_609_348` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/parser.rs:269:61 [INFO] [stderr] | [INFO] [stderr] 269 | parse_hist("test/emerge.10000.log", 1517609348, 1520891098, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_520_891_098` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/parser.rs:277:68 [INFO] [stderr] | [INFO] [stderr] 277 | let (umin,umax,fmin,fmax) = (std::i64::MIN, std::i64::MAX, 1517609348, 1520891098); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_517_609_348` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/parser.rs:277:80 [INFO] [stderr] | [INFO] [stderr] 277 | let (umin,umax,fmin,fmax) = (std::i64::MIN, std::i64::MAX, 1517609348, 1520891098); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_520_891_098` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/parser.rs:288:43 [INFO] [stderr] | [INFO] [stderr] 288 | (Some(1517917751), Some(1517931835), 6, 6), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_517_917_751` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/parser.rs:288:61 [INFO] [stderr] | [INFO] [stderr] 288 | (Some(1517917751), Some(1517931835), 6, 6), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_517_931_835` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/parser.rs:289:43 [INFO] [stderr] | [INFO] [stderr] 289 | (Some(1517959010), Some(1518176159), 24, 21), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_517_959_010` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/parser.rs:289:61 [INFO] [stderr] | [INFO] [stderr] 289 | (Some(1517959010), Some(1518176159), 24, 21), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_518_176_159` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/parser.rs:291:49 [INFO] [stderr] | [INFO] [stderr] 291 | parse_hist("test/emerge.10000.log", 1517609348, 1520891098, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_517_609_348` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/parser.rs:291:61 [INFO] [stderr] | [INFO] [stderr] 291 | parse_hist("test/emerge.10000.log", 1517609348, 1520891098, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_520_891_098` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:283:46 [INFO] [stderr] | [INFO] [stderr] 283 | assert_eq!( "99:59:59", fmt_duration(359999)); [INFO] [stderr] | ^^^^^^ help: consider: `359_999` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:284:46 [INFO] [stderr] | [INFO] [stderr] 284 | assert_eq!("100:00:00", fmt_duration(360000)); [INFO] [stderr] | ^^^^^^ help: consider: `360_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:294:23 [INFO] [stderr] | [INFO] [stderr] 294 | assert_eq!(Ok(1522710000), parse_date("1522710000")); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_522_710_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:295:23 [INFO] [stderr] | [INFO] [stderr] 295 | assert_eq!(Ok(1522710000), parse_date(" 1522710000 ")); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_522_710_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:296:23 [INFO] [stderr] | [INFO] [stderr] 296 | assert_eq!(Ok(1522710000), parse_date("2018-04-03 00:00:00 +00:00")); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_522_710_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [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/commands.rs:54:17 [INFO] [stderr] | [INFO] [stderr] 54 | / match started.remove(&(ebuild.clone(), version.clone(), iter.clone())) { [INFO] [stderr] 55 | | Some(start_ts) => { [INFO] [stderr] 56 | | let timevec = times.entry(ebuild.clone()).or_insert(vec![]); [INFO] [stderr] 57 | | timevec.insert(0, ts-start_ts); [INFO] [stderr] 58 | | }, [INFO] [stderr] 59 | | None => (), [INFO] [stderr] 60 | | } [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] 54 | if let Some(start_ts) = started.remove(&(ebuild.clone(), version.clone(), iter.clone())) { [INFO] [stderr] 55 | let timevec = times.entry(ebuild.clone()).or_insert(vec![]); [INFO] [stderr] 56 | timevec.insert(0, ts-start_ts); [INFO] [stderr] 57 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/commands.rs:56:67 [INFO] [stderr] | [INFO] [stderr] 56 | let timevec = times.entry(ebuild.clone()).or_insert(vec![]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(|| vec![])` [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: use of `or_insert` followed by a function call [INFO] [stderr] --> src/commands.rs:113:63 [INFO] [stderr] | [INFO] [stderr] 113 | let timevec = times.entry(ebuild.clone()).or_insert(vec![]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(|| vec![])` [INFO] [stderr] | [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: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/commands.rs:123:32 [INFO] [stderr] | [INFO] [stderr] 123 | let pretend: Vec = match atty::is(atty::Stream::Stdin) { [INFO] [stderr] | ________________________________^ [INFO] [stderr] 124 | | false => Parser::new_pretend(stdin(), "STDIN")?.collect(), [INFO] [stderr] 125 | | true => started.iter() [INFO] [stderr] 126 | | .filter(|&(_,t)| *t > cms) [INFO] [stderr] 127 | | .map(|(&(ref e,ref v),_)| Parsed::Pretend{ebuild:e.to_string(), version:v.to_string()}) [INFO] [stderr] 128 | | .collect(), [INFO] [stderr] 129 | | }; [INFO] [stderr] | |_____^ [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] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 123 | let pretend: Vec = if atty::is(atty::Stream::Stdin) { started.iter() [INFO] [stderr] 124 | .filter(|&(_,t)| *t > cms) [INFO] [stderr] 125 | .map(|(&(ref e,ref v),_)| Parsed::Pretend{ebuild:e.to_string(), version:v.to_string()}) [INFO] [stderr] 126 | .collect() } else { Parser::new_pretend(stdin(), "STDIN")?.collect() }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/parser.rs:28:65 [INFO] [stderr] | [INFO] [stderr] 28 | match (package, exact, package.map_or(false, |p| p.contains("/"))) { [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: this function has too many arguments (8/7) [INFO] [stderr] --> src/parser.rs:182:5 [INFO] [stderr] | [INFO] [stderr] 182 | / fn parse_hist(filename: &str, mints: i64, maxts: i64, [INFO] [stderr] 183 | | filter_mints: Option, filter_maxts: Option, [INFO] [stderr] 184 | | filter_pkg: Option<&str>, exact: bool, [INFO] [stderr] 185 | | mut expect_counts: Vec<(&str, usize)>) { [INFO] [stderr] ... | [INFO] [stderr] 211 | | } [INFO] [stderr] 212 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/parser.rs:258:28 [INFO] [stderr] | [INFO] [stderr] 258 | for (f,e,c1,c2) in vec![(None, false, 889, 832), // Everything [INFO] [stderr] | ____________________________^ [INFO] [stderr] 259 | | (Some("kactivities"), false, 4, 4), // regexp matches 4 [INFO] [stderr] 260 | | (Some("kactivities"), true, 2, 2), // string matches 2 [INFO] [stderr] 261 | | (Some("kde-frameworks/kactivities"), true, 2, 2), // string matches 2 [INFO] [stderr] ... | [INFO] [stderr] 267 | | (Some("File-Next"), true, 1, 1), // case-sensitive [INFO] [stderr] 268 | | ] { [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_vec)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/parser.rs:278:32 [INFO] [stderr] | [INFO] [stderr] 278 | for (min,max,c1,c2) in vec![(None, None, 889, 832), [INFO] [stderr] | ________________________________^ [INFO] [stderr] 279 | | (Some(umin), None, 889, 832), [INFO] [stderr] 280 | | (Some(fmin), None, 889, 832), [INFO] [stderr] 281 | | (None, Some(umax), 889, 832), [INFO] [stderr] ... | [INFO] [stderr] 289 | | (Some(1517959010), Some(1518176159), 24, 21), [INFO] [stderr] 290 | | ] { [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/parser.rs:296:46 [INFO] [stderr] | [INFO] [stderr] 296 | fn parse_pretend(filename: &str, expect: &Vec<(&str, &str)>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[(&str, &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/proces.rs:37:27 [INFO] [stderr] | [INFO] [stderr] 37 | while !comm.ends_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: use of `expect` followed by a function call [INFO] [stderr] --> src/proces.rs:92:14 [INFO] [stderr] | [INFO] [stderr] 92 | .expect(&format!("Cannot parse {}", s)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| panic!("Cannot parse {}", s))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::expect_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/main.rs:194:22 [INFO] [stderr] | [INFO] [stderr] 194 | .map_err(|_| format!("Couldn't parse as a date or timestamp")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Couldn't parse as a date or timestamp".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 12.60s [INFO] running `"docker" "inspect" "6e724dbc7c39fd92c91b6544dc02b5356e9b606775cd6dbe0662eb93547b7e77"` [INFO] running `"docker" "rm" "-f" "6e724dbc7c39fd92c91b6544dc02b5356e9b606775cd6dbe0662eb93547b7e77"` [INFO] [stdout] 6e724dbc7c39fd92c91b6544dc02b5356e9b606775cd6dbe0662eb93547b7e77