[INFO] fetching crate efficiency-benchmark 0.2.5... [INFO] linting efficiency-benchmark-0.2.5 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate efficiency-benchmark 0.2.5 into /workspace/builds/worker-1-tc1/source [INFO] started tweaking crates.io crate efficiency-benchmark 0.2.5 [INFO] finished tweaking crates.io crate efficiency-benchmark 0.2.5 [INFO] tweaked toml for crates.io crate efficiency-benchmark 0.2.5 written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate efficiency-benchmark 0.2.5 on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate efficiency-benchmark 0.2.5 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded battery v0.7.8 [INFO] [stderr] Downloaded uom v0.30.0 [INFO] [stderr] Downloaded chrono v0.4.37 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 31bbc189bf963c993679afe82b29a63bfc6f0794ddb87dcc730c46c848d3de89 [INFO] running `Command { std: "docker" "start" "-a" "31bbc189bf963c993679afe82b29a63bfc6f0794ddb87dcc730c46c848d3de89", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "31bbc189bf963c993679afe82b29a63bfc6f0794ddb87dcc730c46c848d3de89", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "31bbc189bf963c993679afe82b29a63bfc6f0794ddb87dcc730c46c848d3de89", kill_on_drop: false }` [INFO] [stdout] 31bbc189bf963c993679afe82b29a63bfc6f0794ddb87dcc730c46c848d3de89 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 2a2cbe9b578be433e7f1ad51b4e9fa1df014f42e97139dd71a8c66b6d6545bc3 [INFO] running `Command { std: "docker" "start" "-a" "2a2cbe9b578be433e7f1ad51b4e9fa1df014f42e97139dd71a8c66b6d6545bc3", kill_on_drop: false }` [INFO] [stderr] Compiling num-traits v0.2.18 [INFO] [stderr] Compiling battery v0.7.8 [INFO] [stderr] Checking lazycell v1.3.0 [INFO] [stderr] Checking colored v2.1.0 [INFO] [stderr] Checking uom v0.30.0 [INFO] [stderr] Checking chrono v0.4.37 [INFO] [stderr] Checking efficiency-benchmark v0.2.5 (/opt/rustwide/workdir) [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/lib.rs:43:17 [INFO] [stdout] | [INFO] [stdout] 43 | / match line { [INFO] [stdout] 44 | | Ok(line) => { [INFO] [stdout] 45 | | sender.send(line.clone()).unwrap(); // Add the output line to the vector [INFO] [stdout] 46 | | }, [INFO] [stdout] 47 | | Err(_) => {}, [INFO] [stdout] 48 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 43 ~ if let Ok(line) = line { [INFO] [stdout] 44 + sender.send(line.clone()).unwrap(); // Add the output line to the vector [INFO] [stdout] 45 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:103:8 [INFO] [stdout] | [INFO] [stdout] 103 | if !metadata(logfile).is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `metadata(logfile).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:131:5 [INFO] [stdout] | [INFO] [stdout] 131 | return percentage as u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 131 - return percentage as u8; [INFO] [stdout] 131 + percentage as u8 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `u8` is unnecessary [INFO] [stdout] --> src/lib.rs:126:20 [INFO] [stdout] | [INFO] [stdout] 126 | return 100 as u8; [INFO] [stdout] | ^^^^^^^^^ help: try: `100_u8` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:159:30 [INFO] [stdout] | [INFO] [stdout] 159 | State::Charging => { return true; }, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 159 - State::Charging => { return true; }, [INFO] [stdout] 159 + State::Charging => { true}, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:160:26 [INFO] [stdout] | [INFO] [stdout] 160 | State::Full => { return true; }, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 160 - State::Full => { return true; }, [INFO] [stdout] 160 + State::Full => { true}, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:161:16 [INFO] [stdout] | [INFO] [stdout] 161 | _ => { return false; }, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 161 - _ => { return false; }, [INFO] [stdout] 161 + _ => { false}, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: spawned process is never `wait()`ed on [INFO] [stdout] --> src/lib.rs:173:23 [INFO] [stdout] | [INFO] [stdout] 173 | let mut process = command [INFO] [stdout] | _______________________^ [INFO] [stdout] 174 | | .stdout(Stdio::piped()) [INFO] [stdout] 175 | | .spawn() [INFO] [stdout] 176 | | .expect("failed to build repository"); [INFO] [stdout] | |_____________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: consider calling `.wait()` [INFO] [stdout] = note: not doing so might leave behind zombie processes [INFO] [stdout] = note: see https://doc.rust-lang.org/stable/std/process/struct.Child.html#warning [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zombie_processes [INFO] [stdout] = note: `#[warn(clippy::zombie_processes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/lib.rs:180:13 [INFO] [stdout] | [INFO] [stdout] 180 | / match line { [INFO] [stdout] 181 | | Ok(line) => { [INFO] [stdout] 182 | | sender.send(line.clone()).unwrap(); [INFO] [stdout] 183 | | }, [INFO] [stdout] 184 | | Err(_) => {}, [INFO] [stdout] 185 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 180 ~ if let Ok(line) = line { [INFO] [stdout] 181 + sender.send(line.clone()).unwrap(); [INFO] [stdout] 182 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match can be simplified with `.unwrap_or_default()` [INFO] [stdout] --> src/lib.rs:223:25 [INFO] [stdout] | [INFO] [stdout] 223 | let score = match String::from_utf8_lossy(&score).parse::(){ [INFO] [stdout] | _________________________^ [INFO] [stdout] 224 | | Ok(score) => score, [INFO] [stdout] 225 | | Err(_) => 0, [INFO] [stdout] 226 | | [INFO] [stdout] 227 | | }; [INFO] [stdout] | |_____________^ help: ascribe the type u32 and replace your expression with: `String::from_utf8_lossy(&score).parse::().unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::manual_unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/lib.rs:245:9 [INFO] [stdout] | [INFO] [stdout] 245 | / if entry.file_type().unwrap().is_file() { [INFO] [stdout] 246 | | if entry.file_name().to_string_lossy().starts_with("benchmark") { [INFO] [stdout] 247 | | let date = entry.file_name().to_str().unwrap().to_owned(); [INFO] [stdout] 248 | | let date = date.replace("benchmark-", ""); [INFO] [stdout] ... | [INFO] [stdout] 265 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 245 ~ if entry.file_type().unwrap().is_file() [INFO] [stdout] 246 ~ && entry.file_name().to_string_lossy().starts_with("benchmark") { [INFO] [stdout] 247 | let date = entry.file_name().to_str().unwrap().to_owned(); [INFO] [stdout] ... [INFO] [stdout] 263 | [INFO] [stdout] 264 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/lib.rs:256:24 [INFO] [stdout] | [INFO] [stdout] 256 | } else if date == latest_date { [INFO] [stdout] | ________________________^ [INFO] [stdout] 257 | | if time > latest_time { [INFO] [stdout] 258 | | latest_time = time; [INFO] [stdout] 259 | | } [INFO] [stdout] 260 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 256 ~ } else if date == latest_date [INFO] [stdout] 257 ~ && time > latest_time { [INFO] [stdout] 258 | latest_time = time; [INFO] [stdout] 259 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match can be simplified with `.unwrap_or_default()` [INFO] [stdout] --> src/lib.rs:276:21 [INFO] [stdout] | [INFO] [stdout] 276 | let score = match String::from_utf8_lossy(&score).parse::(){ [INFO] [stdout] | _____________________^ [INFO] [stdout] 277 | | Ok(score) => score, [INFO] [stdout] 278 | | Err(_) => 0, [INFO] [stdout] 279 | | }; [INFO] [stdout] | |_________^ help: ascribe the type u32 and replace your expression with: `String::from_utf8_lossy(&score).parse::().unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/lib.rs:43:17 [INFO] [stdout] | [INFO] [stdout] 43 | / match line { [INFO] [stdout] 44 | | Ok(line) => { [INFO] [stdout] 45 | | sender.send(line.clone()).unwrap(); // Add the output line to the vector [INFO] [stdout] 46 | | }, [INFO] [stdout] 47 | | Err(_) => {}, [INFO] [stdout] 48 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 43 ~ if let Ok(line) = line { [INFO] [stdout] 44 + sender.send(line.clone()).unwrap(); // Add the output line to the vector [INFO] [stdout] 45 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:103:8 [INFO] [stdout] | [INFO] [stdout] 103 | if !metadata(logfile).is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `metadata(logfile).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:131:5 [INFO] [stdout] | [INFO] [stdout] 131 | return percentage as u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 131 - return percentage as u8; [INFO] [stdout] 131 + percentage as u8 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `u8` is unnecessary [INFO] [stdout] --> src/lib.rs:126:20 [INFO] [stdout] | [INFO] [stdout] 126 | return 100 as u8; [INFO] [stdout] | ^^^^^^^^^ help: try: `100_u8` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:159:30 [INFO] [stdout] | [INFO] [stdout] 159 | State::Charging => { return true; }, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 159 - State::Charging => { return true; }, [INFO] [stdout] 159 + State::Charging => { true}, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:160:26 [INFO] [stdout] | [INFO] [stdout] 160 | State::Full => { return true; }, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 160 - State::Full => { return true; }, [INFO] [stdout] 160 + State::Full => { true}, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:161:16 [INFO] [stdout] | [INFO] [stdout] 161 | _ => { return false; }, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 161 - _ => { return false; }, [INFO] [stdout] 161 + _ => { false}, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: spawned process is never `wait()`ed on [INFO] [stdout] --> src/lib.rs:173:23 [INFO] [stdout] | [INFO] [stdout] 173 | let mut process = command [INFO] [stdout] | _______________________^ [INFO] [stdout] 174 | | .stdout(Stdio::piped()) [INFO] [stdout] 175 | | .spawn() [INFO] [stdout] 176 | | .expect("failed to build repository"); [INFO] [stdout] | |_____________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: consider calling `.wait()` [INFO] [stdout] = note: not doing so might leave behind zombie processes [INFO] [stdout] = note: see https://doc.rust-lang.org/stable/std/process/struct.Child.html#warning [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zombie_processes [INFO] [stdout] = note: `#[warn(clippy::zombie_processes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/lib.rs:180:13 [INFO] [stdout] | [INFO] [stdout] 180 | / match line { [INFO] [stdout] 181 | | Ok(line) => { [INFO] [stdout] 182 | | sender.send(line.clone()).unwrap(); [INFO] [stdout] 183 | | }, [INFO] [stdout] 184 | | Err(_) => {}, [INFO] [stdout] 185 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 180 ~ if let Ok(line) = line { [INFO] [stdout] 181 + sender.send(line.clone()).unwrap(); [INFO] [stdout] 182 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match can be simplified with `.unwrap_or_default()` [INFO] [stdout] --> src/lib.rs:223:25 [INFO] [stdout] | [INFO] [stdout] 223 | let score = match String::from_utf8_lossy(&score).parse::(){ [INFO] [stdout] | _________________________^ [INFO] [stdout] 224 | | Ok(score) => score, [INFO] [stdout] 225 | | Err(_) => 0, [INFO] [stdout] 226 | | [INFO] [stdout] 227 | | }; [INFO] [stdout] | |_____________^ help: ascribe the type u32 and replace your expression with: `String::from_utf8_lossy(&score).parse::().unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::manual_unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/lib.rs:245:9 [INFO] [stdout] | [INFO] [stdout] 245 | / if entry.file_type().unwrap().is_file() { [INFO] [stdout] 246 | | if entry.file_name().to_string_lossy().starts_with("benchmark") { [INFO] [stdout] 247 | | let date = entry.file_name().to_str().unwrap().to_owned(); [INFO] [stdout] 248 | | let date = date.replace("benchmark-", ""); [INFO] [stdout] ... | [INFO] [stdout] 265 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 245 ~ if entry.file_type().unwrap().is_file() [INFO] [stdout] 246 ~ && entry.file_name().to_string_lossy().starts_with("benchmark") { [INFO] [stdout] 247 | let date = entry.file_name().to_str().unwrap().to_owned(); [INFO] [stdout] ... [INFO] [stdout] 263 | [INFO] [stdout] 264 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/lib.rs:256:24 [INFO] [stdout] | [INFO] [stdout] 256 | } else if date == latest_date { [INFO] [stdout] | ________________________^ [INFO] [stdout] 257 | | if time > latest_time { [INFO] [stdout] 258 | | latest_time = time; [INFO] [stdout] 259 | | } [INFO] [stdout] 260 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 256 ~ } else if date == latest_date [INFO] [stdout] 257 ~ && time > latest_time { [INFO] [stdout] 258 | latest_time = time; [INFO] [stdout] 259 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match can be simplified with `.unwrap_or_default()` [INFO] [stdout] --> src/lib.rs:276:21 [INFO] [stdout] | [INFO] [stdout] 276 | let score = match String::from_utf8_lossy(&score).parse::(){ [INFO] [stdout] | _____________________^ [INFO] [stdout] 277 | | Ok(score) => score, [INFO] [stdout] 278 | | Err(_) => 0, [INFO] [stdout] 279 | | }; [INFO] [stdout] | |_________^ help: ascribe the type u32 and replace your expression with: `String::from_utf8_lossy(&score).parse::().unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/bin/main.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | if !read_dir(app_dir).is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `read_dir(app_dir).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `repo_dir` after checking its variant with `is_ok` [INFO] [stdout] --> src/bin/main.rs:128:22 [INFO] [stdout] | [INFO] [stdout] 127 | if repo_dir.is_ok() { [INFO] [stdout] | ------------------- help: try: `if let Ok() = repo_dir` [INFO] [stdout] 128 | for entry in repo_dir.unwrap() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/bin/main.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | if !read_dir(app_dir).is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `read_dir(app_dir).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `repo_dir` after checking its variant with `is_ok` [INFO] [stdout] --> src/bin/main.rs:128:22 [INFO] [stdout] | [INFO] [stdout] 127 | if repo_dir.is_ok() { [INFO] [stdout] | ------------------- help: try: `if let Ok() = repo_dir` [INFO] [stdout] 128 | for entry in repo_dir.unwrap() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 11.70s [INFO] running `Command { std: "docker" "inspect" "2a2cbe9b578be433e7f1ad51b4e9fa1df014f42e97139dd71a8c66b6d6545bc3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2a2cbe9b578be433e7f1ad51b4e9fa1df014f42e97139dd71a8c66b6d6545bc3", kill_on_drop: false }` [INFO] [stdout] 2a2cbe9b578be433e7f1ad51b4e9fa1df014f42e97139dd71a8c66b6d6545bc3