[INFO] updating cached repository JScriber/AptReader [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/JScriber/AptReader [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/JScriber/AptReader" "work/ex/clippy-test-run/sources/stable/gh/JScriber/AptReader"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/JScriber/AptReader'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/JScriber/AptReader" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/JScriber/AptReader"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/JScriber/AptReader'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] e881852aca664287915e02ee72a19330e84bcfc2 [INFO] sha for GitHub repo JScriber/AptReader: e881852aca664287915e02ee72a19330e84bcfc2 [INFO] validating manifest of JScriber/AptReader 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 JScriber/AptReader 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 JScriber/AptReader [INFO] finished frobbing JScriber/AptReader [INFO] frobbed toml for JScriber/AptReader written to work/ex/clippy-test-run/sources/stable/gh/JScriber/AptReader/Cargo.toml [INFO] started frobbing JScriber/AptReader [INFO] finished frobbing JScriber/AptReader [INFO] frobbed toml for JScriber/AptReader written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/JScriber/AptReader/Cargo.toml [INFO] crate JScriber/AptReader 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 JScriber/AptReader against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-1/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/JScriber/AptReader:/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] 08610d5ef1bd6170a20a42f075cf3e288d182bd4b5dbdfe66ef2b21cffc33462 [INFO] running `"docker" "start" "-a" "08610d5ef1bd6170a20a42f075cf3e288d182bd4b5dbdfe66ef2b21cffc33462"` [INFO] [stderr] Checking regex v1.0.5 [INFO] [stderr] Checking AptReader v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unused variable: `reg` [INFO] [stderr] --> src/reader/mod.rs:88:29 [INFO] [stderr] | [INFO] [stderr] 88 | let reg = Regex::new(r"(.+) \((.+)\)").unwrap(); [INFO] [stderr] | ^^^ help: consider using `_reg` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cap` [INFO] [stderr] --> src/reader/mod.rs:92:34 [INFO] [stderr] | [INFO] [stderr] 92 | Some(cap) => installed.push(Package { [INFO] [stderr] | ^^^ help: consider using `_cap` instead [INFO] [stderr] [INFO] [stderr] warning: crate `AptReader` should have a snake case name such as `apt_reader` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [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/reader/mod.rs:47:13 [INFO] [stderr] | [INFO] [stderr] 47 | / match captures { [INFO] [stderr] 48 | | Some(capture) => { [INFO] [stderr] 49 | | date = capture[1].to_string(); [INFO] [stderr] 50 | | time = capture[2].to_string(); [INFO] [stderr] 51 | | }, [INFO] [stderr] 52 | | None => {} [INFO] [stderr] 53 | | } [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] 47 | if let Some(capture) = captures { [INFO] [stderr] 48 | date = capture[1].to_string(); [INFO] [stderr] 49 | time = capture[2].to_string(); [INFO] [stderr] 50 | } [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/reader/mod.rs:59:13 [INFO] [stderr] | [INFO] [stderr] 59 | / match captures { [INFO] [stderr] 60 | | Some(capture) => command = capture[1].to_string(), [INFO] [stderr] 61 | | None => {} [INFO] [stderr] 62 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(capture) = captures { command = capture[1].to_string() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [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/reader/mod.rs:73:17 [INFO] [stderr] | [INFO] [stderr] 73 | / match captures { [INFO] [stderr] 74 | | Some(capture) => author = capture[1].to_string(), [INFO] [stderr] 75 | | None => {} [INFO] [stderr] 76 | | } [INFO] [stderr] | |_________________^ help: try this: `if let Some(capture) = captures { author = capture[1].to_string() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [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/reader/mod.rs:83:13 [INFO] [stderr] | [INFO] [stderr] 83 | / match captures { [INFO] [stderr] 84 | | Some(capture) => { [INFO] [stderr] 85 | | let packages = capture[1].to_string(); [INFO] [stderr] 86 | | [INFO] [stderr] ... | [INFO] [stderr] 100 | | None => {} [INFO] [stderr] 101 | | } [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] 83 | if let Some(capture) = captures { [INFO] [stderr] 84 | let packages = capture[1].to_string(); [INFO] [stderr] 85 | [INFO] [stderr] 86 | for package in packages.split(", ") { [INFO] [stderr] 87 | let reg = Regex::new(r"(.+) \((.+)\)").unwrap(); [INFO] [stderr] 88 | let cap_opt = regex.captures(&package); [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/reader/mod.rs:91:25 [INFO] [stderr] | [INFO] [stderr] 91 | / match cap_opt { [INFO] [stderr] 92 | | Some(cap) => installed.push(Package { [INFO] [stderr] 93 | | name: capture[1].to_string(), [INFO] [stderr] 94 | | version: capture[2].to_string() [INFO] [stderr] 95 | | }), [INFO] [stderr] 96 | | None => {} [INFO] [stderr] 97 | | } [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] 91 | if let Some(cap) = cap_opt { installed.push(Package { [INFO] [stderr] 92 | name: capture[1].to_string(), [INFO] [stderr] 93 | version: capture[2].to_string() [INFO] [stderr] 94 | }) } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/reader/mod.rs:127:16 [INFO] [stderr] | [INFO] [stderr] 127 | if line.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `line.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: unused variable: `reg` [INFO] [stderr] --> src/reader/mod.rs:88:29 [INFO] [stderr] | [INFO] [stderr] 88 | let reg = Regex::new(r"(.+) \((.+)\)").unwrap(); [INFO] [stderr] | ^^^ help: consider using `_reg` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cap` [INFO] [stderr] --> src/reader/mod.rs:92:34 [INFO] [stderr] | [INFO] [stderr] 92 | Some(cap) => installed.push(Package { [INFO] [stderr] | ^^^ help: consider using `_cap` instead [INFO] [stderr] [INFO] [stderr] warning: crate `AptReader` should have a snake case name such as `apt_reader` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [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/reader/mod.rs:47:13 [INFO] [stderr] | [INFO] [stderr] 47 | / match captures { [INFO] [stderr] 48 | | Some(capture) => { [INFO] [stderr] 49 | | date = capture[1].to_string(); [INFO] [stderr] 50 | | time = capture[2].to_string(); [INFO] [stderr] 51 | | }, [INFO] [stderr] 52 | | None => {} [INFO] [stderr] 53 | | } [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] 47 | if let Some(capture) = captures { [INFO] [stderr] 48 | date = capture[1].to_string(); [INFO] [stderr] 49 | time = capture[2].to_string(); [INFO] [stderr] 50 | } [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/reader/mod.rs:59:13 [INFO] [stderr] | [INFO] [stderr] 59 | / match captures { [INFO] [stderr] 60 | | Some(capture) => command = capture[1].to_string(), [INFO] [stderr] 61 | | None => {} [INFO] [stderr] 62 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(capture) = captures { command = capture[1].to_string() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [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/reader/mod.rs:73:17 [INFO] [stderr] | [INFO] [stderr] 73 | / match captures { [INFO] [stderr] 74 | | Some(capture) => author = capture[1].to_string(), [INFO] [stderr] 75 | | None => {} [INFO] [stderr] 76 | | } [INFO] [stderr] | |_________________^ help: try this: `if let Some(capture) = captures { author = capture[1].to_string() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [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/reader/mod.rs:83:13 [INFO] [stderr] | [INFO] [stderr] 83 | / match captures { [INFO] [stderr] 84 | | Some(capture) => { [INFO] [stderr] 85 | | let packages = capture[1].to_string(); [INFO] [stderr] 86 | | [INFO] [stderr] ... | [INFO] [stderr] 100 | | None => {} [INFO] [stderr] 101 | | } [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] 83 | if let Some(capture) = captures { [INFO] [stderr] 84 | let packages = capture[1].to_string(); [INFO] [stderr] 85 | [INFO] [stderr] 86 | for package in packages.split(", ") { [INFO] [stderr] 87 | let reg = Regex::new(r"(.+) \((.+)\)").unwrap(); [INFO] [stderr] 88 | let cap_opt = regex.captures(&package); [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/reader/mod.rs:91:25 [INFO] [stderr] | [INFO] [stderr] 91 | / match cap_opt { [INFO] [stderr] 92 | | Some(cap) => installed.push(Package { [INFO] [stderr] 93 | | name: capture[1].to_string(), [INFO] [stderr] 94 | | version: capture[2].to_string() [INFO] [stderr] 95 | | }), [INFO] [stderr] 96 | | None => {} [INFO] [stderr] 97 | | } [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] 91 | if let Some(cap) = cap_opt { installed.push(Package { [INFO] [stderr] 92 | name: capture[1].to_string(), [INFO] [stderr] 93 | version: capture[2].to_string() [INFO] [stderr] 94 | }) } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/reader/mod.rs:127:16 [INFO] [stderr] | [INFO] [stderr] 127 | if line.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `line.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] Finished dev [unoptimized + debuginfo] target(s) in 4.75s [INFO] running `"docker" "inspect" "08610d5ef1bd6170a20a42f075cf3e288d182bd4b5dbdfe66ef2b21cffc33462"` [INFO] running `"docker" "rm" "-f" "08610d5ef1bd6170a20a42f075cf3e288d182bd4b5dbdfe66ef2b21cffc33462"` [INFO] [stdout] 08610d5ef1bd6170a20a42f075cf3e288d182bd4b5dbdfe66ef2b21cffc33462