[INFO] cloning repository https://github.com/swojo/advent_of_code2020 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/swojo/advent_of_code2020" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fswojo%2Fadvent_of_code2020", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fswojo%2Fadvent_of_code2020'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] c2cf45c2aa7681a707833f4817b976b224ae0aba [INFO] linting swojo/advent_of_code2020 against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fswojo%2Fadvent_of_code2020" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/swojo/advent_of_code2020 [INFO] finished tweaking git repo https://github.com/swojo/advent_of_code2020 [INFO] tweaked toml for git repo https://github.com/swojo/advent_of_code2020 written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/swojo/advent_of_code2020 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/swojo/advent_of_code2020 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] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded const_fn v0.4.4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] 9562d872d56c82349faab86ad42636324217aef6bc594e1e975985e26b3a857c [INFO] running `Command { std: "docker" "start" "-a" "9562d872d56c82349faab86ad42636324217aef6bc594e1e975985e26b3a857c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "9562d872d56c82349faab86ad42636324217aef6bc594e1e975985e26b3a857c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9562d872d56c82349faab86ad42636324217aef6bc594e1e975985e26b3a857c", kill_on_drop: false }` [INFO] [stdout] 9562d872d56c82349faab86ad42636324217aef6bc594e1e975985e26b3a857c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] 8a0f8d9560f28ee531bfeec05e70030021c4065ce71747224546df0e7aa417de [INFO] running `Command { std: "docker" "start" "-a" "8a0f8d9560f28ee531bfeec05e70030021c4065ce71747224546df0e7aa417de", kill_on_drop: false }` [INFO] [stderr] Compiling autocfg v1.0.1 [INFO] [stderr] Compiling const_fn v0.4.4 [INFO] [stderr] Compiling libc v0.2.81 [INFO] [stderr] Compiling rayon-core v1.9.0 [INFO] [stderr] Checking either v1.6.1 [INFO] [stderr] Checking itertools v0.9.0 [INFO] [stderr] Compiling crossbeam-utils v0.8.1 [INFO] [stderr] Compiling memoffset v0.6.1 [INFO] [stderr] Compiling rayon v1.5.0 [INFO] [stderr] Checking num_cpus v1.13.0 [INFO] [stderr] Checking crossbeam-epoch v0.9.1 [INFO] [stderr] Checking crossbeam-channel v0.5.0 [INFO] [stderr] Checking crossbeam-deque v0.8.0 [INFO] [stderr] Checking aoc2020 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/day2.rs:30:17 [INFO] [stdout] | [INFO] [stdout] 30 | / if x >= &min && x <= &max { [INFO] [stdout] 31 | | acc_valid += 1; [INFO] [stdout] 32 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 29 ~ Some(x) [INFO] [stdout] 30 ~ if x >= &min && x <= &max => { [INFO] [stdout] 31 | acc_valid += 1; [INFO] [stdout] 32 ~ }, [INFO] [stdout] | [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/day2.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | / match occurrences { [INFO] [stdout] 29 | | Some(x) => { [INFO] [stdout] 30 | | if x >= &min && x <= &max { [INFO] [stdout] 31 | | acc_valid += 1; [INFO] [stdout] ... | [INFO] [stdout] 34 | | None => {} [INFO] [stdout] 35 | | } [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] 28 ~ if let Some(x) = occurrences { [INFO] [stdout] 29 + if x >= &min && x <= &max { [INFO] [stdout] 30 + acc_valid += 1; [INFO] [stdout] 31 + } [INFO] [stdout] 32 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/day2.rs:54:17 [INFO] [stdout] | [INFO] [stdout] 54 | / if x == letter{ [INFO] [stdout] 55 | | true [INFO] [stdout] 56 | | } [INFO] [stdout] 57 | | else { [INFO] [stdout] 58 | | false [INFO] [stdout] 59 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 53 ~ Some(x) [INFO] [stdout] 54 ~ if x == letter=> { [INFO] [stdout] 55 | true [INFO] [stdout] 56 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/day2.rs:54:17 [INFO] [stdout] | [INFO] [stdout] 54 | / if x == letter{ [INFO] [stdout] 55 | | true [INFO] [stdout] 56 | | } [INFO] [stdout] 57 | | else { [INFO] [stdout] 58 | | false [INFO] [stdout] 59 | | } [INFO] [stdout] | |_________________^ help: you can reduce it to: `x == letter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] = note: `#[warn(clippy::needless_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/day3.rs:15:24 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn traverse(input: &Vec, x: usize, y: usize) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 15 - pub fn traverse(input: &Vec, x: usize, y: usize) -> i32 { [INFO] [stdout] 15 + pub fn traverse(input: &[String], x: usize, y: usize) -> i32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/day4.rs:67:16 [INFO] [stdout] | [INFO] [stdout] 67 | if !pid.is_err() && value.len() == 9 { [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `pid.is_ok()` [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/day4.rs:79:20 [INFO] [stdout] | [INFO] [stdout] 79 | if !color.is_err() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `color.is_ok()` [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: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/day4.rs:28:13 [INFO] [stdout] | [INFO] [stdout] 28 | year >= 1920 && 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: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/day4.rs:32:13 [INFO] [stdout] | [INFO] [stdout] 32 | year >= 2010 && 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: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/day4.rs:36:13 [INFO] [stdout] | [INFO] [stdout] 36 | year >= 2020 && 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: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/day4.rs:56:17 [INFO] [stdout] | [INFO] [stdout] 56 | height_d >= 150 && height_d <= 193 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(150..=193).contains(&height_d)` [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: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/day4.rs:59:17 [INFO] [stdout] | [INFO] [stdout] 59 | height_d >= 59 && height_d <= 76 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(59..=76).contains(&height_d)` [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-then-else expression returns a bool literal [INFO] [stdout] --> src/day4.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | / if !pid.is_err() && value.len() == 9 { [INFO] [stdout] 68 | | true [INFO] [stdout] 69 | | } [INFO] [stdout] 70 | | else { [INFO] [stdout] 71 | | false [INFO] [stdout] 72 | | } [INFO] [stdout] | |_____________^ help: you can reduce it to: `!pid.is_err() && value.len() == 9` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/day5.rs:27:34 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn calculate_seat_ids(input: &Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 27 - pub fn calculate_seat_ids(input: &Vec) -> Vec { [INFO] [stdout] 27 + pub fn calculate_seat_ids(input: &[String]) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/day5.rs:38:30 [INFO] [stdout] | [INFO] [stdout] 38 | pub fn solve_part1(seat_ids: &Vec) -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 38 - pub fn solve_part1(seat_ids: &Vec) -> usize { [INFO] [stdout] 38 + pub fn solve_part1(seat_ids: &[usize]) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/day5.rs:60:30 [INFO] [stdout] | [INFO] [stdout] 60 | pub fn solve_part2(seat_ids: &mut Vec) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 60 - pub fn solve_part2(seat_ids: &mut Vec) -> usize { [INFO] [stdout] 60 + pub fn solve_part2(seat_ids: &mut [usize]) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/day7.rs:41:29 [INFO] [stdout] | [INFO] [stdout] 41 | pub fn get_map_part1(input: &Vec) -> HashMap> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 41 - pub fn get_map_part1(input: &Vec) -> HashMap> { [INFO] [stdout] 41 + pub fn get_map_part1(input: &[String]) -> HashMap> { [INFO] [stdout] | [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/day7.rs:50:12 [INFO] [stdout] | [INFO] [stdout] 50 | / match trim_description(v) { [INFO] [stdout] 51 | | Some((_, i)) => { [INFO] [stdout] 52 | | [INFO] [stdout] 53 | | match map.entry(i) { [INFO] [stdout] ... | [INFO] [stdout] 58 | | None => {} [INFO] [stdout] 59 | | } [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] 50 ~ if let Some((_, i)) = trim_description(v) { [INFO] [stdout] 51 + [INFO] [stdout] 52 + match map.entry(i) { [INFO] [stdout] 53 + Entry::Vacant(e) => { e.insert(vec![outer_bag.clone()]); }, [INFO] [stdout] 54 + Entry::Occupied(mut e) => { e.get_mut().push(outer_bag.clone()); } [INFO] [stdout] 55 + } [INFO] [stdout] 56 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/day7.rs:65:29 [INFO] [stdout] | [INFO] [stdout] 65 | pub fn get_map_part2(input: &Vec) -> HashMap> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 65 - pub fn get_map_part2(input: &Vec) -> HashMap> { [INFO] [stdout] 65 + pub fn get_map_part2(input: &[String]) -> HashMap> { [INFO] [stdout] | [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/day7.rs:74:13 [INFO] [stdout] | [INFO] [stdout] 74 | / match trim_description(v) [INFO] [stdout] 75 | | { [INFO] [stdout] 76 | | Some((num_of, bag_color)) => { [INFO] [stdout] 77 | | match map.entry(outer_bag.clone()) { [INFO] [stdout] ... | [INFO] [stdout] 82 | | None => {} [INFO] [stdout] 83 | | } [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] 74 ~ if let Some((num_of, bag_color)) = trim_description(v) { [INFO] [stdout] 75 + match map.entry(outer_bag.clone()) { [INFO] [stdout] 76 + Entry::Vacant(e) => { e.insert(vec![(bag_color.clone(), num_of)]); }, [INFO] [stdout] 77 + Entry::Occupied(mut e) => { e.get_mut().push((bag_color.clone(), num_of)); } [INFO] [stdout] 78 + } [INFO] [stdout] 79 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day7.rs:105:5 [INFO] [stdout] | [INFO] [stdout] 105 | return total+1; [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] 105 - return total+1; [INFO] [stdout] 105 + total+1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/day7.rs:103:37 [INFO] [stdout] | [INFO] [stdout] 103 | total += solve_part2(map, &color) * b.1 ; [INFO] [stdout] | ^^^^^^ help: change this to: `color` [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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/day8.rs:3:29 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn run_boot(input_vec : &Vec<(&str, i32)>) -> Result [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 3 - pub fn run_boot(input_vec : &Vec<(&str, i32)>) -> Result [INFO] [stdout] 3 + pub fn run_boot(input_vec : &[(&str, i32)]) -> Result [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: inequality checks against true can be replaced by a negation [INFO] [stdout] --> src/day8.rs:11:41 [INFO] [stdout] | [INFO] [stdout] 11 | while (index < input_vec.len()) && (visited[index] != true) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `!visited[index]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/day8.rs:15:15 [INFO] [stdout] | [INFO] [stdout] 15 | match &*curr_tuple.0 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if you would like to reborrow, try removing `&*`: `curr_tuple.0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] = note: `#[warn(clippy::borrow_deref_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/day8.rs:49:15 [INFO] [stdout] | [INFO] [stdout] 49 | match &*op.1.0 { [INFO] [stdout] | ^^^^^^^^ help: if you would like to reborrow, try removing `&*`: `op.1.0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/day2.rs:30:17 [INFO] [stdout] | [INFO] [stdout] 30 | / if x >= &min && x <= &max { [INFO] [stdout] 31 | | acc_valid += 1; [INFO] [stdout] 32 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 29 ~ Some(x) [INFO] [stdout] 30 ~ if x >= &min && x <= &max => { [INFO] [stdout] 31 | acc_valid += 1; [INFO] [stdout] 32 ~ }, [INFO] [stdout] | [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/day2.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | / match occurrences { [INFO] [stdout] 29 | | Some(x) => { [INFO] [stdout] 30 | | if x >= &min && x <= &max { [INFO] [stdout] 31 | | acc_valid += 1; [INFO] [stdout] ... | [INFO] [stdout] 34 | | None => {} [INFO] [stdout] 35 | | } [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] 28 ~ if let Some(x) = occurrences { [INFO] [stdout] 29 + if x >= &min && x <= &max { [INFO] [stdout] 30 + acc_valid += 1; [INFO] [stdout] 31 + } [INFO] [stdout] 32 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/day3.rs:33:18 [INFO] [stdout] | [INFO] [stdout] 33 | let slopes = vec![(1,1), (3,1), (5,1), (7,1), (1,2)]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `[(1,1), (3,1), (5,1), (7,1), (1,2)]` [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: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/day2.rs:54:17 [INFO] [stdout] | [INFO] [stdout] 54 | / if x == letter{ [INFO] [stdout] 55 | | true [INFO] [stdout] 56 | | } [INFO] [stdout] 57 | | else { [INFO] [stdout] 58 | | false [INFO] [stdout] 59 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 53 ~ Some(x) [INFO] [stdout] 54 ~ if x == letter=> { [INFO] [stdout] 55 | true [INFO] [stdout] 56 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/day2.rs:54:17 [INFO] [stdout] | [INFO] [stdout] 54 | / if x == letter{ [INFO] [stdout] 55 | | true [INFO] [stdout] 56 | | } [INFO] [stdout] 57 | | else { [INFO] [stdout] 58 | | false [INFO] [stdout] 59 | | } [INFO] [stdout] | |_________________^ help: you can reduce it to: `x == letter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] = note: `#[warn(clippy::needless_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/day3.rs:15:24 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn traverse(input: &Vec, x: usize, y: usize) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 15 - pub fn traverse(input: &Vec, x: usize, y: usize) -> i32 { [INFO] [stdout] 15 + pub fn traverse(input: &[String], x: usize, y: usize) -> i32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/day4.rs:67:16 [INFO] [stdout] | [INFO] [stdout] 67 | if !pid.is_err() && value.len() == 9 { [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `pid.is_ok()` [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/day4.rs:79:20 [INFO] [stdout] | [INFO] [stdout] 79 | if !color.is_err() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `color.is_ok()` [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: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/day4.rs:28:13 [INFO] [stdout] | [INFO] [stdout] 28 | year >= 1920 && 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: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/day4.rs:32:13 [INFO] [stdout] | [INFO] [stdout] 32 | year >= 2010 && 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: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/day4.rs:36:13 [INFO] [stdout] | [INFO] [stdout] 36 | year >= 2020 && 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: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/day4.rs:56:17 [INFO] [stdout] | [INFO] [stdout] 56 | height_d >= 150 && height_d <= 193 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(150..=193).contains(&height_d)` [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: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/day4.rs:59:17 [INFO] [stdout] | [INFO] [stdout] 59 | height_d >= 59 && height_d <= 76 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(59..=76).contains(&height_d)` [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-then-else expression returns a bool literal [INFO] [stdout] --> src/day4.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | / if !pid.is_err() && value.len() == 9 { [INFO] [stdout] 68 | | true [INFO] [stdout] 69 | | } [INFO] [stdout] 70 | | else { [INFO] [stdout] 71 | | false [INFO] [stdout] 72 | | } [INFO] [stdout] | |_____________^ help: you can reduce it to: `!pid.is_err() && value.len() == 9` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/day5.rs:27:34 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn calculate_seat_ids(input: &Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 27 - pub fn calculate_seat_ids(input: &Vec) -> Vec { [INFO] [stdout] 27 + pub fn calculate_seat_ids(input: &[String]) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/day5.rs:38:30 [INFO] [stdout] | [INFO] [stdout] 38 | pub fn solve_part1(seat_ids: &Vec) -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 38 - pub fn solve_part1(seat_ids: &Vec) -> usize { [INFO] [stdout] 38 + pub fn solve_part1(seat_ids: &[usize]) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/day5.rs:60:30 [INFO] [stdout] | [INFO] [stdout] 60 | pub fn solve_part2(seat_ids: &mut Vec) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 60 - pub fn solve_part2(seat_ids: &mut Vec) -> usize { [INFO] [stdout] 60 + pub fn solve_part2(seat_ids: &mut [usize]) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/day7.rs:41:29 [INFO] [stdout] | [INFO] [stdout] 41 | pub fn get_map_part1(input: &Vec) -> HashMap> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 41 - pub fn get_map_part1(input: &Vec) -> HashMap> { [INFO] [stdout] 41 + pub fn get_map_part1(input: &[String]) -> HashMap> { [INFO] [stdout] | [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/day7.rs:50:12 [INFO] [stdout] | [INFO] [stdout] 50 | / match trim_description(v) { [INFO] [stdout] 51 | | Some((_, i)) => { [INFO] [stdout] 52 | | [INFO] [stdout] 53 | | match map.entry(i) { [INFO] [stdout] ... | [INFO] [stdout] 58 | | None => {} [INFO] [stdout] 59 | | } [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] 50 ~ if let Some((_, i)) = trim_description(v) { [INFO] [stdout] 51 + [INFO] [stdout] 52 + match map.entry(i) { [INFO] [stdout] 53 + Entry::Vacant(e) => { e.insert(vec![outer_bag.clone()]); }, [INFO] [stdout] 54 + Entry::Occupied(mut e) => { e.get_mut().push(outer_bag.clone()); } [INFO] [stdout] 55 + } [INFO] [stdout] 56 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/day7.rs:65:29 [INFO] [stdout] | [INFO] [stdout] 65 | pub fn get_map_part2(input: &Vec) -> HashMap> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 65 - pub fn get_map_part2(input: &Vec) -> HashMap> { [INFO] [stdout] 65 + pub fn get_map_part2(input: &[String]) -> HashMap> { [INFO] [stdout] | [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/day7.rs:74:13 [INFO] [stdout] | [INFO] [stdout] 74 | / match trim_description(v) [INFO] [stdout] 75 | | { [INFO] [stdout] 76 | | Some((num_of, bag_color)) => { [INFO] [stdout] 77 | | match map.entry(outer_bag.clone()) { [INFO] [stdout] ... | [INFO] [stdout] 82 | | None => {} [INFO] [stdout] 83 | | } [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] 74 ~ if let Some((num_of, bag_color)) = trim_description(v) { [INFO] [stdout] 75 + match map.entry(outer_bag.clone()) { [INFO] [stdout] 76 + Entry::Vacant(e) => { e.insert(vec![(bag_color.clone(), num_of)]); }, [INFO] [stdout] 77 + Entry::Occupied(mut e) => { e.get_mut().push((bag_color.clone(), num_of)); } [INFO] [stdout] 78 + } [INFO] [stdout] 79 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day7.rs:105:5 [INFO] [stdout] | [INFO] [stdout] 105 | return total+1; [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] 105 - return total+1; [INFO] [stdout] 105 + total+1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/day7.rs:103:37 [INFO] [stdout] | [INFO] [stdout] 103 | total += solve_part2(map, &color) * b.1 ; [INFO] [stdout] | ^^^^^^ help: change this to: `color` [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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/day8.rs:3:29 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn run_boot(input_vec : &Vec<(&str, i32)>) -> Result [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 3 - pub fn run_boot(input_vec : &Vec<(&str, i32)>) -> Result [INFO] [stdout] 3 + pub fn run_boot(input_vec : &[(&str, i32)]) -> Result [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: inequality checks against true can be replaced by a negation [INFO] [stdout] --> src/day8.rs:11:41 [INFO] [stdout] | [INFO] [stdout] 11 | while (index < input_vec.len()) && (visited[index] != true) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `!visited[index]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/day8.rs:15:15 [INFO] [stdout] | [INFO] [stdout] 15 | match &*curr_tuple.0 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if you would like to reborrow, try removing `&*`: `curr_tuple.0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] = note: `#[warn(clippy::borrow_deref_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/day8.rs:49:15 [INFO] [stdout] | [INFO] [stdout] 49 | match &*op.1.0 { [INFO] [stdout] | ^^^^^^^^ help: if you would like to reborrow, try removing `&*`: `op.1.0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/day3.rs:33:18 [INFO] [stdout] | [INFO] [stdout] 33 | let slopes = vec![(1,1), (3,1), (5,1), (7,1), (1,2)]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `[(1,1), (3,1), (5,1), (7,1), (1,2)]` [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] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.68s [INFO] running `Command { std: "docker" "inspect" "8a0f8d9560f28ee531bfeec05e70030021c4065ce71747224546df0e7aa417de", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8a0f8d9560f28ee531bfeec05e70030021c4065ce71747224546df0e7aa417de", kill_on_drop: false }` [INFO] [stdout] 8a0f8d9560f28ee531bfeec05e70030021c4065ce71747224546df0e7aa417de