[INFO] cloning repository https://github.com/jtomaspm/aoc2025 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jtomaspm/aoc2025" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjtomaspm%2Faoc2025", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjtomaspm%2Faoc2025'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] f052695400d8890df0ad3c881c8faf7a7d2f49d1 [INFO] linting jtomaspm/aoc2025 against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjtomaspm%2Faoc2025" "/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/jtomaspm/aoc2025 [INFO] finished tweaking git repo https://github.com/jtomaspm/aoc2025 [INFO] tweaked toml for git repo https://github.com/jtomaspm/aoc2025 written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/jtomaspm/aoc2025 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/jtomaspm/aoc2025 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-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] 87faaaa4785e15e0f6295acb35143b80463c554078b174c92abed064f1c53db6 [INFO] running `Command { std: "docker" "start" "-a" "87faaaa4785e15e0f6295acb35143b80463c554078b174c92abed064f1c53db6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "87faaaa4785e15e0f6295acb35143b80463c554078b174c92abed064f1c53db6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "87faaaa4785e15e0f6295acb35143b80463c554078b174c92abed064f1c53db6", kill_on_drop: false }` [INFO] [stdout] 87faaaa4785e15e0f6295acb35143b80463c554078b174c92abed064f1c53db6 [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] 77df398e71d64aebcf19afd24177078de1a6b7b4b9d11f0c88db5cf5d7306c30 [INFO] running `Command { std: "docker" "start" "-a" "77df398e71d64aebcf19afd24177078de1a6b7b4b9d11f0c88db5cf5d7306c30", kill_on_drop: false }` [INFO] [stderr] Checking aoc2025 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/day07_laboratories.rs:44:45 [INFO] [stdout] | [INFO] [stdout] 44 | return (vec![to_l, to_r], vec![Move{from: from, to: to_l}, Move{from: from, to: to_r}]); [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `from` [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: redundant field names in struct initialization [INFO] [stdout] --> src/day07_laboratories.rs:44:73 [INFO] [stdout] | [INFO] [stdout] 44 | return (vec![to_l, to_r], vec![Move{from: from, to: to_l}, Move{from: from, to: to_r}]); [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `from` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day07_laboratories.rs:104:9 [INFO] [stdout] | [INFO] [stdout] 104 | let mut root: Box; [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `root` is assigned to, but never used [INFO] [stdout] --> src/day07_laboratories.rs:104:9 [INFO] [stdout] | [INFO] [stdout] 104 | let mut root: Box; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_root` instead [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `child` [INFO] [stdout] --> src/day07_laboratories.rs:112:17 [INFO] [stdout] | [INFO] [stdout] 112 | let child = Box::new(Node { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_child` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `root` is never read [INFO] [stdout] --> src/day07_laboratories.rs:107:13 [INFO] [stdout] | [INFO] [stdout] 107 | root = Box::new(Node { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `value`, `parent`, and `children` are never read [INFO] [stdout] --> src/day07_laboratories.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Node { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 4 | value: Beam, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 5 | parent: Option>, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 6 | children: Vec> [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PathTree` is never constructed [INFO] [stdout] --> src/day07_laboratories.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct PathTree { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day01_secret_entrance.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | return count; [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] 32 - return count; [INFO] [stdout] 32 + count [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day01_secret_entrance.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | return (Direction::Right, amount); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 40 - return (Direction::Right, amount); [INFO] [stdout] 40 + (Direction::Right, amount) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/day02_gift_shop.rs:12:16 [INFO] [stdout] | [INFO] [stdout] 12 | if !(window == block) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `(window != block)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day02_gift_shop.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 22 - return true; [INFO] [stdout] 22 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day02_gift_shop.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | return invalid_ids; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 33 - return invalid_ids; [INFO] [stdout] 33 + invalid_ids [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/day02_gift_shop.rs:48:39 [INFO] [stdout] | [INFO] [stdout] 48 | bounds[0].parse().expect(format!("invalid min range for ids: {}", bounds[0]).as_str()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("invalid min range for ids: {}", bounds[0]))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] = note: `#[warn(clippy::expect_fun_call)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/day02_gift_shop.rs:49:39 [INFO] [stdout] | [INFO] [stdout] 49 | bounds[1].parse().expect(format!("invalid max range for ids: {}", bounds[1]).as_str()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("invalid max range for ids: {}", bounds[1]))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day03_lobby.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | return joltage; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 33 - return joltage; [INFO] [stdout] 33 + joltage [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/day03_lobby.rs:16:63 [INFO] [stdout] | [INFO] [stdout] 16 | ...current].parse().expect(format!("failed to get battery joltage: {}", &bank[current..=current]).as_str()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("failed to get battery joltage: {}", &bank[current..=current]))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `digits` [INFO] [stdout] --> src/day03_lobby.rs:20:30 [INFO] [stdout] | [INFO] [stdout] 20 | for i in position+1..end { [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 [INFO] [stdout] | [INFO] [stdout] 20 - for i in position+1..end { [INFO] [stdout] 20 + for in digits.iter_mut().take(end).skip(position+1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day04_printing_department.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | return (result, next_map.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 26 - return (result, next_map.to_string()); [INFO] [stdout] 26 + (result, next_map.to_string()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day04_printing_department.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 54 | return results.iter().filter(|result| {**result}).count() < 4; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 54 - return results.iter().filter(|result| {**result}).count() < 4; [INFO] [stdout] 54 + results.iter().filter(|result| {**result}).count() < 4 [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/day04_printing_department.rs:29:23 [INFO] [stdout] | [INFO] [stdout] 29 | fn validate_spot(map: &Vec>, row: usize, col: usize) -> bool { [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] 29 - fn validate_spot(map: &Vec>, row: usize, col: usize) -> bool { [INFO] [stdout] 29 + fn validate_spot(map: &[Vec], row: usize, col: usize) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `r` is used to index `map` [INFO] [stdout] --> src/day04_printing_department.rs:47:14 [INFO] [stdout] | [INFO] [stdout] 47 | for r in start_row..=end_row { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 47 - for r in start_row..=end_row { [INFO] [stdout] 47 + for (r, ) in map.iter().enumerate().take(end_row + 1).skip(start_row) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `c` is used to index `map` [INFO] [stdout] --> src/day04_printing_department.rs:48:18 [INFO] [stdout] | [INFO] [stdout] 48 | for c in start_col..=end_col { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 48 - for c in start_col..=end_col { [INFO] [stdout] 48 + for (c, ) in map.iter().enumerate().take(end_col + 1).skip(start_col) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day05_cafeteria.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | return self.min <= other.max && other.min <= self.max; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 9 - return self.min <= other.max && other.min <= self.max; [INFO] [stdout] 9 + self.min <= other.max && other.min <= self.max [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day05_cafeteria.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | return self.max - self.min + 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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 20 - return self.max - self.min + 1; [INFO] [stdout] 20 + self.max - self.min + 1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day05_cafeteria.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | return false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 36 - return false; [INFO] [stdout] 36 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `peek` is used to index `right` [INFO] [stdout] --> src/day05_cafeteria.rs:28:21 [INFO] [stdout] | [INFO] [stdout] 28 | for peek in 0..right.len() { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 28 - for peek in 0..right.len() { [INFO] [stdout] 28 + for (peek, ) in right.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/day05_cafeteria.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 46 | if line == "" { break; } [INFO] [stdout] | ^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `line.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] = note: `#[warn(clippy::comparison_to_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day05_cafeteria.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 58 | return std::cmp::Ordering::Greater; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 58 - return std::cmp::Ordering::Greater; [INFO] [stdout] 58 + std::cmp::Ordering::Greater [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day06_trash_compactor.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | / return Expression { values, operation: match sign.as_str() { [INFO] [stdout] 21 | | "+" => Operation::Sum, [INFO] [stdout] 22 | | "*" => Operation::Multiplication, [INFO] [stdout] 23 | | invalid => panic!("invalid sign in data: {}", invalid) [INFO] [stdout] 24 | | } }; [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 20 ~ Expression { values, operation: match sign.as_str() { [INFO] [stdout] 21 + "+" => Operation::Sum, [INFO] [stdout] 22 + "*" => Operation::Multiplication, [INFO] [stdout] 23 + invalid => panic!("invalid sign in data: {}", invalid) [INFO] [stdout] 24 ~ } } [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/day06_trash_compactor.rs:14:26 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn new(data_col: &Vec) -> Expression { [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] 14 - pub fn new(data_col: &Vec) -> Expression { [INFO] [stdout] 14 + pub fn new(data_col: &[String]) -> Expression { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `data_col` [INFO] [stdout] --> src/day06_trash_compactor.rs:16:18 [INFO] [stdout] | [INFO] [stdout] 16 | for i in 0..data_col.len()-1 { [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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 16 - for i in 0..data_col.len()-1 { [INFO] [stdout] 16 + for in data_col.iter().take(data_col.len()-1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/day06_trash_compactor.rs:44:24 [INFO] [stdout] | [INFO] [stdout] 44 | if token != "" { [INFO] [stdout] | ^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!token.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/day06_trash_compactor.rs:52:16 [INFO] [stdout] | [INFO] [stdout] 52 | if token != "" { [INFO] [stdout] | ^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!token.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `row_index` is only used to index `data` [INFO] [stdout] --> src/day06_trash_compactor.rs:63:26 [INFO] [stdout] | [INFO] [stdout] 63 | for row_index in 0..data.len() { [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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 63 - for row_index in 0..data.len() { [INFO] [stdout] 63 + for in &data { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `row` is only used to index `input` [INFO] [stdout] --> src/day06_trash_compactor.rs:87:20 [INFO] [stdout] | [INFO] [stdout] 87 | for row in 0..input.len() - 1 { [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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 87 - for row in 0..input.len() - 1 { [INFO] [stdout] 87 + for in input.iter().take(input.len() - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/day06_trash_compactor.rs:96:12 [INFO] [stdout] | [INFO] [stdout] 96 | if number == "" { [INFO] [stdout] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `number.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/day06_trash_compactor.rs:104:8 [INFO] [stdout] | [INFO] [stdout] 104 | if raw_expression.len() != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!raw_expression.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: `Vec` is already on the heap, the boxing is unnecessary [INFO] [stdout] --> src/day07_laboratories.rs:6:15 [INFO] [stdout] | [INFO] [stdout] 6 | children: Vec> [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `Vec` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_box [INFO] [stdout] = note: `#[warn(clippy::vec_box)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day07_laboratories.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | return map[self.row][self.col] == '^'; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 26 - return map[self.row][self.col] == '^'; [INFO] [stdout] 26 + map[self.row][self.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/day07_laboratories.rs:25:37 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn should_split(&self, map: &Vec>) -> bool { [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 - pub fn should_split(&self, map: &Vec>) -> bool { [INFO] [stdout] 25 + pub fn should_split(&self, map: &[Vec]) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day07_laboratories.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | return self.row <= map.len() - 2 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 29 - return self.row <= map.len() - 2 [INFO] [stdout] 29 + self.row <= map.len() - 2 [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/day07_laboratories.rs:28:29 [INFO] [stdout] | [INFO] [stdout] 28 | fn can_move(&self, map: &Vec>) -> bool { [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] 28 - fn can_move(&self, map: &Vec>) -> bool { [INFO] [stdout] 28 + fn can_move(&self, map: &[Vec]) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day07_laboratories.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 38 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 38 - return None; [INFO] [stdout] 38 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day07_laboratories.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 44 | return (vec![to_l, to_r], vec![Move{from: from, to: to_l}, Move{from: from, to: to_r}]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 44 - return (vec![to_l, to_r], vec![Move{from: from, to: to_l}, Move{from: from, to: to_r}]); [INFO] [stdout] 44 + (vec![to_l, to_r], vec![Move{from: from, to: to_l}, Move{from: from, to: to_r}]) [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/day07_laboratories.rs:48:24 [INFO] [stdout] | [INFO] [stdout] 48 | pub fn find_start(map: &Vec>) -> Beam { [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] 48 - pub fn find_start(map: &Vec>) -> Beam { [INFO] [stdout] 48 + pub fn find_start(map: &[Vec]) -> Beam { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `col` is used to index `map` [INFO] [stdout] --> src/day07_laboratories.rs:50:20 [INFO] [stdout] | [INFO] [stdout] 50 | for col in 0..map[0].len() { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 50 - for col in 0..map[0].len() { [INFO] [stdout] 50 + for (col, ) in map.iter().enumerate().take(map[0].len()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day07_laboratories.rs:121:5 [INFO] [stdout] | [INFO] [stdout] 121 | return hits; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 121 - return hits; [INFO] [stdout] 121 + hits [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `beam_id` is used to index `beams` [INFO] [stdout] --> src/day07_laboratories.rs:70:24 [INFO] [stdout] | [INFO] [stdout] 70 | for beam_id in 0..beams.len() { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 70 - for beam_id in 0..beams.len() { [INFO] [stdout] 70 + for (beam_id, ) in beams.iter_mut().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/day07_laboratories.rs:72:45 [INFO] [stdout] | [INFO] [stdout] 72 | if let Some(m) = beam.move_down(&map) { [INFO] [stdout] | ^^^^ help: change this to: `map` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day07_laboratories.rs:90:13 [INFO] [stdout] | [INFO] [stdout] 90 | return std::cmp::Ordering::Greater; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 90 - return std::cmp::Ordering::Greater; [INFO] [stdout] 90 + std::cmp::Ordering::Greater [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::*` [INFO] [stdout] --> src/day05_cafeteria.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | use super::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/day07_laboratories.rs:44:45 [INFO] [stdout] | [INFO] [stdout] 44 | return (vec![to_l, to_r], vec![Move{from: from, to: to_l}, Move{from: from, to: to_r}]); [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `from` [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: redundant field names in struct initialization [INFO] [stdout] --> src/day07_laboratories.rs:44:73 [INFO] [stdout] | [INFO] [stdout] 44 | return (vec![to_l, to_r], vec![Move{from: from, to: to_l}, Move{from: from, to: to_r}]); [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `from` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::*` [INFO] [stdout] --> src/day07_laboratories.rs:137:9 [INFO] [stdout] | [INFO] [stdout] 137 | use super::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day07_laboratories.rs:104:9 [INFO] [stdout] | [INFO] [stdout] 104 | let mut root: Box; [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `root` is assigned to, but never used [INFO] [stdout] --> src/day07_laboratories.rs:104:9 [INFO] [stdout] | [INFO] [stdout] 104 | let mut root: Box; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_root` instead [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `child` [INFO] [stdout] --> src/day07_laboratories.rs:112:17 [INFO] [stdout] | [INFO] [stdout] 112 | let child = Box::new(Node { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_child` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `root` is never read [INFO] [stdout] --> src/day07_laboratories.rs:107:13 [INFO] [stdout] | [INFO] [stdout] 107 | root = Box::new(Node { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `value`, `parent`, and `children` are never read [INFO] [stdout] --> src/day07_laboratories.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Node { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 4 | value: Beam, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 5 | parent: Option>, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 6 | children: Vec> [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PathTree` is never constructed [INFO] [stdout] --> src/day07_laboratories.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct PathTree { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day01_secret_entrance.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | return count; [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] 32 - return count; [INFO] [stdout] 32 + count [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day01_secret_entrance.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | return (Direction::Right, amount); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 40 - return (Direction::Right, amount); [INFO] [stdout] 40 + (Direction::Right, amount) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/day02_gift_shop.rs:12:16 [INFO] [stdout] | [INFO] [stdout] 12 | if !(window == block) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `(window != block)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day02_gift_shop.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 22 - return true; [INFO] [stdout] 22 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day02_gift_shop.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | return invalid_ids; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 33 - return invalid_ids; [INFO] [stdout] 33 + invalid_ids [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/day02_gift_shop.rs:48:39 [INFO] [stdout] | [INFO] [stdout] 48 | bounds[0].parse().expect(format!("invalid min range for ids: {}", bounds[0]).as_str()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("invalid min range for ids: {}", bounds[0]))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] = note: `#[warn(clippy::expect_fun_call)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/day02_gift_shop.rs:49:39 [INFO] [stdout] | [INFO] [stdout] 49 | bounds[1].parse().expect(format!("invalid max range for ids: {}", bounds[1]).as_str()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("invalid max range for ids: {}", bounds[1]))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/day02_gift_shop.rs:66:9 [INFO] [stdout] | [INFO] [stdout] 66 | assert_eq!(false, validate_id("55")); [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] 66 - assert_eq!(false, validate_id("55")); [INFO] [stdout] 66 + assert!(!validate_id("55")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/day02_gift_shop.rs:67:9 [INFO] [stdout] | [INFO] [stdout] 67 | assert_eq!(false, validate_id("111")); [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] 67 - assert_eq!(false, validate_id("111")); [INFO] [stdout] 67 + assert!(!validate_id("111")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/day02_gift_shop.rs:68:9 [INFO] [stdout] | [INFO] [stdout] 68 | assert_eq!(false, validate_id("6464")); [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] 68 - assert_eq!(false, validate_id("6464")); [INFO] [stdout] 68 + assert!(!validate_id("6464")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/day02_gift_shop.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | assert_eq!(false, validate_id("123123")); [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] 69 - assert_eq!(false, validate_id("123123")); [INFO] [stdout] 69 + assert!(!validate_id("123123")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/day02_gift_shop.rs:70:9 [INFO] [stdout] | [INFO] [stdout] 70 | assert_eq!(true, validate_id("223123")); [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] 70 - assert_eq!(true, validate_id("223123")); [INFO] [stdout] 70 + assert!(validate_id("223123")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day03_lobby.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | return joltage; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 33 - return joltage; [INFO] [stdout] 33 + joltage [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/day03_lobby.rs:16:63 [INFO] [stdout] | [INFO] [stdout] 16 | ...current].parse().expect(format!("failed to get battery joltage: {}", &bank[current..=current]).as_str()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("failed to get battery joltage: {}", &bank[current..=current]))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `digits` [INFO] [stdout] --> src/day03_lobby.rs:20:30 [INFO] [stdout] | [INFO] [stdout] 20 | for i in position+1..end { [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 [INFO] [stdout] | [INFO] [stdout] 20 - for i in position+1..end { [INFO] [stdout] 20 + for in digits.iter_mut().take(end).skip(position+1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day04_printing_department.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | return (result, next_map.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 26 - return (result, next_map.to_string()); [INFO] [stdout] 26 + (result, next_map.to_string()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day04_printing_department.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 54 | return results.iter().filter(|result| {**result}).count() < 4; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 54 - return results.iter().filter(|result| {**result}).count() < 4; [INFO] [stdout] 54 + results.iter().filter(|result| {**result}).count() < 4 [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/day04_printing_department.rs:29:23 [INFO] [stdout] | [INFO] [stdout] 29 | fn validate_spot(map: &Vec>, row: usize, col: usize) -> bool { [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] 29 - fn validate_spot(map: &Vec>, row: usize, col: usize) -> bool { [INFO] [stdout] 29 + fn validate_spot(map: &[Vec], row: usize, col: usize) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `r` is used to index `map` [INFO] [stdout] --> src/day04_printing_department.rs:47:14 [INFO] [stdout] | [INFO] [stdout] 47 | for r in start_row..=end_row { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 47 - for r in start_row..=end_row { [INFO] [stdout] 47 + for (r, ) in map.iter().enumerate().take(end_row + 1).skip(start_row) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `c` is used to index `map` [INFO] [stdout] --> src/day04_printing_department.rs:48:18 [INFO] [stdout] | [INFO] [stdout] 48 | for c in start_col..=end_col { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 48 - for c in start_col..=end_col { [INFO] [stdout] 48 + for (c, ) in map.iter().enumerate().take(end_col + 1).skip(start_col) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day05_cafeteria.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | return self.min <= other.max && other.min <= self.max; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 9 - return self.min <= other.max && other.min <= self.max; [INFO] [stdout] 9 + self.min <= other.max && other.min <= self.max [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day05_cafeteria.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | return self.max - self.min + 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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 20 - return self.max - self.min + 1; [INFO] [stdout] 20 + self.max - self.min + 1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day05_cafeteria.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | return false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 36 - return false; [INFO] [stdout] 36 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `peek` is used to index `right` [INFO] [stdout] --> src/day05_cafeteria.rs:28:21 [INFO] [stdout] | [INFO] [stdout] 28 | for peek in 0..right.len() { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 28 - for peek in 0..right.len() { [INFO] [stdout] 28 + for (peek, ) in right.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/day05_cafeteria.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 46 | if line == "" { break; } [INFO] [stdout] | ^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `line.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] = note: `#[warn(clippy::comparison_to_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day05_cafeteria.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 58 | return std::cmp::Ordering::Greater; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 58 - return std::cmp::Ordering::Greater; [INFO] [stdout] 58 + std::cmp::Ordering::Greater [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day06_trash_compactor.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | / return Expression { values, operation: match sign.as_str() { [INFO] [stdout] 21 | | "+" => Operation::Sum, [INFO] [stdout] 22 | | "*" => Operation::Multiplication, [INFO] [stdout] 23 | | invalid => panic!("invalid sign in data: {}", invalid) [INFO] [stdout] 24 | | } }; [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 20 ~ Expression { values, operation: match sign.as_str() { [INFO] [stdout] 21 + "+" => Operation::Sum, [INFO] [stdout] 22 + "*" => Operation::Multiplication, [INFO] [stdout] 23 + invalid => panic!("invalid sign in data: {}", invalid) [INFO] [stdout] 24 ~ } } [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/day06_trash_compactor.rs:14:26 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn new(data_col: &Vec) -> Expression { [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] 14 - pub fn new(data_col: &Vec) -> Expression { [INFO] [stdout] 14 + pub fn new(data_col: &[String]) -> Expression { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `data_col` [INFO] [stdout] --> src/day06_trash_compactor.rs:16:18 [INFO] [stdout] | [INFO] [stdout] 16 | for i in 0..data_col.len()-1 { [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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 16 - for i in 0..data_col.len()-1 { [INFO] [stdout] 16 + for in data_col.iter().take(data_col.len()-1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/day06_trash_compactor.rs:44:24 [INFO] [stdout] | [INFO] [stdout] 44 | if token != "" { [INFO] [stdout] | ^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!token.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/day06_trash_compactor.rs:52:16 [INFO] [stdout] | [INFO] [stdout] 52 | if token != "" { [INFO] [stdout] | ^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!token.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `row_index` is only used to index `data` [INFO] [stdout] --> src/day06_trash_compactor.rs:63:26 [INFO] [stdout] | [INFO] [stdout] 63 | for row_index in 0..data.len() { [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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 63 - for row_index in 0..data.len() { [INFO] [stdout] 63 + for in &data { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `row` is only used to index `input` [INFO] [stdout] --> src/day06_trash_compactor.rs:87:20 [INFO] [stdout] | [INFO] [stdout] 87 | for row in 0..input.len() - 1 { [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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 87 - for row in 0..input.len() - 1 { [INFO] [stdout] 87 + for in input.iter().take(input.len() - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/day06_trash_compactor.rs:96:12 [INFO] [stdout] | [INFO] [stdout] 96 | if number == "" { [INFO] [stdout] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `number.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/day06_trash_compactor.rs:104:8 [INFO] [stdout] | [INFO] [stdout] 104 | if raw_expression.len() != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!raw_expression.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: `Vec` is already on the heap, the boxing is unnecessary [INFO] [stdout] --> src/day07_laboratories.rs:6:15 [INFO] [stdout] | [INFO] [stdout] 6 | children: Vec> [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `Vec` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_box [INFO] [stdout] = note: `#[warn(clippy::vec_box)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day07_laboratories.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | return map[self.row][self.col] == '^'; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 26 - return map[self.row][self.col] == '^'; [INFO] [stdout] 26 + map[self.row][self.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/day07_laboratories.rs:25:37 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn should_split(&self, map: &Vec>) -> bool { [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 - pub fn should_split(&self, map: &Vec>) -> bool { [INFO] [stdout] 25 + pub fn should_split(&self, map: &[Vec]) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day07_laboratories.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | return self.row <= map.len() - 2 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 29 - return self.row <= map.len() - 2 [INFO] [stdout] 29 + self.row <= map.len() - 2 [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/day07_laboratories.rs:28:29 [INFO] [stdout] | [INFO] [stdout] 28 | fn can_move(&self, map: &Vec>) -> bool { [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] 28 - fn can_move(&self, map: &Vec>) -> bool { [INFO] [stdout] 28 + fn can_move(&self, map: &[Vec]) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day07_laboratories.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 38 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 38 - return None; [INFO] [stdout] 38 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day07_laboratories.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 44 | return (vec![to_l, to_r], vec![Move{from: from, to: to_l}, Move{from: from, to: to_r}]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 44 - return (vec![to_l, to_r], vec![Move{from: from, to: to_l}, Move{from: from, to: to_r}]); [INFO] [stdout] 44 + (vec![to_l, to_r], vec![Move{from: from, to: to_l}, Move{from: from, to: to_r}]) [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/day07_laboratories.rs:48:24 [INFO] [stdout] | [INFO] [stdout] 48 | pub fn find_start(map: &Vec>) -> Beam { [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] 48 - pub fn find_start(map: &Vec>) -> Beam { [INFO] [stdout] 48 + pub fn find_start(map: &[Vec]) -> Beam { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `col` is used to index `map` [INFO] [stdout] --> src/day07_laboratories.rs:50:20 [INFO] [stdout] | [INFO] [stdout] 50 | for col in 0..map[0].len() { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 50 - for col in 0..map[0].len() { [INFO] [stdout] 50 + for (col, ) in map.iter().enumerate().take(map[0].len()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day07_laboratories.rs:121:5 [INFO] [stdout] | [INFO] [stdout] 121 | return hits; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 121 - return hits; [INFO] [stdout] 121 + hits [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `beam_id` is used to index `beams` [INFO] [stdout] --> src/day07_laboratories.rs:70:24 [INFO] [stdout] | [INFO] [stdout] 70 | for beam_id in 0..beams.len() { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 70 - for beam_id in 0..beams.len() { [INFO] [stdout] 70 + for (beam_id, ) in beams.iter_mut().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/day07_laboratories.rs:72:45 [INFO] [stdout] | [INFO] [stdout] 72 | if let Some(m) = beam.move_down(&map) { [INFO] [stdout] | ^^^^ help: change this to: `map` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day07_laboratories.rs:90:13 [INFO] [stdout] | [INFO] [stdout] 90 | return std::cmp::Ordering::Greater; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 90 - return std::cmp::Ordering::Greater; [INFO] [stdout] 90 + std::cmp::Ordering::Greater [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.48s [INFO] running `Command { std: "docker" "inspect" "77df398e71d64aebcf19afd24177078de1a6b7b4b9d11f0c88db5cf5d7306c30", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "77df398e71d64aebcf19afd24177078de1a6b7b4b9d11f0c88db5cf5d7306c30", kill_on_drop: false }` [INFO] [stdout] 77df398e71d64aebcf19afd24177078de1a6b7b4b9d11f0c88db5cf5d7306c30