[INFO] cloning repository https://github.com/Ichbinjoe/aoc [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Ichbinjoe/aoc" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FIchbinjoe%2Faoc", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FIchbinjoe%2Faoc'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 0532878a758634166feffd54d008f07642dcfa67 [INFO] linting Ichbinjoe/aoc against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FIchbinjoe%2Faoc" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Ichbinjoe/aoc [INFO] finished tweaking git repo https://github.com/Ichbinjoe/aoc [INFO] tweaked toml for git repo https://github.com/Ichbinjoe/aoc written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Ichbinjoe/aoc 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/Ichbinjoe/aoc 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 security-framework-sys v2.4.2 [INFO] [stderr] Downloaded futures-sink v0.3.18 [INFO] [stderr] Downloaded futures-task v0.3.18 [INFO] [stderr] Downloaded pkg-config v0.3.22 [INFO] [stderr] Downloaded futures-core v0.3.18 [INFO] [stderr] Downloaded structopt-derive v0.4.13 [INFO] [stderr] Downloaded anyhow v1.0.34 [INFO] [stderr] Downloaded socket2 v0.4.2 [INFO] [stderr] Downloaded ryu v1.0.6 [INFO] [stderr] Downloaded security-framework v2.4.2 [INFO] [stderr] Downloaded structopt v0.3.20 [INFO] [stderr] Downloaded http v0.2.5 [INFO] [stderr] Downloaded hyper v0.14.15 [INFO] [stderr] Downloaded futures-util v0.3.18 [INFO] [stderr] Downloaded serde_json v1.0.72 [INFO] [stderr] Downloaded h2 v0.3.7 [INFO] [stderr] Downloaded reqwest v0.11.7 [INFO] [stderr] Downloaded syn v1.0.82 [INFO] [stderr] Downloaded openssl-sys v0.9.71 [INFO] [stderr] Downloaded futures-channel v0.3.18 [INFO] [stderr] Downloaded httparse v1.5.1 [INFO] [stderr] Downloaded tokio v1.14.0 [INFO] [stderr] Downloaded libc v0.2.109 [INFO] [stderr] Downloaded encoding_rs v0.8.29 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] e282a416f9451ef154eb37ccb632e019e74a2920349898dfe92de40c02f341aa [INFO] running `Command { std: "docker" "start" "-a" "e282a416f9451ef154eb37ccb632e019e74a2920349898dfe92de40c02f341aa", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e282a416f9451ef154eb37ccb632e019e74a2920349898dfe92de40c02f341aa", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e282a416f9451ef154eb37ccb632e019e74a2920349898dfe92de40c02f341aa", kill_on_drop: false }` [INFO] [stdout] e282a416f9451ef154eb37ccb632e019e74a2920349898dfe92de40c02f341aa [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] 6893a9abff3375aa8d649add1cc2db7eaefcdcb3814922f1d34993f68d4f7496 [INFO] running `Command { std: "docker" "start" "-a" "6893a9abff3375aa8d649add1cc2db7eaefcdcb3814922f1d34993f68d4f7496", kill_on_drop: false }` [INFO] [stderr] Compiling autocfg v1.0.1 [INFO] [stderr] Compiling libc v0.2.109 [INFO] [stderr] Compiling log v0.4.14 [INFO] [stderr] Compiling memchr v2.3.4 [INFO] [stderr] Compiling cc v1.0.72 [INFO] [stderr] Checking pin-project-lite v0.2.7 [INFO] [stderr] Compiling pkg-config v0.3.22 [INFO] [stderr] Compiling proc-macro2 v1.0.32 [INFO] [stderr] Compiling futures-core v0.3.18 [INFO] [stderr] Compiling futures-task v0.3.18 [INFO] [stderr] Compiling openssl v0.10.38 [INFO] [stderr] Compiling syn v1.0.82 [INFO] [stderr] Compiling futures-util v0.3.18 [INFO] [stderr] Checking tracing-core v0.1.21 [INFO] [stderr] Checking http v0.2.5 [INFO] [stderr] Compiling native-tls v0.2.8 [INFO] [stderr] Checking once_cell v1.8.0 [INFO] [stderr] Checking futures-sink v0.3.18 [INFO] [stderr] Compiling futures-channel v0.3.18 [INFO] [stderr] Compiling httparse v1.5.1 [INFO] [stderr] Checking tinyvec v1.5.1 [INFO] [stderr] Compiling ryu v1.0.6 [INFO] [stderr] Checking slab v0.4.5 [INFO] [stderr] Checking openssl-probe v0.1.4 [INFO] [stderr] Compiling serde v1.0.130 [INFO] [stderr] Checking tracing v0.1.29 [INFO] [stderr] Checking want v0.3.0 [INFO] [stderr] Checking unicode-bidi v0.3.7 [INFO] [stderr] Compiling tokio v1.14.0 [INFO] [stderr] Compiling indexmap v1.7.0 [INFO] [stderr] Compiling encoding_rs v0.8.29 [INFO] [stderr] Checking unicode-width v0.1.8 [INFO] [stderr] Compiling unicode-segmentation v1.7.1 [INFO] [stderr] Checking textwrap v0.11.0 [INFO] [stderr] Compiling anyhow v1.0.34 [INFO] [stderr] Compiling either v1.6.1 [INFO] [stderr] Checking aho-corasick v0.7.15 [INFO] [stderr] Checking regex-syntax v0.6.21 [INFO] [stderr] Checking ipnet v2.3.1 [INFO] [stderr] Compiling quote v1.0.7 [INFO] [stderr] Compiling heck v0.3.1 [INFO] [stderr] Checking mio v0.7.14 [INFO] [stderr] Checking socket2 v0.4.2 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Compiling itertools v0.9.0 [INFO] [stderr] Compiling openssl-sys v0.9.71 [INFO] [stderr] Checking unicode-normalization v0.1.19 [INFO] [stderr] Checking clap v2.33.3 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Checking http-body v0.4.4 [INFO] [stderr] Checking idna v0.2.3 [INFO] [stderr] Checking url v2.2.2 [INFO] [stderr] Checking regex v1.4.2 [INFO] [stderr] Checking serde_urlencoded v0.7.0 [INFO] [stderr] Checking tokio-util v0.6.9 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Checking tokio-native-tls v0.3.0 [INFO] [stderr] Checking h2 v0.3.7 [INFO] [stderr] Compiling structopt-derive v0.4.13 [INFO] [stderr] Compiling proc v0.1.0 (/opt/rustwide/workdir/proc) [INFO] [stderr] Checking structopt v0.3.20 [INFO] [stderr] Checking hyper v0.14.15 [INFO] [stderr] Checking hyper-tls v0.5.0 [INFO] [stderr] Checking reqwest v0.11.7 [INFO] [stderr] Checking aoc v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `Context` [INFO] [stdout] --> src/y2021p3.rs:2:22 [INFO] [stdout] | [INFO] [stdout] 2 | use anyhow::{anyhow, Context}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str::FromStr` [INFO] [stdout] --> src/y2021p3.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::str::FromStr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::*` [INFO] [stdout] --> src/y2020p12.rs:144:9 [INFO] [stdout] | [INFO] [stdout] 144 | 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: unused import: `Context` [INFO] [stdout] --> src/y2021p3.rs:2:22 [INFO] [stdout] | [INFO] [stdout] 2 | use anyhow::{anyhow, Context}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str::FromStr` [INFO] [stdout] --> src/y2021p3.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::str::FromStr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/y2019p3.rs:271:13 [INFO] [stdout] | [INFO] [stdout] 271 | let mut path1 = build_path_from_str("R8,U5,L5,D3").unwrap(); [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 does not need to be mutable [INFO] [stdout] --> src/y2019p3.rs:272:13 [INFO] [stdout] | [INFO] [stdout] 272 | let mut path2 = build_path_from_str("U7,R6,D4,L4").unwrap(); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `path1` [INFO] [stdout] --> src/y2019p3.rs:271:13 [INFO] [stdout] | [INFO] [stdout] 271 | let mut path1 = build_path_from_str("R8,U5,L5,D3").unwrap(); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_path1` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `path2` [INFO] [stdout] --> src/y2019p3.rs:272:13 [INFO] [stdout] | [INFO] [stdout] 272 | let mut path2 = build_path_from_str("U7,R6,D4,L4").unwrap(); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_path2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `IllegalStore` is never constructed [INFO] [stdout] --> src/intcode.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 25 | pub enum IntcodeError { [INFO] [stdout] | ------------ variant in this enum [INFO] [stdout] ... [INFO] [stdout] 31 | IllegalStore, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IntcodeError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `data_mut` is never used [INFO] [stdout] --> src/intcode.rs:492:12 [INFO] [stdout] | [INFO] [stdout] 380 | impl> IntcodeVM { [INFO] [stdout] | ---------------------------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 492 | pub fn data_mut<'a>(&'a mut self) -> &'a mut D { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `invert` is never used [INFO] [stdout] --> src/y2021p3.rs:15:8 [INFO] [stdout] | [INFO] [stdout] 14 | impl PopResult { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] 15 | fn invert(self) -> PopResult { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/intcode.rs:293:22 [INFO] [stdout] | [INFO] [stdout] 293 | let v = val.read(&vm)?; [INFO] [stdout] | ^^^ help: change this to: `vm` [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: variant `IllegalStore` is never constructed [INFO] [stdout] --> src/intcode.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 25 | pub enum IntcodeError { [INFO] [stdout] | ------------ variant in this enum [INFO] [stdout] ... [INFO] [stdout] 31 | IllegalStore, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IntcodeError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `data_mut` is never used [INFO] [stdout] --> src/intcode.rs:492:12 [INFO] [stdout] | [INFO] [stdout] 380 | impl> IntcodeVM { [INFO] [stdout] | ---------------------------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 492 | pub fn data_mut<'a>(&'a mut self) -> &'a mut D { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `IOProg` is never constructed [INFO] [stdout] --> src/intcode.rs:543:12 [INFO] [stdout] | [INFO] [stdout] 543 | struct IOProg { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `invert` is never used [INFO] [stdout] --> src/y2021p3.rs:15:8 [INFO] [stdout] | [INFO] [stdout] 14 | impl PopResult { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] 15 | fn invert(self) -> PopResult { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/intcode.rs:293:22 [INFO] [stdout] | [INFO] [stdout] 293 | let v = val.read(&vm)?; [INFO] [stdout] | ^^^ help: change this to: `vm` [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: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/intcode.rs:488:17 [INFO] [stdout] | [INFO] [stdout] 488 | pub fn data<'a>(&'a self) -> &'a D { [INFO] [stdout] | ^^ ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 488 - pub fn data<'a>(&'a self) -> &'a D { [INFO] [stdout] 488 + pub fn data(&self) -> &D { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/intcode.rs:489:9 [INFO] [stdout] | [INFO] [stdout] 489 | return &self.data; [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] 489 - return &self.data; [INFO] [stdout] 489 + &self.data [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/intcode.rs:492:21 [INFO] [stdout] | [INFO] [stdout] 492 | pub fn data_mut<'a>(&'a mut self) -> &'a mut D { [INFO] [stdout] | ^^ ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 492 - pub fn data_mut<'a>(&'a mut self) -> &'a mut D { [INFO] [stdout] 492 + pub fn data_mut(&mut self) -> &mut D { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/intcode.rs:493:9 [INFO] [stdout] | [INFO] [stdout] 493 | return &mut self.data; [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] 493 - return &mut self.data; [INFO] [stdout] 493 + &mut self.data [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/y2019p2.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | return Ok(vm.data()[0]); [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 Ok(vm.data()[0]); [INFO] [stdout] 20 + Ok(vm.data()[0]) [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/y2019p2.rs:7:24 [INFO] [stdout] | [INFO] [stdout] 7 | fn run_variation(data: &Vec, noun: i64, verb: i64) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 7 ~ fn run_variation(data: &[i64], noun: i64, verb: i64) -> Result { [INFO] [stdout] 8 ~ let mut running_data = data.to_owned(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/y2019p3.rs:130:75 [INFO] [stdout] | [INFO] [stdout] 130 | if let Some((intersection, distance)) = line_a.intersects(&line_b) { [INFO] [stdout] | ^^^^^^^ help: change this to: `line_b` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/y2020p1.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | return Err(anyhow::anyhow!("No answer :(")); [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] 32 - return Err(anyhow::anyhow!("No answer :(")); [INFO] [stdout] 32 + Err(anyhow::anyhow!("No answer :(")) [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/y2020p11.rs:11:13 [INFO] [stdout] | [INFO] [stdout] 11 | fn state(m: &Vec>, x: i64, y: i64) -> State { [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] 11 - fn state(m: &Vec>, x: i64, y: i64) -> State { [INFO] [stdout] 11 + fn state(m: &[Vec], x: i64, y: i64) -> State { [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/y2020p11.rs:15:16 [INFO] [stdout] | [INFO] [stdout] 15 | fn occupied(m: &Vec>, x: i64, y: i64) -> 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] 15 - fn occupied(m: &Vec>, x: i64, y: i64) -> bool { [INFO] [stdout] 15 + fn occupied(m: &[Vec], x: i64, y: i64) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/y2020p11.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | / m.get(x as usize) [INFO] [stdout] 20 | | .and_then(|a| a.get(y as usize)) [INFO] [stdout] 21 | | .map(|s| *s == State::Occupied) [INFO] [stdout] 22 | | .or_else(|| Some(false)) [INFO] [stdout] | |____________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] = note: `#[warn(clippy::unnecessary_lazy_evaluations)]` on by default [INFO] [stdout] help: use `or` instead [INFO] [stdout] | [INFO] [stdout] 22 - .or_else(|| Some(false)) [INFO] [stdout] 22 + .or(Some(false)) [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/y2020p11.rs:27:16 [INFO] [stdout] | [INFO] [stdout] 27 | fn raytrace(m: &Vec>, mut x: i64, mut y: i64, d: (i64, i64)) -> 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] 27 - fn raytrace(m: &Vec>, mut x: i64, mut y: i64, d: (i64, i64)) -> bool { [INFO] [stdout] 27 + fn raytrace(m: &[Vec], mut x: i64, mut y: i64, d: (i64, i64)) -> bool { [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/y2020p11.rs:49:66 [INFO] [stdout] | [INFO] [stdout] 49 | fn step(x: i64, y: i64, c: &mut i64, old: &Vec>, new: &mut Vec>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 49 - fn step(x: i64, y: i64, c: &mut i64, old: &Vec>, new: &mut Vec>) { [INFO] [stdout] 49 + fn step(x: i64, y: i64, c: &mut i64, old: &Vec>, new: &mut [Vec]) { [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/y2020p11.rs:93:67 [INFO] [stdout] | [INFO] [stdout] 93 | fn step2(x: i64, y: i64, c: &mut i64, old: &Vec>, new: &mut Vec>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 93 - fn step2(x: i64, y: i64, c: &mut i64, old: &Vec>, new: &mut Vec>) { [INFO] [stdout] 93 + fn step2(x: i64, y: i64, c: &mut i64, old: &Vec>, new: &mut [Vec]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/y2020p11.rs:145:25 [INFO] [stdout] | [INFO] [stdout] 145 | if occupied(&n, x1 as i64, y1 as i64) { [INFO] [stdout] | ^^ help: change this to: `n` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i64` -> `i64`) [INFO] [stdout] --> src/y2020p11.rs:145:29 [INFO] [stdout] | [INFO] [stdout] 145 | if occupied(&n, x1 as i64, y1 as i64) { [INFO] [stdout] | ^^^^^^^^^ help: try: `x1` [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: casting to the same type is unnecessary (`i64` -> `i64`) [INFO] [stdout] --> src/y2020p11.rs:145:40 [INFO] [stdout] | [INFO] [stdout] 145 | if occupied(&n, x1 as i64, y1 as i64) { [INFO] [stdout] | ^^^^^^^^^ help: try: `y1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/y2020p13.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | 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] 11 - return true; [INFO] [stdout] 11 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/y2020p13.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | if v % fuckfuckfuck != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!v.is_multiple_of(*fuckfuckfuck)` [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: consider using `sort_by_key` [INFO] [stdout] --> src/y2020p13.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | m.sort_by(|(_, diff1), (_, diff2)| diff1.cmp(diff2)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 36 - m.sort_by(|(_, diff1), (_, diff2)| diff1.cmp(diff2)); [INFO] [stdout] 36 + m.sort_by_key(|(_, diff1)| *diff1); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `Option.and_then(|x| Some(y))`, which is more succinctly expressed as `map(|x| y)` [INFO] [stdout] --> src/y2020p4.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 43 | s.and_then(|a| Some(re.is_match(a))).unwrap_or(false) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `s.map(|a| re.is_match(a))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bind_instead_of_map [INFO] [stdout] = note: `#[warn(clippy::bind_instead_of_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/intcode.rs:488:17 [INFO] [stdout] | [INFO] [stdout] 488 | pub fn data<'a>(&'a self) -> &'a D { [INFO] [stdout] | ^^ ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 488 - pub fn data<'a>(&'a self) -> &'a D { [INFO] [stdout] 488 + pub fn data(&self) -> &D { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/intcode.rs:489:9 [INFO] [stdout] | [INFO] [stdout] 489 | return &self.data; [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] 489 - return &self.data; [INFO] [stdout] 489 + &self.data [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/intcode.rs:492:21 [INFO] [stdout] | [INFO] [stdout] 492 | pub fn data_mut<'a>(&'a mut self) -> &'a mut D { [INFO] [stdout] | ^^ ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 492 - pub fn data_mut<'a>(&'a mut self) -> &'a mut D { [INFO] [stdout] 492 + pub fn data_mut(&mut self) -> &mut D { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/intcode.rs:493:9 [INFO] [stdout] | [INFO] [stdout] 493 | return &mut self.data; [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] 493 - return &mut self.data; [INFO] [stdout] 493 + &mut self.data [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/y2020p4.rs:138:12 [INFO] [stdout] | [INFO] [stdout] 138 | if line.len() == 0 { [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#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/y2020p5.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 65 | return SplitResult::Range(low, high); [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] 65 - return SplitResult::Range(low, high); [INFO] [stdout] 65 + SplitResult::Range(low, high) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Iterator::find` [INFO] [stdout] --> src/y2020p5.rs:87:5 [INFO] [stdout] | [INFO] [stdout] 87 | / for i in 1..1023 { [INFO] [stdout] 88 | | if filled_seats[i - 1] && !filled_seats[i] && filled_seats[i + 1] { [INFO] [stdout] 89 | | return Some(i); [INFO] [stdout] ... | [INFO] [stdout] 92 | | None [INFO] [stdout] | |________^ help: replace with an iterator: `(1..1023).find(|&i| filled_seats[i - 1] && !filled_seats[i] && filled_seats[i + 1])` [INFO] [stdout] | [INFO] [stdout] = note: you may need to dereference some variables [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_find [INFO] [stdout] = note: `#[warn(clippy::manual_find)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/y2020p6.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 16 | if line.len() == 0 { [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#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/y2020p7.rs:64:9 [INFO] [stdout] | [INFO] [stdout] 64 | 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] 64 - return false; [INFO] [stdout] 64 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/y2020p7.rs:57:44 [INFO] [stdout] | [INFO] [stdout] 57 | if let Some(contents) = br.get(&t) { [INFO] [stdout] | ^^ help: change this to: `t` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/y2020p7.rs:74:9 [INFO] [stdout] | [INFO] [stdout] 74 | 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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 74 - return count; [INFO] [stdout] 74 + count [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/y2020p7.rs:70:35 [INFO] [stdout] | [INFO] [stdout] 70 | let contents = br.get(&bid).unwrap(); [INFO] [stdout] | ^^^^ help: change this to: `bid` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/y2020p8.rs:116:9 [INFO] [stdout] | [INFO] [stdout] 116 | return Terminate::Normal; [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] 116 - return Terminate::Normal; [INFO] [stdout] 116 + Terminate::Normal [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/y2019p2.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | return Ok(vm.data()[0]); [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 Ok(vm.data()[0]); [INFO] [stdout] 20 + Ok(vm.data()[0]) [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/y2019p2.rs:7:24 [INFO] [stdout] | [INFO] [stdout] 7 | fn run_variation(data: &Vec, noun: i64, verb: i64) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 7 ~ fn run_variation(data: &[i64], noun: i64, verb: i64) -> Result { [INFO] [stdout] 8 ~ let mut running_data = data.to_owned(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/y2020p9.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | 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] 23 - return false; [INFO] [stdout] 23 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/y2021p1.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | return Ok(()); [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 Ok(()); [INFO] [stdout] 36 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/y2021p2.rs:71:5 [INFO] [stdout] | [INFO] [stdout] 71 | return Ok(()); [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] 71 - return Ok(()); [INFO] [stdout] 71 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/y2019p3.rs:130:75 [INFO] [stdout] | [INFO] [stdout] 130 | if let Some((intersection, distance)) = line_a.intersects(&line_b) { [INFO] [stdout] | ^^^^^^^ help: change this to: `line_b` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/y2021p3.rs:64:5 [INFO] [stdout] | [INFO] [stdout] 64 | return v; [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] 64 - return v; [INFO] [stdout] 64 + v [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/y2021p3.rs:43:30 [INFO] [stdout] | [INFO] [stdout] 43 | fn filter_and_popularize(vs: &Vec, w: usize, func: impl Fn(PopResult) -> 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] 43 - fn filter_and_popularize(vs: &Vec, w: usize, func: impl Fn(PopResult) -> u64) -> u64 { [INFO] [stdout] 43 + fn filter_and_popularize(vs: &[u64], w: usize, func: impl Fn(PopResult) -> u64) -> u64 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/y2021p3.rs:147:5 [INFO] [stdout] | [INFO] [stdout] 147 | return Ok(()); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 147 - return Ok(()); [INFO] [stdout] 147 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/y2021p4.rs:58:11 [INFO] [stdout] | [INFO] [stdout] 58 | while !lines.next().is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `lines.next().is_some()` [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/y2020p1.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | return Err(anyhow::anyhow!("No answer :(")); [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] 32 - return Err(anyhow::anyhow!("No answer :(")); [INFO] [stdout] 32 + Err(anyhow::anyhow!("No answer :(")) [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/y2020p11.rs:11:13 [INFO] [stdout] | [INFO] [stdout] 11 | fn state(m: &Vec>, x: i64, y: i64) -> State { [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] 11 - fn state(m: &Vec>, x: i64, y: i64) -> State { [INFO] [stdout] 11 + fn state(m: &[Vec], x: i64, y: i64) -> State { [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/y2020p11.rs:15:16 [INFO] [stdout] | [INFO] [stdout] 15 | fn occupied(m: &Vec>, x: i64, y: i64) -> 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] 15 - fn occupied(m: &Vec>, x: i64, y: i64) -> bool { [INFO] [stdout] 15 + fn occupied(m: &[Vec], x: i64, y: i64) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/y2020p11.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | / m.get(x as usize) [INFO] [stdout] 20 | | .and_then(|a| a.get(y as usize)) [INFO] [stdout] 21 | | .map(|s| *s == State::Occupied) [INFO] [stdout] 22 | | .or_else(|| Some(false)) [INFO] [stdout] | |____________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] = note: `#[warn(clippy::unnecessary_lazy_evaluations)]` on by default [INFO] [stdout] help: use `or` instead [INFO] [stdout] | [INFO] [stdout] 22 - .or_else(|| Some(false)) [INFO] [stdout] 22 + .or(Some(false)) [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/y2020p11.rs:27:16 [INFO] [stdout] | [INFO] [stdout] 27 | fn raytrace(m: &Vec>, mut x: i64, mut y: i64, d: (i64, i64)) -> 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] 27 - fn raytrace(m: &Vec>, mut x: i64, mut y: i64, d: (i64, i64)) -> bool { [INFO] [stdout] 27 + fn raytrace(m: &[Vec], mut x: i64, mut y: i64, d: (i64, i64)) -> bool { [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/y2020p11.rs:49:66 [INFO] [stdout] | [INFO] [stdout] 49 | fn step(x: i64, y: i64, c: &mut i64, old: &Vec>, new: &mut Vec>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 49 - fn step(x: i64, y: i64, c: &mut i64, old: &Vec>, new: &mut Vec>) { [INFO] [stdout] 49 + fn step(x: i64, y: i64, c: &mut i64, old: &Vec>, new: &mut [Vec]) { [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/y2020p11.rs:93:67 [INFO] [stdout] | [INFO] [stdout] 93 | fn step2(x: i64, y: i64, c: &mut i64, old: &Vec>, new: &mut Vec>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 93 - fn step2(x: i64, y: i64, c: &mut i64, old: &Vec>, new: &mut Vec>) { [INFO] [stdout] 93 + fn step2(x: i64, y: i64, c: &mut i64, old: &Vec>, new: &mut [Vec]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/y2020p11.rs:145:25 [INFO] [stdout] | [INFO] [stdout] 145 | if occupied(&n, x1 as i64, y1 as i64) { [INFO] [stdout] | ^^ help: change this to: `n` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i64` -> `i64`) [INFO] [stdout] --> src/y2020p11.rs:145:29 [INFO] [stdout] | [INFO] [stdout] 145 | if occupied(&n, x1 as i64, y1 as i64) { [INFO] [stdout] | ^^^^^^^^^ help: try: `x1` [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: casting to the same type is unnecessary (`i64` -> `i64`) [INFO] [stdout] --> src/y2020p11.rs:145:40 [INFO] [stdout] | [INFO] [stdout] 145 | if occupied(&n, x1 as i64, y1 as i64) { [INFO] [stdout] | ^^^^^^^^^ help: try: `y1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:77:30 [INFO] [stdout] | [INFO] [stdout] 77 | y2019p1::y2019p1(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:80:30 [INFO] [stdout] | [INFO] [stdout] 80 | y2019p2::y2019p2(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:83:30 [INFO] [stdout] | [INFO] [stdout] 83 | y2019p3::y2019p3(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:95:30 [INFO] [stdout] | [INFO] [stdout] 95 | y2020p1::y2020p1(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:98:30 [INFO] [stdout] | [INFO] [stdout] 98 | y2020p2::y2020p2(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/y2020p13.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | 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] 11 - return true; [INFO] [stdout] 11 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:101:30 [INFO] [stdout] | [INFO] [stdout] 101 | y2020p3::y2020p3(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/y2020p13.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | if v % fuckfuckfuck != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!v.is_multiple_of(*fuckfuckfuck)` [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: consider using `sort_by_key` [INFO] [stdout] --> src/y2020p13.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | m.sort_by(|(_, diff1), (_, diff2)| diff1.cmp(diff2)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 36 - m.sort_by(|(_, diff1), (_, diff2)| diff1.cmp(diff2)); [INFO] [stdout] 36 + m.sort_by_key(|(_, diff1)| *diff1); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:104:30 [INFO] [stdout] | [INFO] [stdout] 104 | y2020p4::y2020p4(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:107:30 [INFO] [stdout] | [INFO] [stdout] 107 | y2020p5::y2020p5(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:110:30 [INFO] [stdout] | [INFO] [stdout] 110 | y2020p6::y2020p6(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:113:30 [INFO] [stdout] | [INFO] [stdout] 113 | y2020p7::y2020p7(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:116:30 [INFO] [stdout] | [INFO] [stdout] 116 | y2020p8::y2020p8(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:119:30 [INFO] [stdout] | [INFO] [stdout] 119 | y2020p9::y2020p9(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:122:32 [INFO] [stdout] | [INFO] [stdout] 122 | y2020p10::y2020p10(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:125:32 [INFO] [stdout] | [INFO] [stdout] 125 | y2020p11::y2020p11(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:128:32 [INFO] [stdout] | [INFO] [stdout] 128 | y2020p12::y2020p12(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:131:32 [INFO] [stdout] | [INFO] [stdout] 131 | y2020p13::y2020p13(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:140:30 [INFO] [stdout] | [INFO] [stdout] 140 | y2021p1::y2021p1(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:143:30 [INFO] [stdout] | [INFO] [stdout] 143 | y2021p2::y2021p2(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:146:30 [INFO] [stdout] | [INFO] [stdout] 146 | y2021p3::y2021p3(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:149:30 [INFO] [stdout] | [INFO] [stdout] 149 | y2021p4::y2021p4(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/y2020p4.rs:47:1 [INFO] [stdout] | [INFO] [stdout] 47 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 100 | impl Passport { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 131 | pub fn y2020p4(input: &PathBuf) -> Result<(), anyhow::Error> { [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: using `Option.and_then(|x| Some(y))`, which is more succinctly expressed as `map(|x| y)` [INFO] [stdout] --> src/y2020p4.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 43 | s.and_then(|a| Some(re.is_match(a))).unwrap_or(false) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `s.map(|a| re.is_match(a))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bind_instead_of_map [INFO] [stdout] = note: `#[warn(clippy::bind_instead_of_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/y2020p4.rs:138:12 [INFO] [stdout] | [INFO] [stdout] 138 | if line.len() == 0 { [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#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/y2020p5.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 65 | return SplitResult::Range(low, high); [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] 65 - return SplitResult::Range(low, high); [INFO] [stdout] 65 + SplitResult::Range(low, high) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Iterator::find` [INFO] [stdout] --> src/y2020p5.rs:87:5 [INFO] [stdout] | [INFO] [stdout] 87 | / for i in 1..1023 { [INFO] [stdout] 88 | | if filled_seats[i - 1] && !filled_seats[i] && filled_seats[i + 1] { [INFO] [stdout] 89 | | return Some(i); [INFO] [stdout] ... | [INFO] [stdout] 92 | | None [INFO] [stdout] | |________^ help: replace with an iterator: `(1..1023).find(|&i| filled_seats[i - 1] && !filled_seats[i] && filled_seats[i + 1])` [INFO] [stdout] | [INFO] [stdout] = note: you may need to dereference some variables [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_find [INFO] [stdout] = note: `#[warn(clippy::manual_find)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/y2020p6.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 16 | if line.len() == 0 { [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#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/y2020p7.rs:64:9 [INFO] [stdout] | [INFO] [stdout] 64 | 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] 64 - return false; [INFO] [stdout] 64 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/y2020p7.rs:57:44 [INFO] [stdout] | [INFO] [stdout] 57 | if let Some(contents) = br.get(&t) { [INFO] [stdout] | ^^ help: change this to: `t` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/y2020p7.rs:74:9 [INFO] [stdout] | [INFO] [stdout] 74 | 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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 74 - return count; [INFO] [stdout] 74 + count [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/y2020p7.rs:70:35 [INFO] [stdout] | [INFO] [stdout] 70 | let contents = br.get(&bid).unwrap(); [INFO] [stdout] | ^^^^ help: change this to: `bid` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/y2020p8.rs:116:9 [INFO] [stdout] | [INFO] [stdout] 116 | return Terminate::Normal; [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] 116 - return Terminate::Normal; [INFO] [stdout] 116 + Terminate::Normal [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/y2020p8.rs:145:9 [INFO] [stdout] | [INFO] [stdout] 145 | assert!(false); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] = note: `#[warn(clippy::assertions_on_constants)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/y2020p9.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | 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] 23 - return false; [INFO] [stdout] 23 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/y2021p1.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | return Ok(()); [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 Ok(()); [INFO] [stdout] 36 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/y2021p2.rs:71:5 [INFO] [stdout] | [INFO] [stdout] 71 | return Ok(()); [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] 71 - return Ok(()); [INFO] [stdout] 71 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/y2021p3.rs:82:1 [INFO] [stdout] | [INFO] [stdout] 82 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 97 | pub fn y2021p3(input: &PathBuf) -> Result<(), anyhow::Error> { [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: unneeded `return` statement [INFO] [stdout] --> src/y2021p3.rs:64:5 [INFO] [stdout] | [INFO] [stdout] 64 | return v; [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] 64 - return v; [INFO] [stdout] 64 + v [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/y2021p3.rs:43:30 [INFO] [stdout] | [INFO] [stdout] 43 | fn filter_and_popularize(vs: &Vec, w: usize, func: impl Fn(PopResult) -> 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] 43 - fn filter_and_popularize(vs: &Vec, w: usize, func: impl Fn(PopResult) -> u64) -> u64 { [INFO] [stdout] 43 + fn filter_and_popularize(vs: &[u64], w: usize, func: impl Fn(PopResult) -> u64) -> u64 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/y2021p3.rs:147:5 [INFO] [stdout] | [INFO] [stdout] 147 | return Ok(()); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 147 - return Ok(()); [INFO] [stdout] 147 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/y2021p4.rs:58:11 [INFO] [stdout] | [INFO] [stdout] 58 | while !lines.next().is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `lines.next().is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:77:30 [INFO] [stdout] | [INFO] [stdout] 77 | y2019p1::y2019p1(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:80:30 [INFO] [stdout] | [INFO] [stdout] 80 | y2019p2::y2019p2(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:83:30 [INFO] [stdout] | [INFO] [stdout] 83 | y2019p3::y2019p3(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:95:30 [INFO] [stdout] | [INFO] [stdout] 95 | y2020p1::y2020p1(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:98:30 [INFO] [stdout] | [INFO] [stdout] 98 | y2020p2::y2020p2(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:101:30 [INFO] [stdout] | [INFO] [stdout] 101 | y2020p3::y2020p3(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:104:30 [INFO] [stdout] | [INFO] [stdout] 104 | y2020p4::y2020p4(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:107:30 [INFO] [stdout] | [INFO] [stdout] 107 | y2020p5::y2020p5(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:110:30 [INFO] [stdout] | [INFO] [stdout] 110 | y2020p6::y2020p6(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:113:30 [INFO] [stdout] | [INFO] [stdout] 113 | y2020p7::y2020p7(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:116:30 [INFO] [stdout] | [INFO] [stdout] 116 | y2020p8::y2020p8(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:119:30 [INFO] [stdout] | [INFO] [stdout] 119 | y2020p9::y2020p9(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:122:32 [INFO] [stdout] | [INFO] [stdout] 122 | y2020p10::y2020p10(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:125:32 [INFO] [stdout] | [INFO] [stdout] 125 | y2020p11::y2020p11(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:128:32 [INFO] [stdout] | [INFO] [stdout] 128 | y2020p12::y2020p12(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:131:32 [INFO] [stdout] | [INFO] [stdout] 131 | y2020p13::y2020p13(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:140:30 [INFO] [stdout] | [INFO] [stdout] 140 | y2021p1::y2021p1(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:143:30 [INFO] [stdout] | [INFO] [stdout] 143 | y2021p2::y2021p2(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:146:30 [INFO] [stdout] | [INFO] [stdout] 146 | y2021p3::y2021p3(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:149:30 [INFO] [stdout] | [INFO] [stdout] 149 | y2021p4::y2021p4(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 17.58s [INFO] running `Command { std: "docker" "inspect" "6893a9abff3375aa8d649add1cc2db7eaefcdcb3814922f1d34993f68d4f7496", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6893a9abff3375aa8d649add1cc2db7eaefcdcb3814922f1d34993f68d4f7496", kill_on_drop: false }` [INFO] [stdout] 6893a9abff3375aa8d649add1cc2db7eaefcdcb3814922f1d34993f68d4f7496