[INFO] cloning repository https://github.com/Telcoltar/AdventOfCodeDay4-Rust [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Telcoltar/AdventOfCodeDay4-Rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTelcoltar%2FAdventOfCodeDay4-Rust", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTelcoltar%2FAdventOfCodeDay4-Rust'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 61497d2e477ffe4610bafe68dfdaf8b4a8ed8ec9 [INFO] linting Telcoltar/AdventOfCodeDay4-Rust against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTelcoltar%2FAdventOfCodeDay4-Rust" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Telcoltar/AdventOfCodeDay4-Rust [INFO] finished tweaking git repo https://github.com/Telcoltar/AdventOfCodeDay4-Rust [INFO] tweaked toml for git repo https://github.com/Telcoltar/AdventOfCodeDay4-Rust written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Telcoltar/AdventOfCodeDay4-Rust 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 git repo https://github.com/Telcoltar/AdventOfCodeDay4-Rust 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] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] 83f7620fbe8acbd7b31115f568c3a129dd976f57831ec226c8f3bb62e6b968c1 [INFO] running `Command { std: "docker" "start" "-a" "83f7620fbe8acbd7b31115f568c3a129dd976f57831ec226c8f3bb62e6b968c1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "83f7620fbe8acbd7b31115f568c3a129dd976f57831ec226c8f3bb62e6b968c1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "83f7620fbe8acbd7b31115f568c3a129dd976f57831ec226c8f3bb62e6b968c1", kill_on_drop: false }` [INFO] [stdout] 83f7620fbe8acbd7b31115f568c3a129dd976f57831ec226c8f3bb62e6b968c1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] 6bd775d41e66d029fe5b2a374c0f8526e3db56d46891d086e5f76b8b06c03338 [INFO] running `Command { std: "docker" "start" "-a" "6bd775d41e66d029fe5b2a374c0f8526e3db56d46891d086e5f76b8b06c03338", kill_on_drop: false }` [INFO] [stderr] Checking regex-syntax v0.6.21 [INFO] [stderr] Checking thread_local v1.0.1 [INFO] [stderr] Checking regex v1.4.2 [INFO] [stderr] Checking advent_of_code_day_4 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | return valid_fields; [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] 50 - return valid_fields; [INFO] [stdout] 50 + valid_fields [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/main.rs:42:9 [INFO] [stdout] | [INFO] [stdout] 42 | / let mut valid_fields: Vec = Vec::new(); [INFO] [stdout] 43 | | valid_fields.push(self.byr.is_some()); [INFO] [stdout] 44 | | valid_fields.push(self.iyr.is_some()); [INFO] [stdout] 45 | | valid_fields.push(self.eyr.is_some()); [INFO] [stdout] ... | [INFO] [stdout] 48 | | valid_fields.push(self.ecl.is_some()); [INFO] [stdout] 49 | | valid_fields.push(self.pid.is_some()); [INFO] [stdout] | |______________________________________________^ help: consider using the `vec![]` macro: `let valid_fields: Vec = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] = note: `#[warn(clippy::vec_init_then_push)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:55:9 [INFO] [stdout] | [INFO] [stdout] 55 | return !(valid_fields.contains(&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] 55 - return !(valid_fields.contains(&false)); [INFO] [stdout] 55 + !(valid_fields.contains(&false)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 63 | if !year_result.is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `year_result.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/main.rs:70:9 [INFO] [stdout] | [INFO] [stdout] 70 | 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] 70 - return true; [INFO] [stdout] 70 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/main.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | if !((1920 <= year) && (year <= 2002)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(1920..=2002).contains(&year)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:78:12 [INFO] [stdout] | [INFO] [stdout] 78 | if !year_result.is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `year_result.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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:85:9 [INFO] [stdout] | [INFO] [stdout] 85 | 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] 85 - return true; [INFO] [stdout] 85 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/main.rs:82:13 [INFO] [stdout] | [INFO] [stdout] 82 | if !((2010 <= year) && (year <= 2020)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(2010..=2020).contains(&year)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:93:12 [INFO] [stdout] | [INFO] [stdout] 93 | if !year_result.is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `year_result.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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:100:9 [INFO] [stdout] | [INFO] [stdout] 100 | 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] 100 - return true; [INFO] [stdout] 100 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/main.rs:97:13 [INFO] [stdout] | [INFO] [stdout] 97 | if !((2020 <= year) && (year <= 2030)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(2020..=2030).contains(&year)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:128:9 [INFO] [stdout] | [INFO] [stdout] 128 | 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] 128 - return true; [INFO] [stdout] 128 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:106:49 [INFO] [stdout] | [INFO] [stdout] 106 | let unit_match_iter = re_unit.find_iter(&self.hgt.as_ref().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `self.hgt.as_ref().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:110:33 [INFO] [stdout] | [INFO] [stdout] 110 | let unit = re_unit.find(&self.hgt.as_ref().unwrap()).unwrap().as_str(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `self.hgt.as_ref().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:112:65 [INFO] [stdout] | [INFO] [stdout] 112 | let height_value_match_iter = re_height_value.find_iter(&self.hgt.as_ref().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `self.hgt.as_ref().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:117:18 [INFO] [stdout] | [INFO] [stdout] 117 | find(&self.hgt.as_ref().unwrap()).unwrap().as_str().parse().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `self.hgt.as_ref().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/main.rs:118:9 [INFO] [stdout] | [INFO] [stdout] 118 | / if unit == "cm" { [INFO] [stdout] 119 | | if !((150 <= height_value) && (height_value <= 193)) { [INFO] [stdout] 120 | | return false; [INFO] [stdout] 121 | | } [INFO] [stdout] 122 | | } [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] 118 ~ if unit == "cm" [INFO] [stdout] 119 ~ && !((150 <= height_value) && (height_value <= 193)) { [INFO] [stdout] 120 | return false; [INFO] [stdout] 121 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/main.rs:119:17 [INFO] [stdout] | [INFO] [stdout] 119 | if !((150 <= height_value) && (height_value <= 193)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(150..=193).contains(&height_value)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/main.rs:123:9 [INFO] [stdout] | [INFO] [stdout] 123 | / if unit == "in" { [INFO] [stdout] 124 | | if !((59 <= height_value) && (height_value <= 76)) { [INFO] [stdout] 125 | | return false; [INFO] [stdout] 126 | | } [INFO] [stdout] 127 | | } [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] 123 ~ if unit == "in" [INFO] [stdout] 124 ~ && !((59 <= height_value) && (height_value <= 76)) { [INFO] [stdout] 125 | return false; [INFO] [stdout] 126 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/main.rs:124:17 [INFO] [stdout] | [INFO] [stdout] 124 | if !((59 <= height_value) && (height_value <= 76)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(59..=76).contains(&height_value)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:146:9 [INFO] [stdout] | [INFO] [stdout] 146 | 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] 146 - return true; [INFO] [stdout] 146 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:151:9 [INFO] [stdout] | [INFO] [stdout] 151 | return valid_eye_colors.contains(&self.ecl.as_ref().unwrap().as_str()); [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] 151 - return valid_eye_colors.contains(&self.ecl.as_ref().unwrap().as_str()); [INFO] [stdout] 151 + valid_eye_colors.contains(&self.ecl.as_ref().unwrap().as_str()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:155:9 [INFO] [stdout] | [INFO] [stdout] 155 | return self.pid.as_ref().unwrap().len() == 9; [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] 155 - return self.pid.as_ref().unwrap().len() == 9; [INFO] [stdout] 155 + self.pid.as_ref().unwrap().len() == 9 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:169:9 [INFO] [stdout] | [INFO] [stdout] 169 | 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] 169 - return false; [INFO] [stdout] 169 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/main.rs:183:12 [INFO] [stdout] | [INFO] [stdout] 183 | if line_string == "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `line_string.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] = note: `#[warn(clippy::comparison_to_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/main.rs:150:32 [INFO] [stdout] | [INFO] [stdout] 150 | let valid_eye_colors = vec!["amb", "blu", "brn", "gry", "grn", "hzl", "oth"]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `["amb", "blu", "brn", "gry", "grn", "hzl", "oth"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/main.rs:160:36 [INFO] [stdout] | [INFO] [stdout] 160 | let fields_valid_vec = vec![self.valid_byr(), [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 161 | | self.valid_iyr(), [INFO] [stdout] 162 | | self.valid_eyr(), [INFO] [stdout] 163 | | self.valid_hgt(), [INFO] [stdout] 164 | | self.valid_hcl(), [INFO] [stdout] 165 | | self.valid_ecl(), [INFO] [stdout] 166 | | self.valid_pid()]; [INFO] [stdout] | |_________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] help: you can use an array directly [INFO] [stdout] | [INFO] [stdout] 160 ~ let fields_valid_vec = [self.valid_byr(), [INFO] [stdout] 161 + self.valid_iyr(), [INFO] [stdout] 162 + self.valid_eyr(), [INFO] [stdout] 163 + self.valid_hgt(), [INFO] [stdout] 164 + self.valid_hcl(), [INFO] [stdout] 165 + self.valid_ecl(), [INFO] [stdout] 166 ~ self.valid_pid()]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | return valid_fields; [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] 50 - return valid_fields; [INFO] [stdout] 50 + valid_fields [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/main.rs:42:9 [INFO] [stdout] | [INFO] [stdout] 42 | / let mut valid_fields: Vec = Vec::new(); [INFO] [stdout] 43 | | valid_fields.push(self.byr.is_some()); [INFO] [stdout] 44 | | valid_fields.push(self.iyr.is_some()); [INFO] [stdout] 45 | | valid_fields.push(self.eyr.is_some()); [INFO] [stdout] ... | [INFO] [stdout] 48 | | valid_fields.push(self.ecl.is_some()); [INFO] [stdout] 49 | | valid_fields.push(self.pid.is_some()); [INFO] [stdout] | |______________________________________________^ help: consider using the `vec![]` macro: `let valid_fields: Vec = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] = note: `#[warn(clippy::vec_init_then_push)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.81s [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:55:9 [INFO] [stdout] | [INFO] [stdout] 55 | return !(valid_fields.contains(&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] 55 - return !(valid_fields.contains(&false)); [INFO] [stdout] 55 + !(valid_fields.contains(&false)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 63 | if !year_result.is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `year_result.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/main.rs:70:9 [INFO] [stdout] | [INFO] [stdout] 70 | 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] 70 - return true; [INFO] [stdout] 70 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/main.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | if !((1920 <= year) && (year <= 2002)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(1920..=2002).contains(&year)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:78:12 [INFO] [stdout] | [INFO] [stdout] 78 | if !year_result.is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `year_result.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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:85:9 [INFO] [stdout] | [INFO] [stdout] 85 | 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] 85 - return true; [INFO] [stdout] 85 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/main.rs:82:13 [INFO] [stdout] | [INFO] [stdout] 82 | if !((2010 <= year) && (year <= 2020)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(2010..=2020).contains(&year)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:93:12 [INFO] [stdout] | [INFO] [stdout] 93 | if !year_result.is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `year_result.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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:100:9 [INFO] [stdout] | [INFO] [stdout] 100 | 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] 100 - return true; [INFO] [stdout] 100 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/main.rs:97:13 [INFO] [stdout] | [INFO] [stdout] 97 | if !((2020 <= year) && (year <= 2030)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(2020..=2030).contains(&year)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:128:9 [INFO] [stdout] | [INFO] [stdout] 128 | 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] 128 - return true; [INFO] [stdout] 128 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:106:49 [INFO] [stdout] | [INFO] [stdout] 106 | let unit_match_iter = re_unit.find_iter(&self.hgt.as_ref().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `self.hgt.as_ref().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:110:33 [INFO] [stdout] | [INFO] [stdout] 110 | let unit = re_unit.find(&self.hgt.as_ref().unwrap()).unwrap().as_str(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `self.hgt.as_ref().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:112:65 [INFO] [stdout] | [INFO] [stdout] 112 | let height_value_match_iter = re_height_value.find_iter(&self.hgt.as_ref().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `self.hgt.as_ref().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:117:18 [INFO] [stdout] | [INFO] [stdout] 117 | find(&self.hgt.as_ref().unwrap()).unwrap().as_str().parse().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `self.hgt.as_ref().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/main.rs:118:9 [INFO] [stdout] | [INFO] [stdout] 118 | / if unit == "cm" { [INFO] [stdout] 119 | | if !((150 <= height_value) && (height_value <= 193)) { [INFO] [stdout] 120 | | return false; [INFO] [stdout] 121 | | } [INFO] [stdout] 122 | | } [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] 118 ~ if unit == "cm" [INFO] [stdout] 119 ~ && !((150 <= height_value) && (height_value <= 193)) { [INFO] [stdout] 120 | return false; [INFO] [stdout] 121 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/main.rs:119:17 [INFO] [stdout] | [INFO] [stdout] 119 | if !((150 <= height_value) && (height_value <= 193)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(150..=193).contains(&height_value)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/main.rs:123:9 [INFO] [stdout] | [INFO] [stdout] 123 | / if unit == "in" { [INFO] [stdout] 124 | | if !((59 <= height_value) && (height_value <= 76)) { [INFO] [stdout] 125 | | return false; [INFO] [stdout] 126 | | } [INFO] [stdout] 127 | | } [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] 123 ~ if unit == "in" [INFO] [stdout] 124 ~ && !((59 <= height_value) && (height_value <= 76)) { [INFO] [stdout] 125 | return false; [INFO] [stdout] 126 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/main.rs:124:17 [INFO] [stdout] | [INFO] [stdout] 124 | if !((59 <= height_value) && (height_value <= 76)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(59..=76).contains(&height_value)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:146:9 [INFO] [stdout] | [INFO] [stdout] 146 | 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] 146 - return true; [INFO] [stdout] 146 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:151:9 [INFO] [stdout] | [INFO] [stdout] 151 | return valid_eye_colors.contains(&self.ecl.as_ref().unwrap().as_str()); [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] 151 - return valid_eye_colors.contains(&self.ecl.as_ref().unwrap().as_str()); [INFO] [stdout] 151 + valid_eye_colors.contains(&self.ecl.as_ref().unwrap().as_str()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:155:9 [INFO] [stdout] | [INFO] [stdout] 155 | return self.pid.as_ref().unwrap().len() == 9; [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] 155 - return self.pid.as_ref().unwrap().len() == 9; [INFO] [stdout] 155 + self.pid.as_ref().unwrap().len() == 9 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:169:9 [INFO] [stdout] | [INFO] [stdout] 169 | 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] 169 - return false; [INFO] [stdout] 169 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/main.rs:183:12 [INFO] [stdout] | [INFO] [stdout] 183 | if line_string == "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `line_string.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] = note: `#[warn(clippy::comparison_to_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/main.rs:150:32 [INFO] [stdout] | [INFO] [stdout] 150 | let valid_eye_colors = vec!["amb", "blu", "brn", "gry", "grn", "hzl", "oth"]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `["amb", "blu", "brn", "gry", "grn", "hzl", "oth"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/main.rs:160:36 [INFO] [stdout] | [INFO] [stdout] 160 | let fields_valid_vec = vec![self.valid_byr(), [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 161 | | self.valid_iyr(), [INFO] [stdout] 162 | | self.valid_eyr(), [INFO] [stdout] 163 | | self.valid_hgt(), [INFO] [stdout] 164 | | self.valid_hcl(), [INFO] [stdout] 165 | | self.valid_ecl(), [INFO] [stdout] 166 | | self.valid_pid()]; [INFO] [stdout] | |_________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] help: you can use an array directly [INFO] [stdout] | [INFO] [stdout] 160 ~ let fields_valid_vec = [self.valid_byr(), [INFO] [stdout] 161 + self.valid_iyr(), [INFO] [stdout] 162 + self.valid_eyr(), [INFO] [stdout] 163 + self.valid_hgt(), [INFO] [stdout] 164 + self.valid_hcl(), [INFO] [stdout] 165 + self.valid_ecl(), [INFO] [stdout] 166 ~ self.valid_pid()]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "6bd775d41e66d029fe5b2a374c0f8526e3db56d46891d086e5f76b8b06c03338", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6bd775d41e66d029fe5b2a374c0f8526e3db56d46891d086e5f76b8b06c03338", kill_on_drop: false }` [INFO] [stdout] 6bd775d41e66d029fe5b2a374c0f8526e3db56d46891d086e5f76b8b06c03338