[INFO] cloning repository https://github.com/jpz/advent-of-code-2022 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jpz/advent-of-code-2022" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjpz%2Fadvent-of-code-2022", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjpz%2Fadvent-of-code-2022'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] fc736cd6e2bedef8d89a3a34e5ed10d5205ddd0d [INFO] linting jpz/advent-of-code-2022 against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjpz%2Fadvent-of-code-2022" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/jpz/advent-of-code-2022 [INFO] finished tweaking git repo https://github.com/jpz/advent-of-code-2022 [INFO] tweaked toml for git repo https://github.com/jpz/advent-of-code-2022 written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/jpz/advent-of-code-2022 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/jpz/advent-of-code-2022 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-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] a4b2e0465e56823988619a6411c6acd3f492ec893f294aa81258a08ba504d711 [INFO] running `Command { std: "docker" "start" "-a" "a4b2e0465e56823988619a6411c6acd3f492ec893f294aa81258a08ba504d711", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "a4b2e0465e56823988619a6411c6acd3f492ec893f294aa81258a08ba504d711", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a4b2e0465e56823988619a6411c6acd3f492ec893f294aa81258a08ba504d711", kill_on_drop: false }` [INFO] [stdout] a4b2e0465e56823988619a6411c6acd3f492ec893f294aa81258a08ba504d711 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] 46cce0283fb0278c9a4d44b2a1e6848d5c32f20783f8ad9c45b6a3e3e5090622 [INFO] running `Command { std: "docker" "start" "-a" "46cce0283fb0278c9a4d44b2a1e6848d5c32f20783f8ad9c45b6a3e3e5090622", kill_on_drop: false }` [INFO] [stderr] Checking aho-corasick v0.7.20 [INFO] [stderr] Checking regex-syntax v0.6.28 [INFO] [stderr] Checking regex v1.7.0 [INFO] [stderr] Checking advent-of-code-2022 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/main.rs:63:21 [INFO] [stdout] | [INFO] [stdout] 63 | .map(|row| (row.chars().nth(0).unwrap(), row.chars().nth(2).unwrap())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `row.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] = note: `#[warn(clippy::iter_nth_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:74:13 [INFO] [stdout] | [INFO] [stdout] 74 | / return match b { [INFO] [stdout] 75 | | 'X' => 1, [INFO] [stdout] 76 | | 'Y' => 2, [INFO] [stdout] 77 | | 'Z' => 3, [INFO] [stdout] ... | [INFO] [stdout] 83 | | _ => unreachable!(), [INFO] [stdout] 84 | | }; [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` and wrap the sequence with parentheses [INFO] [stdout] | [INFO] [stdout] 74 ~ (match b { [INFO] [stdout] 75 + 'X' => 1, [INFO] [stdout] 76 + 'Y' => 2, [INFO] [stdout] 77 + 'Z' => 3, [INFO] [stdout] 78 + _ => unreachable!(), [INFO] [stdout] 79 + } + match (a, b) { [INFO] [stdout] 80 + ('A', 'X') | ('B', 'Y') | ('C', 'Z') => 3, [INFO] [stdout] 81 + ('A', 'Y') | ('B', 'Z') | ('C', 'X') => 6, [INFO] [stdout] 82 + ('A', 'Z') | ('B', 'X') | ('C', 'Y') => 0, [INFO] [stdout] 83 + _ => unreachable!(), [INFO] [stdout] 84 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:97:13 [INFO] [stdout] | [INFO] [stdout] 97 | / return match b { [INFO] [stdout] 98 | | 'X' => 0, [INFO] [stdout] 99 | | 'Y' => 3, [INFO] [stdout] 100 | | 'Z' => 6, [INFO] [stdout] ... | [INFO] [stdout] 106 | | _ => unreachable!(), [INFO] [stdout] 107 | | }; [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` and wrap the sequence with parentheses [INFO] [stdout] | [INFO] [stdout] 97 ~ (match b { [INFO] [stdout] 98 + 'X' => 0, [INFO] [stdout] 99 + 'Y' => 3, [INFO] [stdout] 100 + 'Z' => 6, [INFO] [stdout] 101 + _ => unreachable!(), [INFO] [stdout] 102 + } + match (a, b) { [INFO] [stdout] 103 + ('A', 'X') | ('B', 'Z') | ('C', 'Y') => 3, // scissors [INFO] [stdout] 104 + ('A', 'Z') | ('B', 'Y') | ('C', 'X') => 2, // paper [INFO] [stdout] 105 + ('A', 'Y') | ('B', 'X') | ('C', 'Z') => 1, // rock [INFO] [stdout] 106 + _ => unreachable!(), [INFO] [stdout] 107 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the function definition [INFO] [stdout] --> src/main.rs:114:21 [INFO] [stdout] | [INFO] [stdout] 114 | fn common_chars<'a, 'b>(lhs: &'a str, rhs: &'a str) -> String { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] = note: `#[warn(clippy::extra_unused_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:118:5 [INFO] [stdout] | [INFO] [stdout] 118 | return set_lhs.intersection(&set_rhs).cloned().collect(); [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] 118 - return set_lhs.intersection(&set_rhs).cloned().collect(); [INFO] [stdout] 118 + set_lhs.intersection(&set_rhs).cloned().collect() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:123:5 [INFO] [stdout] | [INFO] [stdout] 123 | return INPUT.split("\n").collect::>(); [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] 123 - return INPUT.split("\n").collect::>(); [INFO] [stdout] 123 + INPUT.split("\n").collect::>() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:140:13 [INFO] [stdout] | [INFO] [stdout] 140 | return val; [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] 140 - return val; [INFO] [stdout] 140 + val [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/main.rs:139:23 [INFO] [stdout] | [INFO] [stdout] 139 | let val = common.chars().nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `common.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:147:13 [INFO] [stdout] | [INFO] [stdout] 147 | / return match ch { [INFO] [stdout] 148 | | 'a'..='z' => *ch as i64 - 'a' as i64 + 1, [INFO] [stdout] 149 | | 'A'..='Z' => *ch as i64 - 'A' as i64 + 27, [INFO] [stdout] 150 | | _ => unreachable!(), [INFO] [stdout] 151 | | }; [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] 147 ~ match ch { [INFO] [stdout] 148 + 'a'..='z' => *ch as i64 - 'a' as i64 + 1, [INFO] [stdout] 149 + 'A'..='Z' => *ch as i64 - 'A' as i64 + 27, [INFO] [stdout] 150 + _ => unreachable!(), [INFO] [stdout] 151 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/main.rs:160:19 [INFO] [stdout] | [INFO] [stdout] 160 | let triples = (&bags[..]).chunks_exact(3); [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `bags[..]` [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: unneeded `return` statement [INFO] [stdout] --> src/main.rs:168:13 [INFO] [stdout] | [INFO] [stdout] 168 | return val; [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] 168 - return val; [INFO] [stdout] 168 + val [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/main.rs:167:23 [INFO] [stdout] | [INFO] [stdout] 167 | let val = common.chars().nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `common.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:171:13 [INFO] [stdout] | [INFO] [stdout] 171 | / return match ch { [INFO] [stdout] 172 | | 'a'..='z' => ch as i64 - 'a' as i64 + 1, [INFO] [stdout] 173 | | 'A'..='Z' => ch as i64 - 'A' as i64 + 27, [INFO] [stdout] 174 | | _ => unreachable!(), [INFO] [stdout] 175 | | }; [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] 171 ~ match ch { [INFO] [stdout] 172 + 'a'..='z' => ch as i64 - 'a' as i64 + 1, [INFO] [stdout] 173 + 'A'..='Z' => ch as i64 - 'A' as i64 + 27, [INFO] [stdout] 174 + _ => unreachable!(), [INFO] [stdout] 175 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:237:13 [INFO] [stdout] | [INFO] [stdout] 237 | / ass1.start <= ass2.start && ass1.end >= ass2.start [INFO] [stdout] 238 | | || ass2.start <= ass1.start && ass2.end >= ass1.start [INFO] [stdout] 239 | | || ass1.start >= ass2.start && ass1.start <= ass2.end [INFO] [stdout] 240 | | || ass2.start >= ass1.start && ass2.start <= ass1.end [INFO] [stdout] | |_____________________________________________________________________^ help: try: `ass1.start <= ass2.start && ass1.end >= ass2.start || ass2.start <= ass1.start && ass2.end >= ass1.start` [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: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:237:13 [INFO] [stdout] | [INFO] [stdout] 237 | / ass1.start <= ass2.start && ass1.end >= ass2.start [INFO] [stdout] 238 | | || ass2.start <= ass1.start && ass2.end >= ass1.start [INFO] [stdout] 239 | | || ass1.start >= ass2.start && ass1.start <= ass2.end [INFO] [stdout] | |_____________________________________________________________________^ help: try: `ass1.start <= ass2.start && ass1.end >= ass2.start || ass2.start <= ass1.start && ass2.end >= ass1.start` [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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/main.rs:247:27 [INFO] [stdout] | [INFO] [stdout] 247 | fn day5_process_data() -> (Vec<(usize, usize, usize)>, [Vec; 9]) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(..).flatten()` on `Iterator` [INFO] [stdout] --> src/main.rs:276:10 [INFO] [stdout] | [INFO] [stdout] 276 | .map(|move_str| { [INFO] [stdout] | __________^ [INFO] [stdout] 277 | | re.captures(*move_str).map(|cap| { [INFO] [stdout] 278 | | let count: usize = cap [INFO] [stdout] 279 | | .name("count") [INFO] [stdout] ... | [INFO] [stdout] 298 | | }) [INFO] [stdout] 299 | | .flatten() [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_flatten [INFO] [stdout] = note: `#[warn(clippy::map_flatten)]` on by default [INFO] [stdout] help: try replacing `map` with `filter_map` and remove the `.flatten()` [INFO] [stdout] | [INFO] [stdout] 276 ~ .filter_map(|move_str| { [INFO] [stdout] 277 + re.captures(*move_str).map(|cap| { [INFO] [stdout] 278 + let count: usize = cap [INFO] [stdout] 279 + .name("count") [INFO] [stdout] 280 + .unwrap() [INFO] [stdout] 281 + .as_str() [INFO] [stdout] 282 + .parse() [INFO] [stdout] 283 + .expect("error parsing count"); [INFO] [stdout] 284 + let from: usize = cap [INFO] [stdout] 285 + .name("from") [INFO] [stdout] 286 + .unwrap() [INFO] [stdout] 287 + .as_str() [INFO] [stdout] 288 + .parse() [INFO] [stdout] 289 + .expect("error parsing from"); [INFO] [stdout] 290 + let to: usize = cap [INFO] [stdout] 291 + .name("to") [INFO] [stdout] 292 + .unwrap() [INFO] [stdout] 293 + .as_str() [INFO] [stdout] 294 + .parse() [INFO] [stdout] 295 + .expect("error parsing to"); [INFO] [stdout] 296 + return (count, from, to); [INFO] [stdout] 297 + }) [INFO] [stdout] 298 + }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/main.rs:277:25 [INFO] [stdout] | [INFO] [stdout] 277 | re.captures(*move_str).map(|cap| { [INFO] [stdout] | ^^^^^^^^^ help: try: `move_str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:296:17 [INFO] [stdout] | [INFO] [stdout] 296 | return (count, from, to); [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] 296 - return (count, from, to); [INFO] [stdout] 296 + (count, from, to) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(..).flatten()` on `Iterator` [INFO] [stdout] --> src/main.rs:317:10 [INFO] [stdout] | [INFO] [stdout] 317 | .map(|s| s.last()) [INFO] [stdout] | __________^ [INFO] [stdout] 318 | | .flatten() [INFO] [stdout] | |__________________^ help: try replacing `map` with `filter_map` and remove the `.flatten()`: `filter_map(|s| s.last())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_flatten [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(..).flatten()` on `Iterator` [INFO] [stdout] --> src/main.rs:336:10 [INFO] [stdout] | [INFO] [stdout] 336 | .map(|s| s.last()) [INFO] [stdout] | __________^ [INFO] [stdout] 337 | | .flatten() [INFO] [stdout] | |__________________^ help: try replacing `map` with `filter_map` and remove the `.flatten()`: `filter_map(|s| s.last())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_flatten [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/main.rs:63:21 [INFO] [stdout] | [INFO] [stdout] 63 | .map(|row| (row.chars().nth(0).unwrap(), row.chars().nth(2).unwrap())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `row.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] = note: `#[warn(clippy::iter_nth_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:74:13 [INFO] [stdout] | [INFO] [stdout] 74 | / return match b { [INFO] [stdout] 75 | | 'X' => 1, [INFO] [stdout] 76 | | 'Y' => 2, [INFO] [stdout] 77 | | 'Z' => 3, [INFO] [stdout] ... | [INFO] [stdout] 83 | | _ => unreachable!(), [INFO] [stdout] 84 | | }; [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` and wrap the sequence with parentheses [INFO] [stdout] | [INFO] [stdout] 74 ~ (match b { [INFO] [stdout] 75 + 'X' => 1, [INFO] [stdout] 76 + 'Y' => 2, [INFO] [stdout] 77 + 'Z' => 3, [INFO] [stdout] 78 + _ => unreachable!(), [INFO] [stdout] 79 + } + match (a, b) { [INFO] [stdout] 80 + ('A', 'X') | ('B', 'Y') | ('C', 'Z') => 3, [INFO] [stdout] 81 + ('A', 'Y') | ('B', 'Z') | ('C', 'X') => 6, [INFO] [stdout] 82 + ('A', 'Z') | ('B', 'X') | ('C', 'Y') => 0, [INFO] [stdout] 83 + _ => unreachable!(), [INFO] [stdout] 84 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:97:13 [INFO] [stdout] | [INFO] [stdout] 97 | / return match b { [INFO] [stdout] 98 | | 'X' => 0, [INFO] [stdout] 99 | | 'Y' => 3, [INFO] [stdout] 100 | | 'Z' => 6, [INFO] [stdout] ... | [INFO] [stdout] 106 | | _ => unreachable!(), [INFO] [stdout] 107 | | }; [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` and wrap the sequence with parentheses [INFO] [stdout] | [INFO] [stdout] 97 ~ (match b { [INFO] [stdout] 98 + 'X' => 0, [INFO] [stdout] 99 + 'Y' => 3, [INFO] [stdout] 100 + 'Z' => 6, [INFO] [stdout] 101 + _ => unreachable!(), [INFO] [stdout] 102 + } + match (a, b) { [INFO] [stdout] 103 + ('A', 'X') | ('B', 'Z') | ('C', 'Y') => 3, // scissors [INFO] [stdout] 104 + ('A', 'Z') | ('B', 'Y') | ('C', 'X') => 2, // paper [INFO] [stdout] 105 + ('A', 'Y') | ('B', 'X') | ('C', 'Z') => 1, // rock [INFO] [stdout] 106 + _ => unreachable!(), [INFO] [stdout] 107 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the function definition [INFO] [stdout] --> src/main.rs:114:21 [INFO] [stdout] | [INFO] [stdout] 114 | fn common_chars<'a, 'b>(lhs: &'a str, rhs: &'a str) -> String { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] = note: `#[warn(clippy::extra_unused_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:118:5 [INFO] [stdout] | [INFO] [stdout] 118 | return set_lhs.intersection(&set_rhs).cloned().collect(); [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] 118 - return set_lhs.intersection(&set_rhs).cloned().collect(); [INFO] [stdout] 118 + set_lhs.intersection(&set_rhs).cloned().collect() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:123:5 [INFO] [stdout] | [INFO] [stdout] 123 | return INPUT.split("\n").collect::>(); [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] 123 - return INPUT.split("\n").collect::>(); [INFO] [stdout] 123 + INPUT.split("\n").collect::>() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:140:13 [INFO] [stdout] | [INFO] [stdout] 140 | return val; [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] 140 - return val; [INFO] [stdout] 140 + val [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/main.rs:139:23 [INFO] [stdout] | [INFO] [stdout] 139 | let val = common.chars().nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `common.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:147:13 [INFO] [stdout] | [INFO] [stdout] 147 | / return match ch { [INFO] [stdout] 148 | | 'a'..='z' => *ch as i64 - 'a' as i64 + 1, [INFO] [stdout] 149 | | 'A'..='Z' => *ch as i64 - 'A' as i64 + 27, [INFO] [stdout] 150 | | _ => unreachable!(), [INFO] [stdout] 151 | | }; [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] 147 ~ match ch { [INFO] [stdout] 148 + 'a'..='z' => *ch as i64 - 'a' as i64 + 1, [INFO] [stdout] 149 + 'A'..='Z' => *ch as i64 - 'A' as i64 + 27, [INFO] [stdout] 150 + _ => unreachable!(), [INFO] [stdout] 151 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/main.rs:160:19 [INFO] [stdout] | [INFO] [stdout] 160 | let triples = (&bags[..]).chunks_exact(3); [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `bags[..]` [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: unneeded `return` statement [INFO] [stdout] --> src/main.rs:168:13 [INFO] [stdout] | [INFO] [stdout] 168 | return val; [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] 168 - return val; [INFO] [stdout] 168 + val [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/main.rs:167:23 [INFO] [stdout] | [INFO] [stdout] 167 | let val = common.chars().nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `common.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:171:13 [INFO] [stdout] | [INFO] [stdout] 171 | / return match ch { [INFO] [stdout] 172 | | 'a'..='z' => ch as i64 - 'a' as i64 + 1, [INFO] [stdout] 173 | | 'A'..='Z' => ch as i64 - 'A' as i64 + 27, [INFO] [stdout] 174 | | _ => unreachable!(), [INFO] [stdout] 175 | | }; [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] 171 ~ match ch { [INFO] [stdout] 172 + 'a'..='z' => ch as i64 - 'a' as i64 + 1, [INFO] [stdout] 173 + 'A'..='Z' => ch as i64 - 'A' as i64 + 27, [INFO] [stdout] 174 + _ => unreachable!(), [INFO] [stdout] 175 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:237:13 [INFO] [stdout] | [INFO] [stdout] 237 | / ass1.start <= ass2.start && ass1.end >= ass2.start [INFO] [stdout] 238 | | || ass2.start <= ass1.start && ass2.end >= ass1.start [INFO] [stdout] 239 | | || ass1.start >= ass2.start && ass1.start <= ass2.end [INFO] [stdout] 240 | | || ass2.start >= ass1.start && ass2.start <= ass1.end [INFO] [stdout] | |_____________________________________________________________________^ help: try: `ass1.start <= ass2.start && ass1.end >= ass2.start || ass2.start <= ass1.start && ass2.end >= ass1.start` [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: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:237:13 [INFO] [stdout] | [INFO] [stdout] 237 | / ass1.start <= ass2.start && ass1.end >= ass2.start [INFO] [stdout] 238 | | || ass2.start <= ass1.start && ass2.end >= ass1.start [INFO] [stdout] 239 | | || ass1.start >= ass2.start && ass1.start <= ass2.end [INFO] [stdout] | |_____________________________________________________________________^ help: try: `ass1.start <= ass2.start && ass1.end >= ass2.start || ass2.start <= ass1.start && ass2.end >= ass1.start` [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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/main.rs:247:27 [INFO] [stdout] | [INFO] [stdout] 247 | fn day5_process_data() -> (Vec<(usize, usize, usize)>, [Vec; 9]) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(..).flatten()` on `Iterator` [INFO] [stdout] --> src/main.rs:276:10 [INFO] [stdout] | [INFO] [stdout] 276 | .map(|move_str| { [INFO] [stdout] | __________^ [INFO] [stdout] 277 | | re.captures(*move_str).map(|cap| { [INFO] [stdout] 278 | | let count: usize = cap [INFO] [stdout] 279 | | .name("count") [INFO] [stdout] ... | [INFO] [stdout] 298 | | }) [INFO] [stdout] 299 | | .flatten() [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_flatten [INFO] [stdout] = note: `#[warn(clippy::map_flatten)]` on by default [INFO] [stdout] help: try replacing `map` with `filter_map` and remove the `.flatten()` [INFO] [stdout] | [INFO] [stdout] 276 ~ .filter_map(|move_str| { [INFO] [stdout] 277 + re.captures(*move_str).map(|cap| { [INFO] [stdout] 278 + let count: usize = cap [INFO] [stdout] 279 + .name("count") [INFO] [stdout] 280 + .unwrap() [INFO] [stdout] 281 + .as_str() [INFO] [stdout] 282 + .parse() [INFO] [stdout] 283 + .expect("error parsing count"); [INFO] [stdout] 284 + let from: usize = cap [INFO] [stdout] 285 + .name("from") [INFO] [stdout] 286 + .unwrap() [INFO] [stdout] 287 + .as_str() [INFO] [stdout] 288 + .parse() [INFO] [stdout] 289 + .expect("error parsing from"); [INFO] [stdout] 290 + let to: usize = cap [INFO] [stdout] 291 + .name("to") [INFO] [stdout] 292 + .unwrap() [INFO] [stdout] 293 + .as_str() [INFO] [stdout] 294 + .parse() [INFO] [stdout] 295 + .expect("error parsing to"); [INFO] [stdout] 296 + return (count, from, to); [INFO] [stdout] 297 + }) [INFO] [stdout] 298 + }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/main.rs:277:25 [INFO] [stdout] | [INFO] [stdout] 277 | re.captures(*move_str).map(|cap| { [INFO] [stdout] | ^^^^^^^^^ help: try: `move_str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:296:17 [INFO] [stdout] | [INFO] [stdout] 296 | return (count, from, to); [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] 296 - return (count, from, to); [INFO] [stdout] 296 + (count, from, to) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(..).flatten()` on `Iterator` [INFO] [stdout] --> src/main.rs:317:10 [INFO] [stdout] | [INFO] [stdout] 317 | .map(|s| s.last()) [INFO] [stdout] | __________^ [INFO] [stdout] 318 | | .flatten() [INFO] [stdout] | |__________________^ help: try replacing `map` with `filter_map` and remove the `.flatten()`: `filter_map(|s| s.last())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_flatten [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(..).flatten()` on `Iterator` [INFO] [stdout] --> src/main.rs:336:10 [INFO] [stdout] | [INFO] [stdout] 336 | .map(|s| s.last()) [INFO] [stdout] | __________^ [INFO] [stdout] 337 | | .flatten() [INFO] [stdout] | |__________________^ help: try replacing `map` with `filter_map` and remove the `.flatten()`: `filter_map(|s| s.last())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_flatten [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.98s [INFO] running `Command { std: "docker" "inspect" "46cce0283fb0278c9a4d44b2a1e6848d5c32f20783f8ad9c45b6a3e3e5090622", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "46cce0283fb0278c9a4d44b2a1e6848d5c32f20783f8ad9c45b6a3e3e5090622", kill_on_drop: false }` [INFO] [stdout] 46cce0283fb0278c9a4d44b2a1e6848d5c32f20783f8ad9c45b6a3e3e5090622