[INFO] cloning repository https://github.com/Ollrogge/AdventOfCode2015 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Ollrogge/AdventOfCode2015" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FOllrogge%2FAdventOfCode2015", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FOllrogge%2FAdventOfCode2015'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 533816c8c862ab0bff4d3770811b22e5a1d46626 [INFO] linting Ollrogge/AdventOfCode2015 against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FOllrogge%2FAdventOfCode2015" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Ollrogge/AdventOfCode2015 [INFO] finished tweaking git repo https://github.com/Ollrogge/AdventOfCode2015 [INFO] tweaked toml for git repo https://github.com/Ollrogge/AdventOfCode2015 written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Ollrogge/AdventOfCode2015 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/Ollrogge/AdventOfCode2015 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] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"` [INFO] [stderr] | [INFO] [stderr] = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest [INFO] [stderr] = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest [INFO] [stderr] = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded fancy-regex v0.10.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] 8c6dfeaf2469293828223e469c0cf547772292616a6594c30fb8e1784c558182 [INFO] running `Command { std: "docker" "start" "-a" "8c6dfeaf2469293828223e469c0cf547772292616a6594c30fb8e1784c558182", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "8c6dfeaf2469293828223e469c0cf547772292616a6594c30fb8e1784c558182", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8c6dfeaf2469293828223e469c0cf547772292616a6594c30fb8e1784c558182", kill_on_drop: false }` [INFO] [stdout] 8c6dfeaf2469293828223e469c0cf547772292616a6594c30fb8e1784c558182 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] 4cecfc6dbc2324db2db91fef9ea85b929fa043f217eb25fd3a84331a15649c5c [INFO] running `Command { std: "docker" "start" "-a" "4cecfc6dbc2324db2db91fef9ea85b929fa043f217eb25fd3a84331a15649c5c", kill_on_drop: false }` [INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"` [INFO] [stderr] | [INFO] [stderr] = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest [INFO] [stderr] = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest [INFO] [stderr] = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions [INFO] [stderr] Checking either v1.8.0 [INFO] [stderr] Checking regex-syntax v0.6.27 [INFO] [stderr] Compiling libc v0.2.133 [INFO] [stderr] Checking bit-vec v0.6.3 [INFO] [stderr] Compiling serde v1.0.145 [INFO] [stderr] Checking ppv-lite86 v0.2.16 [INFO] [stderr] Compiling serde_json v1.0.85 [INFO] [stderr] Checking aho-corasick v0.7.19 [INFO] [stderr] Checking bit-set v0.5.3 [INFO] [stderr] Checking ryu v1.0.11 [INFO] [stderr] Checking itertools v0.10.5 [INFO] [stderr] Checking itoa v1.0.4 [INFO] [stderr] Checking md5 v0.7.0 [INFO] [stderr] Checking day7 v0.1.0 (/opt/rustwide/workdir/day7) [INFO] [stdout] warning: unused import: `std::error::Error` [INFO] [stdout] --> day7/src/main.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking day23 v0.1.0 (/opt/rustwide/workdir/day23) [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> day7/src/main.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 6 | let mut ret = true; [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: unused variable: `ret` [INFO] [stdout] --> day7/src/main.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 6 | let mut ret = true; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ret` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> day7/src/main.rs:40:9 [INFO] [stdout] | [INFO] [stdout] 40 | let mut a_p : u32; [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> day7/src/main.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | let mut b_p : u32; [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> day7/src/main.rs:98:13 [INFO] [stdout] | [INFO] [stdout] 98 | let mut l = ops.pop_front(); [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> day7/src/main.rs:91:12 [INFO] [stdout] | [INFO] [stdout] 91 | if l.len() == 0x0 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `l.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] [stderr] Checking day25 v0.1.0 (/opt/rustwide/workdir/day25) [INFO] [stdout] warning: value assigned to `op1` is never read [INFO] [stdout] --> day23/src/main.rs:20:19 [INFO] [stdout] | [INFO] [stdout] 20 | let mut op1 = None; [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: unneeded `return` statement [INFO] [stdout] --> day23/src/main.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 7 | return 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] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 7 - return 0 [INFO] [stdout] 7 + 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> day23/src/main.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | return 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] 10 - return 1 [INFO] [stdout] 10 + 1 [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] --> day23/src/main.rs:18:43 [INFO] [stdout] | [INFO] [stdout] 18 | fn execute_inst(inst: &'static str, regs: &mut Vec, ip: &mut i32) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 18 - fn execute_inst(inst: &'static str, regs: &mut Vec, ip: &mut i32) { [INFO] [stdout] 18 + fn execute_inst(inst: &'static str, regs: &mut [u64], ip: &mut i32) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> day23/src/main.rs:56:16 [INFO] [stdout] | [INFO] [stdout] 56 | if regs[op1.unwrap() as usize] % 2 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `regs[op1.unwrap() as usize].is_multiple_of(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking day19 v0.1.0 (/opt/rustwide/workdir/day19) [INFO] [stderr] Checking day16 v0.1.0 (/opt/rustwide/workdir/day16) [INFO] [stdout] warning: unused import: `std::collections::VecDeque` [INFO] [stdout] --> day19/src/main.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::collections::VecDeque; [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::cmp` [INFO] [stdout] --> day19/src/main.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::cmp; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking day3 v0.1.0 (/opt/rustwide/workdir/day3) [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> day19/src/main.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 27 | let mut distinct_cnt = 0x0; [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: unused variable: `distinct_cnt` [INFO] [stdout] --> day19/src/main.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 27 | let mut distinct_cnt = 0x0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_distinct_cnt` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> day16/src/main.rs:4:16 [INFO] [stdout] | [INFO] [stdout] 4 | const KEYS : [&'static str; 10] = ["children", "cats", "samoyeds", "pomeranians", [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> day16/src/main.rs:16:13 [INFO] [stdout] | [INFO] [stdout] 16 | num: num, [INFO] [stdout] | ^^^^^^^^ help: replace it with: `num` [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: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> day19/src/main.rs:30:26 [INFO] [stdout] | [INFO] [stdout] 30 | distincts.extend(get_distinct(replacements, molecule, i).into_iter()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/collect.rs:416:17 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 30 - distincts.extend(get_distinct(replacements, molecule, i).into_iter()); [INFO] [stdout] 30 + distincts.extend(get_distinct(replacements, molecule, i)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::collections::hash_map::Values<'_, &str, std::vec::Vec<&str>>` [INFO] [stdout] --> day19/src/main.rs:36:20 [INFO] [stdout] | [INFO] [stdout] 36 | let mut keys = replacements.values() [INFO] [stdout] | ____________________^ [INFO] [stdout] 37 | | .into_iter() [INFO] [stdout] | |____________________^ help: consider removing `.into_iter()`: `replacements.values()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> day19/src/main.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | keys.sort_by(|a, b| b.len().cmp(&a.len())); [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] 42 - keys.sort_by(|a, b| b.len().cmp(&a.len())); [INFO] [stdout] 42 + keys.sort_by_key(|b| std::cmp::Reverse(b.len())); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> day19/src/main.rs:78:12 [INFO] [stdout] | [INFO] [stdout] 78 | if l.len() == 0x0 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `l.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: field `num` is never read [INFO] [stdout] --> day16/src/main.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 8 | struct Sue { [INFO] [stdout] | --- field in this struct [INFO] [stdout] 9 | num: usize, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Sue` 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: this boolean expression can be simplified [INFO] [stdout] --> day16/src/main.rs:36:28 [INFO] [stdout] | [INFO] [stdout] 36 | if !(b < a) { [INFO] [stdout] | ^^^^^^^^ help: try: `(b >= a)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> day16/src/main.rs:43:28 [INFO] [stdout] | [INFO] [stdout] 43 | if !(b > a) { [INFO] [stdout] | ^^^^^^^^ help: try: `(b <= a)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> day16/src/main.rs:65:13 [INFO] [stdout] | [INFO] [stdout] 65 | / if a.is_some() && b.is_some() { [INFO] [stdout] 66 | | if a.unwrap() != b.unwrap() { [INFO] [stdout] 67 | | return false; [INFO] [stdout] 68 | | } [INFO] [stdout] 69 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 65 ~ if a.is_some() && b.is_some() [INFO] [stdout] 66 ~ && a.unwrap() != b.unwrap() { [INFO] [stdout] 67 | return false; [INFO] [stdout] 68 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day3/src/main.rs:67:27 [INFO] [stdout] | [INFO] [stdout] 67 | if !grid.contains(&p) { [INFO] [stdout] | ^^ help: change this to: `p` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day3/src/main.rs:79:14 [INFO] [stdout] | [INFO] [stdout] 79 | part_one(&content); [INFO] [stdout] | ^^^^^^^^ help: change this to: `content` [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] --> day3/src/main.rs:80:14 [INFO] [stdout] | [INFO] [stdout] 80 | part_two(&content); [INFO] [stdout] | ^^^^^^^^ help: change this to: `content` [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] Checking day20 v0.1.0 (/opt/rustwide/workdir/day20) [INFO] [stdout] warning: value assigned to `op1` is never read [INFO] [stdout] --> day23/src/main.rs:20:19 [INFO] [stdout] | [INFO] [stdout] 20 | let mut op1 = None; [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: unneeded `return` statement [INFO] [stdout] --> day23/src/main.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 7 | return 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] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 7 - return 0 [INFO] [stdout] 7 + 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> day16/src/main.rs:4:16 [INFO] [stdout] | [INFO] [stdout] 4 | const KEYS : [&'static str; 10] = ["children", "cats", "samoyeds", "pomeranians", [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> day16/src/main.rs:16:13 [INFO] [stdout] | [INFO] [stdout] 16 | num: num, [INFO] [stdout] | ^^^^^^^^ help: replace it with: `num` [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: unneeded `return` statement [INFO] [stdout] --> day23/src/main.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | return 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] 10 - return 1 [INFO] [stdout] 10 + 1 [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] --> day23/src/main.rs:18:43 [INFO] [stdout] | [INFO] [stdout] 18 | fn execute_inst(inst: &'static str, regs: &mut Vec, ip: &mut i32) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 18 - fn execute_inst(inst: &'static str, regs: &mut Vec, ip: &mut i32) { [INFO] [stdout] 18 + fn execute_inst(inst: &'static str, regs: &mut [u64], ip: &mut i32) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> day23/src/main.rs:56:16 [INFO] [stdout] | [INFO] [stdout] 56 | if regs[op1.unwrap() as usize] % 2 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `regs[op1.unwrap() as usize].is_multiple_of(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `num` is never read [INFO] [stdout] --> day16/src/main.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 8 | struct Sue { [INFO] [stdout] | --- field in this struct [INFO] [stdout] 9 | num: usize, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Sue` 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] [stderr] Checking day2 v0.1.0 (/opt/rustwide/workdir/day2) [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> day16/src/main.rs:36:28 [INFO] [stdout] | [INFO] [stdout] 36 | if !(b < a) { [INFO] [stdout] | ^^^^^^^^ help: try: `(b >= a)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> day16/src/main.rs:43:28 [INFO] [stdout] | [INFO] [stdout] 43 | if !(b > a) { [INFO] [stdout] | ^^^^^^^^ help: try: `(b <= a)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> day16/src/main.rs:65:13 [INFO] [stdout] | [INFO] [stdout] 65 | / if a.is_some() && b.is_some() { [INFO] [stdout] 66 | | if a.unwrap() != b.unwrap() { [INFO] [stdout] 67 | | return false; [INFO] [stdout] 68 | | } [INFO] [stdout] 69 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 65 ~ if a.is_some() && b.is_some() [INFO] [stdout] 66 ~ && a.unwrap() != b.unwrap() { [INFO] [stdout] 67 | return false; [INFO] [stdout] 68 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking day8 v0.1.0 (/opt/rustwide/workdir/day8) [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> day2/src/main.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | if x.len() == 0x0 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `x.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] [stderr] Checking day1 v0.1.0 (/opt/rustwide/workdir/day1) [INFO] [stdout] warning: unused variable: `num` [INFO] [stdout] --> day8/src/main.rs:26:29 [INFO] [stdout] | [INFO] [stdout] 26 | let num = u32::from_str_radix(&num, 0x10).unwrap(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_num` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day8/src/main.rs:91:14 [INFO] [stdout] | [INFO] [stdout] 91 | part_one(&content); [INFO] [stdout] | ^^^^^^^^ help: change this to: `content` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day8/src/main.rs:92:14 [INFO] [stdout] | [INFO] [stdout] 92 | part_two(&content); [INFO] [stdout] | ^^^^^^^^ help: change this to: `content` [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] Checking day9 v0.1.0 (/opt/rustwide/workdir/day9) [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> day9/src/main.rs:34:13 [INFO] [stdout] | [INFO] [stdout] 34 | target: target, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `target` [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] --> day9/src/main.rs:36:13 [INFO] [stdout] | [INFO] [stdout] 36 | weight: weight [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `weight` [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 variable: `num` [INFO] [stdout] --> day8/src/main.rs:26:29 [INFO] [stdout] | [INFO] [stdout] 26 | let num = u32::from_str_radix(&num, 0x10).unwrap(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_num` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day8/src/main.rs:91:14 [INFO] [stdout] | [INFO] [stdout] 91 | part_one(&content); [INFO] [stdout] | ^^^^^^^^ help: change this to: `content` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day8/src/main.rs:92:14 [INFO] [stdout] | [INFO] [stdout] 92 | part_two(&content); [INFO] [stdout] | ^^^^^^^^ help: change this to: `content` [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: redundant field names in struct initialization [INFO] [stdout] --> day9/src/main.rs:34:13 [INFO] [stdout] | [INFO] [stdout] 34 | target: target, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `target` [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] --> day9/src/main.rs:36:13 [INFO] [stdout] | [INFO] [stdout] 36 | weight: weight [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `weight` [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: length comparison to zero [INFO] [stdout] --> day2/src/main.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | if x.len() == 0x0 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `x.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] [stderr] Checking getrandom v0.2.7 [INFO] [stdout] warning: unused import: `std::collections::VecDeque` [INFO] [stdout] --> day19/src/main.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::collections::VecDeque; [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::cmp` [INFO] [stdout] --> day19/src/main.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::cmp; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking num_cpus v1.13.1 [INFO] [stdout] warning: unused import: `std::error::Error` [INFO] [stdout] --> day7/src/main.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> day19/src/main.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 27 | let mut distinct_cnt = 0x0; [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: unused variable: `distinct_cnt` [INFO] [stdout] --> day19/src/main.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 27 | let mut distinct_cnt = 0x0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_distinct_cnt` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> day7/src/main.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 6 | let mut ret = true; [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: unused variable: `ret` [INFO] [stdout] --> day7/src/main.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 6 | let mut ret = true; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ret` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> day7/src/main.rs:40:9 [INFO] [stdout] | [INFO] [stdout] 40 | let mut a_p : u32; [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> day7/src/main.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | let mut b_p : u32; [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> day7/src/main.rs:98:13 [INFO] [stdout] | [INFO] [stdout] 98 | let mut l = ops.pop_front(); [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> day19/src/main.rs:30:26 [INFO] [stdout] | [INFO] [stdout] 30 | distincts.extend(get_distinct(replacements, molecule, i).into_iter()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/collect.rs:416:17 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 30 - distincts.extend(get_distinct(replacements, molecule, i).into_iter()); [INFO] [stdout] 30 + distincts.extend(get_distinct(replacements, molecule, i)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> day7/src/main.rs:91:12 [INFO] [stdout] | [INFO] [stdout] 91 | if l.len() == 0x0 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `l.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: useless conversion to the same type: `std::collections::hash_map::Values<'_, &str, std::vec::Vec<&str>>` [INFO] [stdout] --> day19/src/main.rs:36:20 [INFO] [stdout] | [INFO] [stdout] 36 | let mut keys = replacements.values() [INFO] [stdout] | ____________________^ [INFO] [stdout] 37 | | .into_iter() [INFO] [stdout] | |____________________^ help: consider removing `.into_iter()`: `replacements.values()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> day19/src/main.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | keys.sort_by(|a, b| b.len().cmp(&a.len())); [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] 42 - keys.sort_by(|a, b| b.len().cmp(&a.len())); [INFO] [stdout] 42 + keys.sort_by_key(|b| std::cmp::Reverse(b.len())); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> day19/src/main.rs:78:12 [INFO] [stdout] | [INFO] [stdout] 78 | if l.len() == 0x0 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `l.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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day3/src/main.rs:67:27 [INFO] [stdout] | [INFO] [stdout] 67 | if !grid.contains(&p) { [INFO] [stdout] | ^^ help: change this to: `p` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day3/src/main.rs:79:14 [INFO] [stdout] | [INFO] [stdout] 79 | part_one(&content); [INFO] [stdout] | ^^^^^^^^ help: change this to: `content` [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] --> day3/src/main.rs:80:14 [INFO] [stdout] | [INFO] [stdout] 80 | part_two(&content); [INFO] [stdout] | ^^^^^^^^ help: change this to: `content` [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] Checking day4 v0.1.0 (/opt/rustwide/workdir/day4) [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> day4/src/main.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | use md5; [INFO] [stdout] | ^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] = note: `#[warn(clippy::single_component_path_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> day4/src/main.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | use num_cpus; [INFO] [stdout] | ^^^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> day4/src/main.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | use md5; [INFO] [stdout] | ^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] = note: `#[warn(clippy::single_component_path_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> day4/src/main.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | use num_cpus; [INFO] [stdout] | ^^^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> day4/src/main.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | 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] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 19 - return false [INFO] [stdout] 19 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> day4/src/main.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | 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] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 19 - return false [INFO] [stdout] 19 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking regex v1.7.0 [INFO] [stderr] Checking day18 v0.1.0 (/opt/rustwide/workdir/day18) [INFO] [stderr] Checking day17 v0.1.0 (/opt/rustwide/workdir/day17) [INFO] [stderr] Checking day22 v0.1.0 (/opt/rustwide/workdir/day22) [INFO] [stderr] Checking day24 v0.1.0 (/opt/rustwide/workdir/day24) [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> day17/src/main.rs:11:50 [INFO] [stdout] | [INFO] [stdout] 11 | let mut min_vals = vec![0; containers.len()];; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> day17/src/main.rs:11:50 [INFO] [stdout] | [INFO] [stdout] 11 | let mut min_vals = vec![0; containers.len()];; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `quantum` is never read [INFO] [stdout] --> day24/src/main.rs:4:24 [INFO] [stdout] | [INFO] [stdout] 4 | let mut quantum = None; [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: unused variable: `effect` [INFO] [stdout] --> day22/src/main.rs:37:21 [INFO] [stdout] | [INFO] [stdout] 37 | if let Some(effect) = &spell.effect { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_effect` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.fold` can be written more succinctly using another method [INFO] [stdout] --> day24/src/main.rs:13:31 [INFO] [stdout] | [INFO] [stdout] 13 | .map(|x| x.iter().fold(1, |sum, x| sum * x)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `product::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fold [INFO] [stdout] = note: `#[warn(clippy::unnecessary_fold)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> day22/src/main.rs:60:17 [INFO] [stdout] | [INFO] [stdout] 60 | let mut e = s.effect.as_mut().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] --> day22/src/main.rs:242:13 [INFO] [stdout] | [INFO] [stdout] 242 | let mut player = &mut fight.player; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> day22/src/main.rs:244:13 [INFO] [stdout] | [INFO] [stdout] 244 | let mut spell = &fight.spell; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> day22/src/main.rs:53:12 [INFO] [stdout] | [INFO] [stdout] 53 | if self.active_spells.len() == 0x0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.active_spells.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] --> day22/src/main.rs:104:9 [INFO] [stdout] | [INFO] [stdout] 104 | return spell.cost; [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] 104 - return spell.cost; [INFO] [stdout] 104 + spell.cost [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> day22/src/main.rs:217:30 [INFO] [stdout] | [INFO] [stdout] 217 | let mut min_mana : i32 = std::i32::MAX; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 217 - let mut min_mana : i32 = std::i32::MAX; [INFO] [stdout] 217 + let mut min_mana : i32 = i32::MAX; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day22/src/main.rs:246:40 [INFO] [stdout] | [INFO] [stdout] 246 | let res = player.fight(*spell, &mut opponent); [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `opponent` [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] [stderr] Checking day10 v0.1.0 (/opt/rustwide/workdir/day10) [INFO] [stdout] warning: value assigned to `quantum` is never read [INFO] [stdout] --> day24/src/main.rs:4:24 [INFO] [stdout] | [INFO] [stdout] 4 | let mut quantum = None; [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: this `.fold` can be written more succinctly using another method [INFO] [stdout] --> day24/src/main.rs:13:31 [INFO] [stdout] | [INFO] [stdout] 13 | .map(|x| x.iter().fold(1, |sum, x| sum * x)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `product::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fold [INFO] [stdout] = note: `#[warn(clippy::unnecessary_fold)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `effect` [INFO] [stdout] --> day22/src/main.rs:37:21 [INFO] [stdout] | [INFO] [stdout] 37 | if let Some(effect) = &spell.effect { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_effect` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `OFF` contains a capitalized acronym [INFO] [stdout] --> day18/src/main.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | OFF [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter (notice the capitalization): `Off` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> day18/src/main.rs:30:17 [INFO] [stdout] | [INFO] [stdout] 30 | return State::ON [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] 30 - return State::ON [INFO] [stdout] 30 + State::ON [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> day18/src/main.rs:33:17 [INFO] [stdout] | [INFO] [stdout] 33 | return State::OFF [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 State::OFF [INFO] [stdout] 33 + State::OFF [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> day18/src/main.rs:38:17 [INFO] [stdout] | [INFO] [stdout] 38 | return State::ON [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 State::ON [INFO] [stdout] 38 + State::ON [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> day18/src/main.rs:41:17 [INFO] [stdout] | [INFO] [stdout] 41 | return State::OFF [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] 41 - return State::OFF [INFO] [stdout] 41 + State::OFF [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> day18/src/main.rs:17:29 [INFO] [stdout] | [INFO] [stdout] 17 | let y = _y as i32 + step[0] as i32; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `step[0]` [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 (`i32` -> `i32`) [INFO] [stdout] --> day18/src/main.rs:18:29 [INFO] [stdout] | [INFO] [stdout] 18 | let x = _x as i32 + step[1] as i32; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `step[1]` [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: variable does not need to be mutable [INFO] [stdout] --> day22/src/main.rs:60:17 [INFO] [stdout] | [INFO] [stdout] 60 | let mut e = s.effect.as_mut().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: this `if` statement can be collapsed [INFO] [stdout] --> day18/src/main.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | / if x >= 0 && (x as usize) < matrix[0].len() && y >= 0 && (y as usize) < matrix.len() { [INFO] [stdout] 21 | | if matrix[y as usize][x as usize] == State::ON { [INFO] [stdout] 22 | | neighbors_on += 1; [INFO] [stdout] 23 | | } [INFO] [stdout] 24 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 20 ~ if x >= 0 && (x as usize) < matrix[0].len() && y >= 0 && (y as usize) < matrix.len() [INFO] [stdout] 21 ~ && matrix[y as usize][x as usize] == State::ON { [INFO] [stdout] 22 | neighbors_on += 1; [INFO] [stdout] 23 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> day18/src/main.rs:57:13 [INFO] [stdout] | [INFO] [stdout] 57 | / match c { [INFO] [stdout] 58 | | '#' => grid[y][x] = State::ON, [INFO] [stdout] 59 | | _ => () [INFO] [stdout] 60 | | } [INFO] [stdout] | |_____________^ help: try: `if c == '#' { grid[y][x] = State::ON }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this looks like you are swapping `grid` and `tmp_grid` manually [INFO] [stdout] --> day18/src/main.rs:85:9 [INFO] [stdout] | [INFO] [stdout] 85 | / let tmp = grid; [INFO] [stdout] 86 | | grid = tmp_grid; [INFO] [stdout] 87 | | tmp_grid = tmp; [INFO] [stdout] | |_______________________^ help: try: `std::mem::swap(&mut grid, &mut tmp_grid);` [INFO] [stdout] | [INFO] [stdout] = note: or maybe you should use `std::mem::replace`? [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_swap [INFO] [stdout] = note: `#[warn(clippy::manual_swap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `y` is used to index `tmp_grid` [INFO] [stdout] --> day18/src/main.rs:76:18 [INFO] [stdout] | [INFO] [stdout] 76 | for y in 0..grid[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] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 76 - for y in 0..grid[0].len() { [INFO] [stdout] 76 + for (y, ) in tmp_grid.iter_mut().enumerate().take(grid[0].len()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `x` is used to index `tmp_grid` [INFO] [stdout] --> day18/src/main.rs:77:22 [INFO] [stdout] | [INFO] [stdout] 77 | for x in 0..grid.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] 77 - for x in 0..grid.len() { [INFO] [stdout] 77 + for (x, ) in tmp_grid.iter_mut().enumerate().take(grid.len()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> day22/src/main.rs:242:13 [INFO] [stdout] | [INFO] [stdout] 242 | let mut player = &mut fight.player; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> day22/src/main.rs:244:13 [INFO] [stdout] | [INFO] [stdout] 244 | let mut spell = &fight.spell; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> day10/src/main.rs:3:18 [INFO] [stdout] | [INFO] [stdout] 3 | fn lookandsay(s: &String) -> String { [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] 3 - fn lookandsay(s: &String) -> String { [INFO] [stdout] 3 + fn lookandsay(s: &str) -> String { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> day22/src/main.rs:53:12 [INFO] [stdout] | [INFO] [stdout] 53 | if self.active_spells.len() == 0x0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.active_spells.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] --> day22/src/main.rs:104:9 [INFO] [stdout] | [INFO] [stdout] 104 | return spell.cost; [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] 104 - return spell.cost; [INFO] [stdout] 104 + spell.cost [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> day22/src/main.rs:217:30 [INFO] [stdout] | [INFO] [stdout] 217 | let mut min_mana : i32 = std::i32::MAX; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 217 - let mut min_mana : i32 = std::i32::MAX; [INFO] [stdout] 217 + let mut min_mana : i32 = i32::MAX; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day22/src/main.rs:246:40 [INFO] [stdout] | [INFO] [stdout] 246 | let res = player.fight(*spell, &mut opponent); [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `opponent` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> day10/src/main.rs:3:18 [INFO] [stdout] | [INFO] [stdout] 3 | fn lookandsay(s: &String) -> String { [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] 3 - fn lookandsay(s: &String) -> String { [INFO] [stdout] 3 + fn lookandsay(s: &str) -> String { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `OFF` contains a capitalized acronym [INFO] [stdout] --> day18/src/main.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | OFF [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter (notice the capitalization): `Off` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> day18/src/main.rs:30:17 [INFO] [stdout] | [INFO] [stdout] 30 | return State::ON [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] 30 - return State::ON [INFO] [stdout] 30 + State::ON [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> day18/src/main.rs:33:17 [INFO] [stdout] | [INFO] [stdout] 33 | return State::OFF [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 State::OFF [INFO] [stdout] 33 + State::OFF [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> day18/src/main.rs:38:17 [INFO] [stdout] | [INFO] [stdout] 38 | return State::ON [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 State::ON [INFO] [stdout] 38 + State::ON [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> day18/src/main.rs:41:17 [INFO] [stdout] | [INFO] [stdout] 41 | return State::OFF [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] 41 - return State::OFF [INFO] [stdout] 41 + State::OFF [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> day18/src/main.rs:17:29 [INFO] [stdout] | [INFO] [stdout] 17 | let y = _y as i32 + step[0] as i32; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `step[0]` [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 (`i32` -> `i32`) [INFO] [stdout] --> day18/src/main.rs:18:29 [INFO] [stdout] | [INFO] [stdout] 18 | let x = _x as i32 + step[1] as i32; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `step[1]` [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 `if` statement can be collapsed [INFO] [stdout] --> day18/src/main.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | / if x >= 0 && (x as usize) < matrix[0].len() && y >= 0 && (y as usize) < matrix.len() { [INFO] [stdout] 21 | | if matrix[y as usize][x as usize] == State::ON { [INFO] [stdout] 22 | | neighbors_on += 1; [INFO] [stdout] 23 | | } [INFO] [stdout] 24 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 20 ~ if x >= 0 && (x as usize) < matrix[0].len() && y >= 0 && (y as usize) < matrix.len() [INFO] [stdout] 21 ~ && matrix[y as usize][x as usize] == State::ON { [INFO] [stdout] 22 | neighbors_on += 1; [INFO] [stdout] 23 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> day18/src/main.rs:57:13 [INFO] [stdout] | [INFO] [stdout] 57 | / match c { [INFO] [stdout] 58 | | '#' => grid[y][x] = State::ON, [INFO] [stdout] 59 | | _ => () [INFO] [stdout] 60 | | } [INFO] [stdout] | |_____________^ help: try: `if c == '#' { grid[y][x] = State::ON }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this looks like you are swapping `grid` and `tmp_grid` manually [INFO] [stdout] --> day18/src/main.rs:85:9 [INFO] [stdout] | [INFO] [stdout] 85 | / let tmp = grid; [INFO] [stdout] 86 | | grid = tmp_grid; [INFO] [stdout] 87 | | tmp_grid = tmp; [INFO] [stdout] | |_______________________^ help: try: `std::mem::swap(&mut grid, &mut tmp_grid);` [INFO] [stdout] | [INFO] [stdout] = note: or maybe you should use `std::mem::replace`? [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_swap [INFO] [stdout] = note: `#[warn(clippy::manual_swap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `y` is used to index `tmp_grid` [INFO] [stdout] --> day18/src/main.rs:76:18 [INFO] [stdout] | [INFO] [stdout] 76 | for y in 0..grid[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] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 76 - for y in 0..grid[0].len() { [INFO] [stdout] 76 + for (y, ) in tmp_grid.iter_mut().enumerate().take(grid[0].len()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `x` is used to index `tmp_grid` [INFO] [stdout] --> day18/src/main.rs:77:22 [INFO] [stdout] | [INFO] [stdout] 77 | for x in 0..grid.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] 77 - for x in 0..grid.len() { [INFO] [stdout] 77 + for (x, ) in tmp_grid.iter_mut().enumerate().take(grid.len()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking fancy-regex v0.10.0 [INFO] [stderr] Checking day21 v0.1.0 (/opt/rustwide/workdir/day21) [INFO] [stderr] Checking day14 v0.1.0 (/opt/rustwide/workdir/day14) [INFO] [stderr] Checking day15 v0.1.0 (/opt/rustwide/workdir/day15) [INFO] [stderr] Checking day13 v0.1.0 (/opt/rustwide/workdir/day13) [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> day13/src/main.rs:27:13 [INFO] [stdout] | [INFO] [stdout] 27 | / if table.contains_key(&p1) { [INFO] [stdout] 28 | | let entry = table.get_mut(&p1).unwrap(); [INFO] [stdout] 29 | | entry.insert(p2, num); [INFO] [stdout] ... | [INFO] [stdout] 34 | | table.insert(p1, entry); [INFO] [stdout] 35 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: consider using the `Entry` API: https://doc.rust-lang.org/std/collections/struct.HashMap.html#entry-api [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] = note: `#[warn(clippy::map_entry)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_string` [INFO] [stdout] --> day13/src/main.rs:46:32 [INFO] [stdout] | [INFO] [stdout] 46 | let me = table.get_mut(&"Me".to_string()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace it with: `"Me"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] = note: `#[warn(clippy::unnecessary_to_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&std::string::String` instead of cloning the inner type [INFO] [stdout] --> day13/src/main.rs:55:36 [INFO] [stdout] | [INFO] [stdout] 55 | let entry = table.get(p.clone()).unwrap(); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(suspicious_double_ref_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&std::string::String` instead of cloning the inner type [INFO] [stdout] --> day13/src/main.rs:56:31 [INFO] [stdout] | [INFO] [stdout] 56 | tmp += entry.get(l.clone()).unwrap(); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&std::string::String` instead of cloning the inner type [INFO] [stdout] --> day13/src/main.rs:57:31 [INFO] [stdout] | [INFO] [stdout] 57 | tmp += entry.get(r.clone()).unwrap(); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking day6 v0.1.0 (/opt/rustwide/workdir/day6) [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> day14/src/main.rs:70:9 [INFO] [stdout] | [INFO] [stdout] 70 | for i in 0..2503 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `RESTING` contains a capitalized acronym [INFO] [stdout] --> day14/src/main.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | RESTING, [INFO] [stdout] | ^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Resting` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `FLYING` contains a capitalized acronym [INFO] [stdout] --> day14/src/main.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | FLYING [INFO] [stdout] | ^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Flying` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `typ` is never read [INFO] [stdout] --> day21/src/main.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 58 | struct Gear { [INFO] [stdout] | ---- field in this struct [INFO] [stdout] 59 | typ: GearType, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Gear` 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: unneeded `return` statement [INFO] [stdout] --> day21/src/main.rs:42:13 [INFO] [stdout] | [INFO] [stdout] 42 | 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] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 42 - return true; [INFO] [stdout] 42 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> day21/src/main.rs:45:13 [INFO] [stdout] | [INFO] [stdout] 45 | 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] 45 - return false; [INFO] [stdout] 45 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> day21/src/main.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | / if t1 <= t2 { [INFO] [stdout] 42 | | return true; [INFO] [stdout] 43 | | } [INFO] [stdout] 44 | | else { [INFO] [stdout] 45 | | return false; [INFO] [stdout] 46 | | } [INFO] [stdout] | |_________^ help: you can reduce it to: `return t1 <= t2` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] = note: `#[warn(clippy::needless_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this loop could be written as a `for` loop [INFO] [stdout] --> day21/src/main.rs:77:5 [INFO] [stdout] | [INFO] [stdout] 77 | while let Some(l) = it.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `for l in it.by_ref()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stdout] = note: `#[warn(clippy::while_let_on_iterator)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> day21/src/main.rs:78:12 [INFO] [stdout] | [INFO] [stdout] 78 | if l.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `l.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: compiling a regex in a loop [INFO] [stdout] --> day21/src/main.rs:82:26 [INFO] [stdout] | [INFO] [stdout] 82 | let match_nums = Regex::new(r"\d+").unwrap(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: move the regex construction outside this loop [INFO] [stdout] --> day21/src/main.rs:77:5 [INFO] [stdout] | [INFO] [stdout] 77 | while let Some(l) = it.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_creation_in_loops [INFO] [stdout] = note: `#[warn(clippy::regex_creation_in_loops)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> day21/src/main.rs:127:30 [INFO] [stdout] | [INFO] [stdout] 127 | let mut min_cost : i32 = std::i32::MAX; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 127 - let mut min_cost : i32 = std::i32::MAX; [INFO] [stdout] 127 + let mut min_cost : i32 = i32::MAX; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day21/src/main.rs:132:25 [INFO] [stdout] | [INFO] [stdout] 132 | player.add_gear(&w); [INFO] [stdout] | ^^ help: change this to: `w` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day21/src/main.rs:133:25 [INFO] [stdout] | [INFO] [stdout] 133 | player.add_gear(&a); [INFO] [stdout] | ^^ help: change this to: `a` [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] --> day21/src/main.rs:136:29 [INFO] [stdout] | [INFO] [stdout] 136 | player.add_gear(&r); [INFO] [stdout] | ^^ help: change this to: `r` [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: unused variable: `i` [INFO] [stdout] --> day14/src/main.rs:70:9 [INFO] [stdout] | [INFO] [stdout] 70 | for i in 0..2503 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `RESTING` contains a capitalized acronym [INFO] [stdout] --> day14/src/main.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | RESTING, [INFO] [stdout] | ^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Resting` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `FLYING` contains a capitalized acronym [INFO] [stdout] --> day14/src/main.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | FLYING [INFO] [stdout] | ^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Flying` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> day13/src/main.rs:27:13 [INFO] [stdout] | [INFO] [stdout] 27 | / if table.contains_key(&p1) { [INFO] [stdout] 28 | | let entry = table.get_mut(&p1).unwrap(); [INFO] [stdout] 29 | | entry.insert(p2, num); [INFO] [stdout] ... | [INFO] [stdout] 34 | | table.insert(p1, entry); [INFO] [stdout] 35 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: consider using the `Entry` API: https://doc.rust-lang.org/std/collections/struct.HashMap.html#entry-api [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] = note: `#[warn(clippy::map_entry)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_string` [INFO] [stdout] --> day13/src/main.rs:46:32 [INFO] [stdout] | [INFO] [stdout] 46 | let me = table.get_mut(&"Me".to_string()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace it with: `"Me"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] = note: `#[warn(clippy::unnecessary_to_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> day6/src/main.rs:51:21 [INFO] [stdout] | [INFO] [stdout] 51 | _ => () [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> day6/src/main.rs:51:21 [INFO] [stdout] | [INFO] [stdout] 48 | Op::ON => grid[y][x] += 1, [INFO] [stdout] | ------ matches some of the same values [INFO] [stdout] 49 | Op::OFF => grid[y][x] -= if grid[y][x] > 0 {1} else {0}, [INFO] [stdout] | ------- matches some of the same values [INFO] [stdout] 50 | Op::TOGGLE => grid[y][x] += 2, [INFO] [stdout] | ---------- matches some of the same values [INFO] [stdout] 51 | _ => () [INFO] [stdout] | ^ collectively making this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&std::string::String` instead of cloning the inner type [INFO] [stdout] --> day13/src/main.rs:55:36 [INFO] [stdout] | [INFO] [stdout] 55 | let entry = table.get(p.clone()).unwrap(); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(suspicious_double_ref_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&std::string::String` instead of cloning the inner type [INFO] [stdout] --> day13/src/main.rs:56:31 [INFO] [stdout] | [INFO] [stdout] 56 | tmp += entry.get(l.clone()).unwrap(); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&std::string::String` instead of cloning the inner type [INFO] [stdout] --> day13/src/main.rs:57:31 [INFO] [stdout] | [INFO] [stdout] 57 | tmp += entry.get(r.clone()).unwrap(); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `OFF` contains a capitalized acronym [INFO] [stdout] --> day6/src/main.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | OFF, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter (notice the capitalization): `Off` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `TOGGLE` contains a capitalized acronym [INFO] [stdout] --> day6/src/main.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | TOGGLE [INFO] [stdout] | ^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Toggle` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day6/src/main.rs:28:49 [INFO] [stdout] | [INFO] [stdout] 28 | let nums : Vec = re.captures_iter(&line).collect(); [INFO] [stdout] | ^^^^^ help: change this to: `line` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day6/src/main.rs:42:25 [INFO] [stdout] | [INFO] [stdout] 42 | let op = get_op(&l); [INFO] [stdout] | ^^ help: change this to: `l` [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] --> day6/src/main.rs:43:40 [INFO] [stdout] | [INFO] [stdout] 43 | let (p1, p2) = get_coordinates(&l); [INFO] [stdout] | ^^ help: change this to: `l` [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: the loop variable `y` is only used to index `grid` [INFO] [stdout] --> day6/src/main.rs:45:18 [INFO] [stdout] | [INFO] [stdout] 45 | for y in p1.y..=p2.y { [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] 45 - for y in p1.y..=p2.y { [INFO] [stdout] 45 + for in grid.iter_mut().take(p2.y + 1).skip(p1.y) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `x` is only used to index `grid` [INFO] [stdout] --> day6/src/main.rs:46:22 [INFO] [stdout] | [INFO] [stdout] 46 | for x in p1.x..=p2.x { [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] 46 - for x in p1.x..=p2.x { [INFO] [stdout] 46 + for in grid.iter_mut().take(p2.x + 1).skip(p1.x) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `typ` is never read [INFO] [stdout] --> day21/src/main.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 58 | struct Gear { [INFO] [stdout] | ---- field in this struct [INFO] [stdout] 59 | typ: GearType, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Gear` 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: unneeded `return` statement [INFO] [stdout] --> day21/src/main.rs:42:13 [INFO] [stdout] | [INFO] [stdout] 42 | 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] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 42 - return true; [INFO] [stdout] 42 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> day21/src/main.rs:45:13 [INFO] [stdout] | [INFO] [stdout] 45 | 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] 45 - return false; [INFO] [stdout] 45 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> day21/src/main.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | / if t1 <= t2 { [INFO] [stdout] 42 | | return true; [INFO] [stdout] 43 | | } [INFO] [stdout] 44 | | else { [INFO] [stdout] 45 | | return false; [INFO] [stdout] 46 | | } [INFO] [stdout] | |_________^ help: you can reduce it to: `return t1 <= t2` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] = note: `#[warn(clippy::needless_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this loop could be written as a `for` loop [INFO] [stdout] --> day21/src/main.rs:77:5 [INFO] [stdout] | [INFO] [stdout] 77 | while let Some(l) = it.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `for l in it.by_ref()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stdout] = note: `#[warn(clippy::while_let_on_iterator)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> day21/src/main.rs:78:12 [INFO] [stdout] | [INFO] [stdout] 78 | if l.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `l.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: compiling a regex in a loop [INFO] [stdout] --> day21/src/main.rs:82:26 [INFO] [stdout] | [INFO] [stdout] 82 | let match_nums = Regex::new(r"\d+").unwrap(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: move the regex construction outside this loop [INFO] [stdout] --> day21/src/main.rs:77:5 [INFO] [stdout] | [INFO] [stdout] 77 | while let Some(l) = it.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_creation_in_loops [INFO] [stdout] = note: `#[warn(clippy::regex_creation_in_loops)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> day21/src/main.rs:127:30 [INFO] [stdout] | [INFO] [stdout] 127 | let mut min_cost : i32 = std::i32::MAX; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 127 - let mut min_cost : i32 = std::i32::MAX; [INFO] [stdout] 127 + let mut min_cost : i32 = i32::MAX; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day21/src/main.rs:132:25 [INFO] [stdout] | [INFO] [stdout] 132 | player.add_gear(&w); [INFO] [stdout] | ^^ help: change this to: `w` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day21/src/main.rs:133:25 [INFO] [stdout] | [INFO] [stdout] 133 | player.add_gear(&a); [INFO] [stdout] | ^^ help: change this to: `a` [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] --> day21/src/main.rs:136:29 [INFO] [stdout] | [INFO] [stdout] 136 | player.add_gear(&r); [INFO] [stdout] | ^^ help: change this to: `r` [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: unreachable pattern [INFO] [stdout] --> day6/src/main.rs:51:21 [INFO] [stdout] | [INFO] [stdout] 51 | _ => () [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> day6/src/main.rs:51:21 [INFO] [stdout] | [INFO] [stdout] 48 | Op::ON => grid[y][x] += 1, [INFO] [stdout] | ------ matches some of the same values [INFO] [stdout] 49 | Op::OFF => grid[y][x] -= if grid[y][x] > 0 {1} else {0}, [INFO] [stdout] | ------- matches some of the same values [INFO] [stdout] 50 | Op::TOGGLE => grid[y][x] += 2, [INFO] [stdout] | ---------- matches some of the same values [INFO] [stdout] 51 | _ => () [INFO] [stdout] | ^ collectively making this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `OFF` contains a capitalized acronym [INFO] [stdout] --> day6/src/main.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | OFF, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter (notice the capitalization): `Off` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `TOGGLE` contains a capitalized acronym [INFO] [stdout] --> day6/src/main.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | TOGGLE [INFO] [stdout] | ^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Toggle` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day6/src/main.rs:28:49 [INFO] [stdout] | [INFO] [stdout] 28 | let nums : Vec = re.captures_iter(&line).collect(); [INFO] [stdout] | ^^^^^ help: change this to: `line` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day6/src/main.rs:42:25 [INFO] [stdout] | [INFO] [stdout] 42 | let op = get_op(&l); [INFO] [stdout] | ^^ help: change this to: `l` [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] --> day6/src/main.rs:43:40 [INFO] [stdout] | [INFO] [stdout] 43 | let (p1, p2) = get_coordinates(&l); [INFO] [stdout] | ^^ help: change this to: `l` [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: the loop variable `y` is only used to index `grid` [INFO] [stdout] --> day6/src/main.rs:45:18 [INFO] [stdout] | [INFO] [stdout] 45 | for y in p1.y..=p2.y { [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] 45 - for y in p1.y..=p2.y { [INFO] [stdout] 45 + for in grid.iter_mut().take(p2.y + 1).skip(p1.y) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `x` is only used to index `grid` [INFO] [stdout] --> day6/src/main.rs:46:22 [INFO] [stdout] | [INFO] [stdout] 46 | for x in p1.x..=p2.x { [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] 46 - for x in p1.x..=p2.x { [INFO] [stdout] 46 + for in grid.iter_mut().take(p2.x + 1).skip(p1.x) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking day5 v0.1.0 (/opt/rustwide/workdir/day5) [INFO] [stderr] Checking day11 v0.1.0 (/opt/rustwide/workdir/day11) [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> day11/src/main.rs:56:9 [INFO] [stdout] | [INFO] [stdout] 56 | content: content [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `content` [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: unneeded `return` statement [INFO] [stdout] --> day5/src/main.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | return cnt [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] 17 - return cnt [INFO] [stdout] 17 + cnt [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> day5/src/main.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | return cnt [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 cnt [INFO] [stdout] 32 + cnt [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day5/src/main.rs:37:39 [INFO] [stdout] | [INFO] [stdout] 37 | println!("part one: {}", part_one(&content)); [INFO] [stdout] | ^^^^^^^^ help: change this to: `content` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day5/src/main.rs:38:39 [INFO] [stdout] | [INFO] [stdout] 38 | println!("part two: {}", part_two(&content)); [INFO] [stdout] | ^^^^^^^^ help: change this to: `content` [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] --> day5/src/main.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | return cnt [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] 17 - return cnt [INFO] [stdout] 17 + cnt [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> day5/src/main.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | return cnt [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 cnt [INFO] [stdout] 32 + cnt [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day5/src/main.rs:37:39 [INFO] [stdout] | [INFO] [stdout] 37 | println!("part one: {}", part_one(&content)); [INFO] [stdout] | ^^^^^^^^ help: change this to: `content` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day5/src/main.rs:38:39 [INFO] [stdout] | [INFO] [stdout] 38 | println!("part two: {}", part_two(&content)); [INFO] [stdout] | ^^^^^^^^ help: change this to: `content` [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: variable does not need to be mutable [INFO] [stdout] --> day11/src/main.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | let mut content = String::from("hxbxwxba"); [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: unused variable: `i` [INFO] [stdout] --> day11/src/main.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 59 | for i in 0..2 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `RE` should have a snake case name [INFO] [stdout] --> day11/src/main.rs:33:13 [INFO] [stdout] | [INFO] [stdout] 33 | let RE: Regex = Regex::new(r"(.)\1").unwrap(); [INFO] [stdout] | ^^ help: convert the identifier to snake case: `re` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> day11/src/main.rs:56:9 [INFO] [stdout] | [INFO] [stdout] 56 | content: content [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `content` [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: variable does not need to be mutable [INFO] [stdout] --> day11/src/main.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | let mut content = String::from("hxbxwxba"); [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: unused variable: `i` [INFO] [stdout] --> day11/src/main.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 59 | for i in 0..2 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `RE` should have a snake case name [INFO] [stdout] --> day11/src/main.rs:33:13 [INFO] [stdout] | [INFO] [stdout] 33 | let RE: Regex = Regex::new(r"(.)\1").unwrap(); [INFO] [stdout] | ^^ help: convert the identifier to snake case: `re` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking day12 v0.1.0 (/opt/rustwide/workdir/day12) [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> day12/src/main.rs:16:13 [INFO] [stdout] | [INFO] [stdout] 16 | / if v.is_string() { [INFO] [stdout] 17 | | if v.as_str().unwrap() == "red" { [INFO] [stdout] 18 | | return; [INFO] [stdout] 19 | | } [INFO] [stdout] 20 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 16 ~ if v.is_string() [INFO] [stdout] 17 ~ && v.as_str().unwrap() == "red" { [INFO] [stdout] 18 | return; [INFO] [stdout] 19 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day12/src/main.rs:24:25 [INFO] [stdout] | [INFO] [stdout] 24 | self._parse(&v); [INFO] [stdout] | ^^ help: change this to: `v` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> day12/src/main.rs:28:34 [INFO] [stdout] | [INFO] [stdout] 28 | fn parse_arr(&mut self, arr: &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] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 28 - fn parse_arr(&mut self, arr: &Vec) { [INFO] [stdout] 28 + fn parse_arr(&mut self, arr: &[Value]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day12/src/main.rs:30:25 [INFO] [stdout] | [INFO] [stdout] 30 | self._parse(&v); [INFO] [stdout] | ^^ help: change this to: `v` [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] --> day12/src/main.rs:53:18 [INFO] [stdout] | [INFO] [stdout] 53 | parser.parse(&content); [INFO] [stdout] | ^^^^^^^^ help: change this to: `content` [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 `if` statement can be collapsed [INFO] [stdout] --> day12/src/main.rs:16:13 [INFO] [stdout] | [INFO] [stdout] 16 | / if v.is_string() { [INFO] [stdout] 17 | | if v.as_str().unwrap() == "red" { [INFO] [stdout] 18 | | return; [INFO] [stdout] 19 | | } [INFO] [stdout] 20 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 16 ~ if v.is_string() [INFO] [stdout] 17 ~ && v.as_str().unwrap() == "red" { [INFO] [stdout] 18 | return; [INFO] [stdout] 19 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day12/src/main.rs:24:25 [INFO] [stdout] | [INFO] [stdout] 24 | self._parse(&v); [INFO] [stdout] | ^^ help: change this to: `v` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> day12/src/main.rs:28:34 [INFO] [stdout] | [INFO] [stdout] 28 | fn parse_arr(&mut self, arr: &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] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 28 - fn parse_arr(&mut self, arr: &Vec) { [INFO] [stdout] 28 + fn parse_arr(&mut self, arr: &[Value]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day12/src/main.rs:30:25 [INFO] [stdout] | [INFO] [stdout] 30 | self._parse(&v); [INFO] [stdout] | ^^ help: change this to: `v` [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] --> day12/src/main.rs:53:18 [INFO] [stdout] | [INFO] [stdout] 53 | parser.parse(&content); [INFO] [stdout] | ^^^^^^^^ help: change this to: `content` [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 13.59s [INFO] running `Command { std: "docker" "inspect" "4cecfc6dbc2324db2db91fef9ea85b929fa043f217eb25fd3a84331a15649c5c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4cecfc6dbc2324db2db91fef9ea85b929fa043f217eb25fd3a84331a15649c5c", kill_on_drop: false }` [INFO] [stdout] 4cecfc6dbc2324db2db91fef9ea85b929fa043f217eb25fd3a84331a15649c5c