[INFO] cloning repository https://github.com/straend/aoc2021 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/straend/aoc2021" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fstraend%2Faoc2021", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fstraend%2Faoc2021'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 8486f8e82a0942d1add11aa04de8e5aceb6486ab [INFO] linting straend/aoc2021 against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fstraend%2Faoc2021" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/straend/aoc2021 [INFO] finished tweaking git repo https://github.com/straend/aoc2021 [INFO] tweaked toml for git repo https://github.com/straend/aoc2021 written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/straend/aoc2021 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/straend/aoc2021 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] Downloading crates ... [INFO] [stderr] Downloaded num v0.4.0 [INFO] [stderr] Downloaded autocfg v1.0.1 [INFO] [stderr] Downloaded num-iter v0.1.42 [INFO] [stderr] Downloaded num-integer v0.1.44 [INFO] [stderr] Downloaded either v1.6.1 [INFO] [stderr] Downloaded num-traits v0.2.14 [INFO] [stderr] Downloaded num-complex v0.4.0 [INFO] [stderr] Downloaded num-rational v0.4.0 [INFO] [stderr] Downloaded itertools v0.10.3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] dae39198268efd978118b3b827dafb9c4edf432bd58026ddadc373a98eb5a489 [INFO] running `Command { std: "docker" "start" "-a" "dae39198268efd978118b3b827dafb9c4edf432bd58026ddadc373a98eb5a489", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "dae39198268efd978118b3b827dafb9c4edf432bd58026ddadc373a98eb5a489", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "dae39198268efd978118b3b827dafb9c4edf432bd58026ddadc373a98eb5a489", kill_on_drop: false }` [INFO] [stdout] dae39198268efd978118b3b827dafb9c4edf432bd58026ddadc373a98eb5a489 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 180aba29061b8424cb8d43cb24615f5a2ff573084d64bed8426af46d45d7ebdf [INFO] running `Command { std: "docker" "start" "-a" "180aba29061b8424cb8d43cb24615f5a2ff573084d64bed8426af46d45d7ebdf", kill_on_drop: false }` [INFO] [stderr] Compiling autocfg v1.0.1 [INFO] [stderr] Checking either v1.6.1 [INFO] [stderr] Checking itertools v0.10.3 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Compiling num-integer v0.1.44 [INFO] [stderr] Compiling num-iter v0.1.42 [INFO] [stderr] Compiling num-rational v0.4.0 [INFO] [stderr] Checking num-complex v0.4.0 [INFO] [stderr] Checking num v0.4.0 [INFO] [stderr] Checking aoc2021 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: empty line after outer attribute [INFO] [stdout] --> src/main.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / #[allow(dead_code, unused_imports)] [INFO] [stdout] 2 | | [INFO] [stdout] | |_^ [INFO] [stdout] 3 | use std::io; [INFO] [stdout] | - the attribute applies to this `use` import [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_outer_attr [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_outer_attr)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the attribute should apply to the crate use an inner attribute [INFO] [stdout] | [INFO] [stdout] 1 | #![allow(dead_code, unused_imports)] [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/day2.rs:62:38 [INFO] [stdout] | [INFO] [stdout] 62 | Ok(Instruction{direction: d, steps: steps}) [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `steps` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after outer attribute [INFO] [stdout] --> src/main.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / #[allow(dead_code, unused_imports)] [INFO] [stdout] 2 | | [INFO] [stdout] | |_^ [INFO] [stdout] 3 | use std::io; [INFO] [stdout] | - the attribute applies to this `use` import [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_outer_attr [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_outer_attr)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the attribute should apply to the crate use an inner attribute [INFO] [stdout] | [INFO] [stdout] 1 | #![allow(dead_code, unused_imports)] [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/day2.rs:62:38 [INFO] [stdout] | [INFO] [stdout] 62 | Ok(Instruction{direction: d, steps: steps}) [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `steps` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` 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/helpers.rs:34:22 [INFO] [stdout] | [INFO] [stdout] 34 | pub fn mean(numbers: &Vec) -> f32 { [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] 34 - pub fn mean(numbers: &Vec) -> f32 { [INFO] [stdout] 34 + pub fn mean(numbers: &[i32]) -> f32 { [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/helpers.rs:42:24 [INFO] [stdout] | [INFO] [stdout] 42 | pub fn median(numbers: &mut Vec) -> 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] help: change this to [INFO] [stdout] | [INFO] [stdout] 42 - pub fn median(numbers: &mut Vec) -> i32 { [INFO] [stdout] 42 + pub fn median(numbers: &mut [i32]) -> i32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/helpers.rs:47:8 [INFO] [stdout] | [INFO] [stdout] 47 | if numbers.len() % 2 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `numbers.len().is_multiple_of(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` 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/day1.rs:22:32 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn nr_of_increased(values: &Vec) -> i64 { [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] 22 - pub fn nr_of_increased(values: &Vec) -> i64 { [INFO] [stdout] 22 + pub fn nr_of_increased(values: &[i64]) -> i64 { [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/day1.rs:27:41 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn nr_of_increased_averaged(values: &Vec) -> i64 { [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 nr_of_increased_averaged(values: &Vec) -> i64 { [INFO] [stdout] 27 + pub fn nr_of_increased_averaged(values: &[i64]) -> i64 { [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/day2.rs:66:25 [INFO] [stdout] | [INFO] [stdout] 66 | fn calc_position(input: &Vec) -> Point { [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] 66 - fn calc_position(input: &Vec) -> Point { [INFO] [stdout] 66 + fn calc_position(input: &[Instruction]) -> Point { [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/day2.rs:76:26 [INFO] [stdout] | [INFO] [stdout] 76 | fn calc_position2(input: &Vec) -> Point2 { [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] 76 - fn calc_position2(input: &Vec) -> Point2 { [INFO] [stdout] 76 + fn calc_position2(input: &[Instruction]) -> Point2 { [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/day3.rs:31:27 [INFO] [stdout] | [INFO] [stdout] 31 | fn get_gamma_epsilon(inp: &Vec) -> (u64, u64) { [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] 31 - fn get_gamma_epsilon(inp: &Vec) -> (u64, u64) { [INFO] [stdout] 31 + fn get_gamma_epsilon(inp: &[String]) -> (u64, u64) { [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/day3.rs:44:20 [INFO] [stdout] | [INFO] [stdout] 44 | fn get_oxygen(inp: &Vec) -> u64 { [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] 44 - fn get_oxygen(inp: &Vec) -> u64 { [INFO] [stdout] 44 + fn get_oxygen(inp: &[String]) -> u64 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression can be written more simply using `.retain()` [INFO] [stdout] --> src/day3.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | m_data = m_data.into_iter().filter(|x| x.chars().nth(i).unwrap() == c).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling `.retain()` instead: `m_data.retain(|x| x.chars().nth(i).unwrap() == c)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_retain [INFO] [stdout] = note: `#[warn(clippy::manual_retain)]` 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:58:17 [INFO] [stdout] | [INFO] [stdout] 58 | fn get_co2(inp: &Vec) -> u64 { [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] 58 - fn get_co2(inp: &Vec) -> u64 { [INFO] [stdout] 58 + fn get_co2(inp: &[String]) -> u64 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression can be written more simply using `.retain()` [INFO] [stdout] --> src/day3.rs:64:9 [INFO] [stdout] | [INFO] [stdout] 64 | m_data = m_data.into_iter().filter(|x| x.chars().nth(i).unwrap() == c).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling `.retain()` instead: `m_data.retain(|x| x.chars().nth(i).unwrap() == c)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_retain [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> src/day4.rs:7:33 [INFO] [stdout] | [INFO] [stdout] 7 | if i > 0 && i % 5 == 0 {println!("");} [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] = note: `#[warn(clippy::println_empty_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> src/day4.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | println!(""); [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::str::Split<'_, &str>` [INFO] [stdout] --> src/day4.rs:41:19 [INFO] [stdout] | [INFO] [stdout] 41 | let numbers = numbers_s.split(",").into_iter().map(|x| x.parse::().unwrap()).collect::>(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `numbers_s.split(",")` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `flat_map` with an identity function [INFO] [stdout] --> src/day4.rs:56:41 [INFO] [stdout] | [INFO] [stdout] 56 | let b1 = ch.iter().map(|c| c.iter().flat_map(|x| x).collect::>()).collect::>>(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `flatten()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#flat_map_identity [INFO] [stdout] = note: `#[warn(clippy::flat_map_identity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/day4.rs:74:69 [INFO] [stdout] | [INFO] [stdout] 74 | match boards_to_check.iter().position(|&x| x == i as usize) { [INFO] [stdout] | ^^^^^^^^^^ help: try: `i` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/day4.rs:83:31 [INFO] [stdout] | [INFO] [stdout] 83 | } else if boards_to_check.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `boards_to_check.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` 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/day6.rs:17:21 [INFO] [stdout] | [INFO] [stdout] 17 | fn lanternfish(inp: &Vec, days: usize) -> u64 { [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] 17 - fn lanternfish(inp: &Vec, days: usize) -> u64 { [INFO] [stdout] 17 + fn lanternfish(inp: &[usize], days: usize) -> u64 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `counts` [INFO] [stdout] --> src/day6.rs:20:14 [INFO] [stdout] | [INFO] [stdout] 20 | for i in 0..6 { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 20 - for i in 0..6 { [INFO] [stdout] 20 + for (i, ) in counts.iter_mut().enumerate().take(6) { [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:25:34 [INFO] [stdout] | [INFO] [stdout] 25 | fn fuel_required_1_per_step(inp: &Vec) -> 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] help: change this to [INFO] [stdout] | [INFO] [stdout] 25 - fn fuel_required_1_per_step(inp: &Vec) -> i32 { [INFO] [stdout] 25 + fn fuel_required_1_per_step(inp: &[i32]) -> i32 { [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:32:30 [INFO] [stdout] | [INFO] [stdout] 32 | let mean = helpers::mean(&inp).floor() as i32; [INFO] [stdout] | ^^^^ help: change this to: `inp` [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: match expression looks like `matches!` macro [INFO] [stdout] --> src/day8.rs:43:34 [INFO] [stdout] | [INFO] [stdout] 43 | input.split(" ").filter(|&x| match x.len() { [INFO] [stdout] | __________________________________^ [INFO] [stdout] 44 | | 2..=4 => true, [INFO] [stdout] 45 | | 7 => true, [INFO] [stdout] 46 | | _=> false, [INFO] [stdout] 47 | | }).collect::>().len() as u32 [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 43 - input.split(" ").filter(|&x| match x.len() { [INFO] [stdout] 44 - 2..=4 => true, [INFO] [stdout] 45 - 7 => true, [INFO] [stdout] 46 - _=> false, [INFO] [stdout] 47 - }).collect::>().len() as u32 [INFO] [stdout] 43 + input.split(" ").filter(|&x| matches!(x.len(), 2..=4 | 7)).collect::>().len() as u32 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/day8.rs:107:49 [INFO] [stdout] | [INFO] [stdout] 107 | let sum1:u32 = out.to_vec().into_iter().map(|x| count_1478 (x)).sum(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `count_1478` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_vec` [INFO] [stdout] --> src/day8.rs:107:20 [INFO] [stdout] | [INFO] [stdout] 107 | let sum1:u32 = out.to_vec().into_iter().map(|x| count_1478 (x)).sum(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `out.iter().copied()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] = note: `#[warn(clippy::unnecessary_to_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/day9.rs:49:24 [INFO] [stdout] | [INFO] [stdout] 49 | let left = !l || l && val < data[row][col-1]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 49 - let left = !l || l && val < data[row][col-1]; [INFO] [stdout] 49 + let left = !(l && val >= data[row][col-1]); [INFO] [stdout] | [INFO] [stdout] 49 - let left = !l || l && val < data[row][col-1]; [INFO] [stdout] 49 + let left = !l || val < data[row][col-1]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/day9.rs:50:25 [INFO] [stdout] | [INFO] [stdout] 50 | let rigth = !r || r && val < data[row][col+1]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 50 - let rigth = !r || r && val < data[row][col+1]; [INFO] [stdout] 50 + let rigth = !(r && val >= data[row][col+1]); [INFO] [stdout] | [INFO] [stdout] 50 - let rigth = !r || r && val < data[row][col+1]; [INFO] [stdout] 50 + let rigth = !r || val < data[row][col+1]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/day9.rs:51:22 [INFO] [stdout] | [INFO] [stdout] 51 | let up = !u || u && val < data[row-1][col]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 51 - let up = !u || u && val < data[row-1][col]; [INFO] [stdout] 51 + let up = !(u && val >= data[row-1][col]); [INFO] [stdout] | [INFO] [stdout] 51 - let up = !u || u && val < data[row-1][col]; [INFO] [stdout] 51 + let up = !u || val < data[row-1][col]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/day9.rs:52:24 [INFO] [stdout] | [INFO] [stdout] 52 | let down = !d || d && val < data[row+1][col]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 52 - let down = !d || d && val < data[row+1][col]; [INFO] [stdout] 52 + let down = !(d && val >= data[row+1][col]); [INFO] [stdout] | [INFO] [stdout] 52 - let down = !d || d && val < data[row+1][col]; [INFO] [stdout] 52 + let down = !d || val < data[row+1][col]; [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/day9.rs:31:24 [INFO] [stdout] | [INFO] [stdout] 31 | fn get_lowpoints(data: &Vec>) -> Vec<(usize, 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] 31 - fn get_lowpoints(data: &Vec>) -> Vec<(usize, usize)> { [INFO] [stdout] 31 + fn get_lowpoints(data: &[Vec]) -> Vec<(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/helpers.rs:34:22 [INFO] [stdout] | [INFO] [stdout] 34 | pub fn mean(numbers: &Vec) -> f32 { [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] 34 - pub fn mean(numbers: &Vec) -> f32 { [INFO] [stdout] 34 + pub fn mean(numbers: &[i32]) -> f32 { [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/helpers.rs:42:24 [INFO] [stdout] | [INFO] [stdout] 42 | pub fn median(numbers: &mut Vec) -> 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] help: change this to [INFO] [stdout] | [INFO] [stdout] 42 - pub fn median(numbers: &mut Vec) -> i32 { [INFO] [stdout] 42 + pub fn median(numbers: &mut [i32]) -> i32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/helpers.rs:47:8 [INFO] [stdout] | [INFO] [stdout] 47 | if numbers.len() % 2 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `numbers.len().is_multiple_of(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/day0.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | pub fn even_number(number: i32) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | pub fn run() -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = note: `#[warn(clippy::items_after_test_module)]` on by default [INFO] [stdout] = help: move the items to before the test module was defined [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/day0.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | assert_eq!(false, even_number(1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_assert_comparison)]` on by default [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 10 - assert_eq!(false, even_number(1)); [INFO] [stdout] 10 + assert!(!even_number(1)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/day0.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | assert_eq!(true, even_number(2)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 11 - assert_eq!(true, even_number(2)); [INFO] [stdout] 11 + assert!(even_number(2)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/day0.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | assert_eq!(false, even_number(3)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 12 - assert_eq!(false, even_number(3)); [INFO] [stdout] 12 + assert!(!even_number(3)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/day0.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | assert_eq!(true, even_number(4)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 13 - assert_eq!(true, even_number(4)); [INFO] [stdout] 13 + assert!(even_number(4)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/day0.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | assert_eq!(false, even_number(5)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 14 - assert_eq!(false, even_number(5)); [INFO] [stdout] 14 + assert!(!even_number(5)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/day1.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn nr_of_increased(values: &Vec) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn nr_of_increased_averaged(values: &Vec) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn run() -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = help: move the items to before the test module was defined [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/day1.rs:22:32 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn nr_of_increased(values: &Vec) -> i64 { [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] 22 - pub fn nr_of_increased(values: &Vec) -> i64 { [INFO] [stdout] 22 + pub fn nr_of_increased(values: &[i64]) -> i64 { [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/day1.rs:27:41 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn nr_of_increased_averaged(values: &Vec) -> i64 { [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 nr_of_increased_averaged(values: &Vec) -> i64 { [INFO] [stdout] 27 + pub fn nr_of_increased_averaged(values: &[i64]) -> i64 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/day2.rs:91:1 [INFO] [stdout] | [INFO] [stdout] 91 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 117 | pub fn run() -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = help: move the items to before the test module was defined [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/day2.rs:66:25 [INFO] [stdout] | [INFO] [stdout] 66 | fn calc_position(input: &Vec) -> Point { [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] 66 - fn calc_position(input: &Vec) -> Point { [INFO] [stdout] 66 + fn calc_position(input: &[Instruction]) -> Point { [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/day2.rs:76:26 [INFO] [stdout] | [INFO] [stdout] 76 | fn calc_position2(input: &Vec) -> Point2 { [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] 76 - fn calc_position2(input: &Vec) -> Point2 { [INFO] [stdout] 76 + fn calc_position2(input: &[Instruction]) -> Point2 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/day3.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | fn get_gamma_epsilon(inp: &Vec) -> (u64, u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 44 | fn get_oxygen(inp: &Vec) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | fn get_co2(inp: &Vec) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn run() -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = help: move the items to before the test module was defined [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:31:27 [INFO] [stdout] | [INFO] [stdout] 31 | fn get_gamma_epsilon(inp: &Vec) -> (u64, u64) { [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] 31 - fn get_gamma_epsilon(inp: &Vec) -> (u64, u64) { [INFO] [stdout] 31 + fn get_gamma_epsilon(inp: &[String]) -> (u64, u64) { [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/day3.rs:44:20 [INFO] [stdout] | [INFO] [stdout] 44 | fn get_oxygen(inp: &Vec) -> u64 { [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] 44 - fn get_oxygen(inp: &Vec) -> u64 { [INFO] [stdout] 44 + fn get_oxygen(inp: &[String]) -> u64 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression can be written more simply using `.retain()` [INFO] [stdout] --> src/day3.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | m_data = m_data.into_iter().filter(|x| x.chars().nth(i).unwrap() == c).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling `.retain()` instead: `m_data.retain(|x| x.chars().nth(i).unwrap() == c)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_retain [INFO] [stdout] = note: `#[warn(clippy::manual_retain)]` 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:58:17 [INFO] [stdout] | [INFO] [stdout] 58 | fn get_co2(inp: &Vec) -> u64 { [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] 58 - fn get_co2(inp: &Vec) -> u64 { [INFO] [stdout] 58 + fn get_co2(inp: &[String]) -> u64 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression can be written more simply using `.retain()` [INFO] [stdout] --> src/day3.rs:64:9 [INFO] [stdout] | [INFO] [stdout] 64 | m_data = m_data.into_iter().filter(|x| x.chars().nth(i).unwrap() == c).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling `.retain()` instead: `m_data.retain(|x| x.chars().nth(i).unwrap() == c)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_retain [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> src/day4.rs:7:33 [INFO] [stdout] | [INFO] [stdout] 7 | if i > 0 && i % 5 == 0 {println!("");} [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] = note: `#[warn(clippy::println_empty_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> src/day4.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | println!(""); [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::str::Split<'_, &str>` [INFO] [stdout] --> src/day4.rs:41:19 [INFO] [stdout] | [INFO] [stdout] 41 | let numbers = numbers_s.split(",").into_iter().map(|x| x.parse::().unwrap()).collect::>(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `numbers_s.split(",")` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `flat_map` with an identity function [INFO] [stdout] --> src/day4.rs:56:41 [INFO] [stdout] | [INFO] [stdout] 56 | let b1 = ch.iter().map(|c| c.iter().flat_map(|x| x).collect::>()).collect::>>(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `flatten()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#flat_map_identity [INFO] [stdout] = note: `#[warn(clippy::flat_map_identity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/day4.rs:74:69 [INFO] [stdout] | [INFO] [stdout] 74 | match boards_to_check.iter().position(|&x| x == i as usize) { [INFO] [stdout] | ^^^^^^^^^^ help: try: `i` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/day4.rs:83:31 [INFO] [stdout] | [INFO] [stdout] 83 | } else if boards_to_check.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `boards_to_check.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/day5.rs:45:1 [INFO] [stdout] | [INFO] [stdout] 45 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 79 | fn get_vents(vents: Vec<&Line>) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 121 | pub fn run() -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = help: move the items to before the test module was defined [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/day6.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | fn lanternfish(inp: &Vec, days: usize) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 44 | pub fn run() -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = help: move the items to before the test module was defined [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/day6.rs:17:21 [INFO] [stdout] | [INFO] [stdout] 17 | fn lanternfish(inp: &Vec, days: usize) -> u64 { [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] 17 - fn lanternfish(inp: &Vec, days: usize) -> u64 { [INFO] [stdout] 17 + fn lanternfish(inp: &[usize], days: usize) -> u64 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `counts` [INFO] [stdout] --> src/day6.rs:20:14 [INFO] [stdout] | [INFO] [stdout] 20 | for i in 0..6 { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 20 - for i in 0..6 { [INFO] [stdout] 20 + for (i, ) in counts.iter_mut().enumerate().take(6) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/day7.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 25 | fn fuel_required_1_per_step(inp: &Vec) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | fn fuel_required_proportional(inp: &Vec) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | pub fn run() -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = help: move the items to before the test module was defined [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:25:34 [INFO] [stdout] | [INFO] [stdout] 25 | fn fuel_required_1_per_step(inp: &Vec) -> 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] help: change this to [INFO] [stdout] | [INFO] [stdout] 25 - fn fuel_required_1_per_step(inp: &Vec) -> i32 { [INFO] [stdout] 25 + fn fuel_required_1_per_step(inp: &[i32]) -> i32 { [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:32:30 [INFO] [stdout] | [INFO] [stdout] 32 | let mean = helpers::mean(&inp).floor() as i32; [INFO] [stdout] | ^^^^ help: change this to: `inp` [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: items after a test module [INFO] [stdout] --> src/day8.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | fn count_1478(input: &str) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | fn get_seven_output(input: &str, out: &str) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 100 | pub fn run() -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = help: move the items to before the test module was defined [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/day8.rs:43:34 [INFO] [stdout] | [INFO] [stdout] 43 | input.split(" ").filter(|&x| match x.len() { [INFO] [stdout] | __________________________________^ [INFO] [stdout] 44 | | 2..=4 => true, [INFO] [stdout] 45 | | 7 => true, [INFO] [stdout] 46 | | _=> false, [INFO] [stdout] 47 | | }).collect::>().len() as u32 [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 43 - input.split(" ").filter(|&x| match x.len() { [INFO] [stdout] 44 - 2..=4 => true, [INFO] [stdout] 45 - 7 => true, [INFO] [stdout] 46 - _=> false, [INFO] [stdout] 47 - }).collect::>().len() as u32 [INFO] [stdout] 43 + input.split(" ").filter(|&x| matches!(x.len(), 2..=4 | 7)).collect::>().len() as u32 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/day8.rs:107:49 [INFO] [stdout] | [INFO] [stdout] 107 | let sum1:u32 = out.to_vec().into_iter().map(|x| count_1478 (x)).sum(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `count_1478` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_vec` [INFO] [stdout] --> src/day8.rs:107:20 [INFO] [stdout] | [INFO] [stdout] 107 | let sum1:u32 = out.to_vec().into_iter().map(|x| count_1478 (x)).sum(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `out.iter().copied()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] = note: `#[warn(clippy::unnecessary_to_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/day9.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | fn get_lowpoints(data: &Vec>) -> Vec<(usize, usize)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | fn check(y:usize, x: usize, data: &Vec>, checked: &mut Vec>) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn run() -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = help: move the items to before the test module was defined [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/day9.rs:49:24 [INFO] [stdout] | [INFO] [stdout] 49 | let left = !l || l && val < data[row][col-1]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 49 - let left = !l || l && val < data[row][col-1]; [INFO] [stdout] 49 + let left = !(l && val >= data[row][col-1]); [INFO] [stdout] | [INFO] [stdout] 49 - let left = !l || l && val < data[row][col-1]; [INFO] [stdout] 49 + let left = !l || val < data[row][col-1]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/day9.rs:50:25 [INFO] [stdout] | [INFO] [stdout] 50 | let rigth = !r || r && val < data[row][col+1]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 50 - let rigth = !r || r && val < data[row][col+1]; [INFO] [stdout] 50 + let rigth = !(r && val >= data[row][col+1]); [INFO] [stdout] | [INFO] [stdout] 50 - let rigth = !r || r && val < data[row][col+1]; [INFO] [stdout] 50 + let rigth = !r || val < data[row][col+1]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/day9.rs:51:22 [INFO] [stdout] | [INFO] [stdout] 51 | let up = !u || u && val < data[row-1][col]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 51 - let up = !u || u && val < data[row-1][col]; [INFO] [stdout] 51 + let up = !(u && val >= data[row-1][col]); [INFO] [stdout] | [INFO] [stdout] 51 - let up = !u || u && val < data[row-1][col]; [INFO] [stdout] 51 + let up = !u || val < data[row-1][col]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/day9.rs:52:24 [INFO] [stdout] | [INFO] [stdout] 52 | let down = !d || d && val < data[row+1][col]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 52 - let down = !d || d && val < data[row+1][col]; [INFO] [stdout] 52 + let down = !(d && val >= data[row+1][col]); [INFO] [stdout] | [INFO] [stdout] 52 - let down = !d || d && val < data[row+1][col]; [INFO] [stdout] 52 + let down = !d || val < data[row+1][col]; [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/day9.rs:31:24 [INFO] [stdout] | [INFO] [stdout] 31 | fn get_lowpoints(data: &Vec>) -> Vec<(usize, 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] 31 - fn get_lowpoints(data: &Vec>) -> Vec<(usize, usize)> { [INFO] [stdout] 31 + fn get_lowpoints(data: &[Vec]) -> Vec<(usize, usize)> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/day10.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 51 | fn find_corrupted(inp: &str) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | fn fix_lines(inp: &str) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 104 | pub fn run() -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = help: move the items to before the test module was defined [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.14s [INFO] running `Command { std: "docker" "inspect" "180aba29061b8424cb8d43cb24615f5a2ff573084d64bed8426af46d45d7ebdf", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "180aba29061b8424cb8d43cb24615f5a2ff573084d64bed8426af46d45d7ebdf", kill_on_drop: false }` [INFO] [stdout] 180aba29061b8424cb8d43cb24615f5a2ff573084d64bed8426af46d45d7ebdf