[INFO] updating cached repository christopherjmedlin/aoc-2018 [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/christopherjmedlin/aoc-2018 [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/christopherjmedlin/aoc-2018" "work/ex/clippy-test-run/sources/stable/gh/christopherjmedlin/aoc-2018"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/christopherjmedlin/aoc-2018'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/christopherjmedlin/aoc-2018" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/christopherjmedlin/aoc-2018"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/christopherjmedlin/aoc-2018'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] a1105aecb9967b4cfb820d6df3fef3937c750298 [INFO] sha for GitHub repo christopherjmedlin/aoc-2018: a1105aecb9967b4cfb820d6df3fef3937c750298 [INFO] validating manifest of christopherjmedlin/aoc-2018 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of christopherjmedlin/aoc-2018 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing christopherjmedlin/aoc-2018 [INFO] finished frobbing christopherjmedlin/aoc-2018 [INFO] frobbed toml for christopherjmedlin/aoc-2018 written to work/ex/clippy-test-run/sources/stable/gh/christopherjmedlin/aoc-2018/Cargo.toml [INFO] started frobbing christopherjmedlin/aoc-2018 [INFO] finished frobbing christopherjmedlin/aoc-2018 [INFO] frobbed toml for christopherjmedlin/aoc-2018 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/christopherjmedlin/aoc-2018/Cargo.toml [INFO] crate christopherjmedlin/aoc-2018 has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting christopherjmedlin/aoc-2018 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/christopherjmedlin/aoc-2018:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] d098acfab05274b736b3701ceaf36c6266c903cbbaf6fc71e758cdb93b7c81ac [INFO] running `"docker" "start" "-a" "d098acfab05274b736b3701ceaf36c6266c903cbbaf6fc71e758cdb93b7c81ac"` [INFO] [stderr] Checking aoc-2018 v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/linkedlist.rs:38:13 [INFO] [stderr] | [INFO] [stderr] 38 | val: val, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `val` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/linkedlist.rs:39:13 [INFO] [stderr] | [INFO] [stderr] 39 | prev: prev, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `prev` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/linkedlist.rs:40:13 [INFO] [stderr] | [INFO] [stderr] 40 | next: next, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `next` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/daysix.rs:83:13 [INFO] [stderr] | [INFO] [stderr] 83 | point: point, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `point` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dayten.rs:26:13 [INFO] [stderr] | [INFO] [stderr] 26 | x: x, [INFO] [stderr] | ^^^^ help: replace it with: `x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dayten.rs:27:13 [INFO] [stderr] | [INFO] [stderr] 27 | y: y, [INFO] [stderr] | ^^^^ help: replace it with: `y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dayten.rs:28:13 [INFO] [stderr] | [INFO] [stderr] 28 | x_vel: x_vel, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `x_vel` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dayten.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | y_vel: y_vel [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `y_vel` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/daythirteen.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | location: location, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `location` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/daythirteen.rs:55:13 [INFO] [stderr] | [INFO] [stderr] 55 | dir: dir, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `dir` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/linkedlist.rs:38:13 [INFO] [stderr] | [INFO] [stderr] 38 | val: val, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `val` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/linkedlist.rs:39:13 [INFO] [stderr] | [INFO] [stderr] 39 | prev: prev, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `prev` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/linkedlist.rs:40:13 [INFO] [stderr] | [INFO] [stderr] 40 | next: next, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `next` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/daysix.rs:83:13 [INFO] [stderr] | [INFO] [stderr] 83 | point: point, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `point` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dayten.rs:26:13 [INFO] [stderr] | [INFO] [stderr] 26 | x: x, [INFO] [stderr] | ^^^^ help: replace it with: `x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dayten.rs:27:13 [INFO] [stderr] | [INFO] [stderr] 27 | y: y, [INFO] [stderr] | ^^^^ help: replace it with: `y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dayten.rs:28:13 [INFO] [stderr] | [INFO] [stderr] 28 | x_vel: x_vel, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `x_vel` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dayten.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | y_vel: y_vel [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `y_vel` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/daythirteen.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | location: location, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `location` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/daythirteen.rs:55:13 [INFO] [stderr] | [INFO] [stderr] 55 | dir: dir, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `dir` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/dayone.rs:4:41 [INFO] [stderr] | [INFO] [stderr] 4 | let mut reached_frequencies: [bool; 150000] = [false; 150000]; [INFO] [stderr] | ^^^^^^ help: consider: `150_000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/dayone.rs:4:59 [INFO] [stderr] | [INFO] [stderr] 4 | let mut reached_frequencies: [bool; 150000] = [false; 150000]; [INFO] [stderr] | ^^^^^^ help: consider: `150_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashMap` [INFO] [stderr] --> src/daytwo.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `chrono::prelude::*` [INFO] [stderr] --> src/dayfour.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use chrono::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashMap` [INFO] [stderr] --> src/daysix.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `BTreeSet` [INFO] [stderr] --> src/dayseven.rs:1:24 [INFO] [stderr] | [INFO] [stderr] 1 | use std::collections::{BTreeSet, HashMap}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::Write` [INFO] [stderr] --> src/dayten.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::io::Write; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `max` [INFO] [stderr] --> src/dayeleven.rs:1:16 [INFO] [stderr] | [INFO] [stderr] 1 | use std::cmp::{max, min}; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/daytwelve.rs:82:16 [INFO] [stderr] | [INFO] [stderr] 82 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 83 | | if first_plant { [INFO] [stderr] 84 | | new_state.set_pot(pot, '.'); [INFO] [stderr] 85 | | } [INFO] [stderr] 86 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 82 | } else if first_plant { [INFO] [stderr] 83 | new_state.set_pot(pot, '.'); [INFO] [stderr] 84 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/daytwelve.rs:136:25 [INFO] [stderr] | [INFO] [stderr] 136 | old_total += diff * 49999999900; [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `49_999_999_900` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/dayone.rs:4:41 [INFO] [stderr] | [INFO] [stderr] 4 | let mut reached_frequencies: [bool; 150000] = [false; 150000]; [INFO] [stderr] | ^^^^^^ help: consider: `150_000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/dayone.rs:4:59 [INFO] [stderr] | [INFO] [stderr] 4 | let mut reached_frequencies: [bool; 150000] = [false; 150000]; [INFO] [stderr] | ^^^^^^ help: consider: `150_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashMap` [INFO] [stderr] --> src/daytwo.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `chrono::prelude::*` [INFO] [stderr] --> src/dayfour.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use chrono::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashMap` [INFO] [stderr] --> src/daysix.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `BTreeSet` [INFO] [stderr] --> src/dayseven.rs:1:24 [INFO] [stderr] | [INFO] [stderr] 1 | use std::collections::{BTreeSet, HashMap}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::Write` [INFO] [stderr] --> src/dayten.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::io::Write; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `max` [INFO] [stderr] --> src/dayeleven.rs:1:16 [INFO] [stderr] | [INFO] [stderr] 1 | use std::cmp::{max, min}; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/daytwelve.rs:82:16 [INFO] [stderr] | [INFO] [stderr] 82 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 83 | | if first_plant { [INFO] [stderr] 84 | | new_state.set_pot(pot, '.'); [INFO] [stderr] 85 | | } [INFO] [stderr] 86 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 82 | } else if first_plant { [INFO] [stderr] 83 | new_state.set_pot(pot, '.'); [INFO] [stderr] 84 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/daytwelve.rs:136:25 [INFO] [stderr] | [INFO] [stderr] 136 | old_total += diff * 49999999900; [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `49_999_999_900` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unused variable: `identical_characters` [INFO] [stderr] --> src/daytwo.rs:4:13 [INFO] [stderr] | [INFO] [stderr] 4 | let mut identical_characters = String::new(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using `_identical_characters` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `correct_boxes_found` [INFO] [stderr] --> src/daytwo.rs:5:13 [INFO] [stderr] | [INFO] [stderr] 5 | let mut correct_boxes_found = false; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using `_correct_boxes_found` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `id` [INFO] [stderr] --> src/daythree.rs:62:11 [INFO] [stderr] | [INFO] [stderr] 62 | for &(id, x, y, width, height) in tiles.iter() { [INFO] [stderr] | ^^ help: consider using `_id` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/dayfive.rs:41:17 [INFO] [stderr] | [INFO] [stderr] 41 | let mut i: usize = 0; [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `input` [INFO] [stderr] --> src/dayseven.rs:133:13 [INFO] [stderr] | [INFO] [stderr] 133 | fn part_two(input: &Vec) -> String { [INFO] [stderr] | ^^^^^ help: consider using `_input` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/dayeight.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | for i in 0..num_nodes { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/dayeight.rs:18:9 [INFO] [stderr] | [INFO] [stderr] 18 | for i in 0..num_metadata { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `total_metadata` [INFO] [stderr] --> src/dayeight.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | let mut total_metadata: u32 = 0; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using `_total_metadata` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `uindex` [INFO] [stderr] --> src/dayeight.rs:32:9 [INFO] [stderr] | [INFO] [stderr] 32 | let uindex = *index as u32; [INFO] [stderr] | ^^^^^^ help: consider using `_uindex` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/dayeight.rs:34:9 [INFO] [stderr] | [INFO] [stderr] 34 | for i in 0..num_nodes { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/dayeight.rs:41:9 [INFO] [stderr] | [INFO] [stderr] 41 | for i in 0..num_metadata { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/daynine.rs:14:9 [INFO] [stderr] | [INFO] [stderr] 14 | for i in 0..players { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `first_plant` is never read [INFO] [stderr] --> src/daytwelve.rs:79:17 [INFO] [stderr] | [INFO] [stderr] 79 | first_plant = true; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `new_state` [INFO] [stderr] --> src/daytwelve.rs:106:13 [INFO] [stderr] | [INFO] [stderr] 106 | let mut new_state: PotState; [INFO] [stderr] | ^^^^^^^^^ help: consider using `_new_state` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/daytwelve.rs:108:9 [INFO] [stderr] | [INFO] [stderr] 108 | for i in 0..20 { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/daytwelve.rs:129:9 [INFO] [stderr] | [INFO] [stderr] 129 | for i in 0..100 { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `y` [INFO] [stderr] --> src/daythirteen.rs:115:13 [INFO] [stderr] | [INFO] [stderr] 115 | let y = carts[0].location.1; [INFO] [stderr] | ^ help: consider using `_y` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `end` is never read [INFO] [stderr] --> src/dayfourteen.rs:17:13 [INFO] [stderr] | [INFO] [stderr] 17 | let mut end = recipes.get_cursor().unwrap(); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/dayfourteen.rs:26:9 [INFO] [stderr] | [INFO] [stderr] 26 | for i in 0..pattern.len() { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/dayfourteen.rs:60:9 [INFO] [stderr] | [INFO] [stderr] 60 | for i in 0..10 { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/linkedlist.rs:58:17 [INFO] [stderr] | [INFO] [stderr] 58 | for i in 0..num { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/linkedlist.rs:70:17 [INFO] [stderr] | [INFO] [stderr] 70 | for i in 0..num { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | let mut input: Vec = r.lines() [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/daytwo.rs:4:9 [INFO] [stderr] | [INFO] [stderr] 4 | let mut identical_characters = String::new(); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/daytwo.rs:5:9 [INFO] [stderr] | [INFO] [stderr] 5 | let mut correct_boxes_found = false; [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/daysix.rs:135:9 [INFO] [stderr] | [INFO] [stderr] 135 | let mut areas = &parse_input(input); [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/dayeight.rs:29:9 [INFO] [stderr] | [INFO] [stderr] 29 | let mut total_metadata: u32 = 0; [INFO] [stderr] | ----^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `identical_characters` [INFO] [stderr] --> src/daytwo.rs:4:13 [INFO] [stderr] | [INFO] [stderr] 4 | let mut identical_characters = String::new(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using `_identical_characters` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `correct_boxes_found` [INFO] [stderr] --> src/daytwo.rs:5:13 [INFO] [stderr] | [INFO] [stderr] 5 | let mut correct_boxes_found = false; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using `_correct_boxes_found` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `id` [INFO] [stderr] --> src/daythree.rs:62:11 [INFO] [stderr] | [INFO] [stderr] 62 | for &(id, x, y, width, height) in tiles.iter() { [INFO] [stderr] | ^^ help: consider using `_id` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/dayfive.rs:41:17 [INFO] [stderr] | [INFO] [stderr] 41 | let mut i: usize = 0; [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `input` [INFO] [stderr] --> src/dayseven.rs:133:13 [INFO] [stderr] | [INFO] [stderr] 133 | fn part_two(input: &Vec) -> String { [INFO] [stderr] | ^^^^^ help: consider using `_input` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/dayeight.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | for i in 0..num_nodes { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/dayeight.rs:18:9 [INFO] [stderr] | [INFO] [stderr] 18 | for i in 0..num_metadata { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `total_metadata` [INFO] [stderr] --> src/dayeight.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | let mut total_metadata: u32 = 0; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using `_total_metadata` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `uindex` [INFO] [stderr] --> src/dayeight.rs:32:9 [INFO] [stderr] | [INFO] [stderr] 32 | let uindex = *index as u32; [INFO] [stderr] | ^^^^^^ help: consider using `_uindex` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/dayeight.rs:34:9 [INFO] [stderr] | [INFO] [stderr] 34 | for i in 0..num_nodes { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/dayeight.rs:41:9 [INFO] [stderr] | [INFO] [stderr] 41 | for i in 0..num_metadata { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/daynine.rs:14:9 [INFO] [stderr] | [INFO] [stderr] 14 | for i in 0..players { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `first_plant` is never read [INFO] [stderr] --> src/daytwelve.rs:79:17 [INFO] [stderr] | [INFO] [stderr] 79 | first_plant = true; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `new_state` [INFO] [stderr] --> src/daytwelve.rs:106:13 [INFO] [stderr] | [INFO] [stderr] 106 | let mut new_state: PotState; [INFO] [stderr] | ^^^^^^^^^ help: consider using `_new_state` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/daytwelve.rs:108:9 [INFO] [stderr] | [INFO] [stderr] 108 | for i in 0..20 { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/daytwelve.rs:129:9 [INFO] [stderr] | [INFO] [stderr] 129 | for i in 0..100 { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `y` [INFO] [stderr] --> src/daythirteen.rs:115:13 [INFO] [stderr] | [INFO] [stderr] 115 | let y = carts[0].location.1; [INFO] [stderr] | ^ help: consider using `_y` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `end` is never read [INFO] [stderr] --> src/dayfourteen.rs:17:13 [INFO] [stderr] | [INFO] [stderr] 17 | let mut end = recipes.get_cursor().unwrap(); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/dayfourteen.rs:26:9 [INFO] [stderr] | [INFO] [stderr] 26 | for i in 0..pattern.len() { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/dayfourteen.rs:60:9 [INFO] [stderr] | [INFO] [stderr] 60 | for i in 0..10 { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/linkedlist.rs:58:17 [INFO] [stderr] | [INFO] [stderr] 58 | for i in 0..num { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/linkedlist.rs:70:17 [INFO] [stderr] | [INFO] [stderr] 70 | for i in 0..num { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/daytwelve.rs:106:9 [INFO] [stderr] | [INFO] [stderr] 106 | let mut new_state: PotState; [INFO] [stderr] | ----^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | let mut input: Vec = r.lines() [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: field is never used: `secs_left` [INFO] [stderr] --> src/dayseven.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | secs_left: u8, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/daytwo.rs:4:9 [INFO] [stderr] | [INFO] [stderr] 4 | let mut identical_characters = String::new(); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/daytwo.rs:5:9 [INFO] [stderr] | [INFO] [stderr] 5 | let mut correct_boxes_found = false; [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/daythree.rs:6:20 [INFO] [stderr] | [INFO] [stderr] 6 | fn part_one(input: &Vec) -> String { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/daythree.rs:13:48 [INFO] [stderr] | [INFO] [stderr] 13 | let split2: Vec<&str> = split[0].split(",").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `','` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/daythree.rs:14:48 [INFO] [stderr] | [INFO] [stderr] 14 | let split3: Vec<&str> = split[1].split("x").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `'x'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/daythree.rs:31:16 [INFO] [stderr] | [INFO] [stderr] 31 | if num > &1 { [INFO] [stderr] | ^^^^^^-- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/daythree.rs:40:20 [INFO] [stderr] | [INFO] [stderr] 40 | fn part_two(input: &Vec) -> String { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/daythree.rs:50:48 [INFO] [stderr] | [INFO] [stderr] 50 | let split2: Vec<&str> = split[0].split(",").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `','` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/daythree.rs:51:48 [INFO] [stderr] | [INFO] [stderr] 51 | let split3: Vec<&str> = split[1].split("x").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `'x'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/dayfour.rs:12:35 [INFO] [stderr] | [INFO] [stderr] 12 | fn generate_sleep_hash_map(input: &Vec) -> HashMap { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/dayfour.rs:32:17 [INFO] [stderr] | [INFO] [stderr] 32 | / if !sleep_map.contains_key(¤t_guard) { [INFO] [stderr] 33 | | sleep_map.insert(current_guard, [0; 59]); [INFO] [stderr] 34 | | } [INFO] [stderr] | |_________________^ help: consider using: `sleep_map.entry(current_guard).or_insert([0; 59])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_entry)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/dayfour.rs:52:20 [INFO] [stderr] | [INFO] [stderr] 52 | fn part_one(input: &Vec) -> String { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/dayfour.rs:60:23 [INFO] [stderr] | [INFO] [stderr] 60 | for minute in sleep_map.get(key).unwrap().iter() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&sleep_map[key]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/dayfour.rs:61:28 [INFO] [stderr] | [INFO] [stderr] 61 | total_sleep += *minute as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u64::from(*minute)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/dayfour.rs:71:24 [INFO] [stderr] | [INFO] [stderr] 71 | for (i, minute) in sleep_map.get(&highest_sleep_guard).unwrap().iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&sleep_map[&highest_sleep_guard]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/dayfour.rs:81:20 [INFO] [stderr] | [INFO] [stderr] 81 | fn part_two(input: &Vec) -> String { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/dayfour.rs:88:32 [INFO] [stderr] | [INFO] [stderr] 88 | for (minute, value) in sleep_map.get(guard).unwrap().iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&sleep_map[guard]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/dayfive.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | / let mut reaction_found = false; [INFO] [stderr] 13 | | [INFO] [stderr] 14 | | if ascii_code + 32 == char_vector[i + 1] as u8 || [INFO] [stderr] 15 | | ascii_code - 32 == char_vector[i + 1] as u8 { [INFO] [stderr] ... | [INFO] [stderr] 21 | | reaction_found = true; [INFO] [stderr] 22 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] help: it is more idiomatic to write [INFO] [stderr] | [INFO] [stderr] 12 | let reaction_found = if ascii_code + 32 == char_vector[i + 1] as u8 || [INFO] [stderr] 13 | ascii_code - 32 == char_vector[i + 1] as u8 { ..; true } else { false }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/dayfive.rs:29:20 [INFO] [stderr] | [INFO] [stderr] 29 | fn part_one(input: &Vec) -> String { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] | [INFO] [stderr] --> src/daysix.rs:135:9 [INFO] [stderr] | [INFO] [stderr] 135 | let mut areas = &parse_input(input); [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/dayfive.rs:35:20 [INFO] [stderr] | [INFO] [stderr] 35 | fn part_two(input: &Vec) -> String { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/daysix.rs:20:22 [INFO] [stderr] | [INFO] [stderr] 20 | fn get_bounds(areas: &Vec) -> Bounds { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Area]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/daysix.rs:47:14 [INFO] [stderr] | [INFO] [stderr] 47 | for x in bounds.min_x..bounds.max_x + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `bounds.min_x..=bounds.max_x` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/daysix.rs:48:18 [INFO] [stderr] | [INFO] [stderr] 48 | for y in bounds.min_y..bounds.max_y + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `bounds.min_y..=bounds.max_y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `areas` [INFO] [stderr] --> src/daysix.rs:54:22 [INFO] [stderr] | [INFO] [stderr] 54 | for i in 0..areas.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 54 | for (i, ) in areas.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/daysix.rs:56:29 [INFO] [stderr] | [INFO] [stderr] 56 | let dist = (area.point.0 as i32 - x as i32).abs() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(area.point.0)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/daysix.rs:56:51 [INFO] [stderr] | [INFO] [stderr] 56 | let dist = (area.point.0 as i32 - x as i32).abs() [INFO] [stderr] | ^^^^^^^^ help: try: `i32::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/daysix.rs:57:29 [INFO] [stderr] | [INFO] [stderr] 57 | + (area.point.1 as i32 - y as i32).abs(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(area.point.1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/daysix.rs:57:51 [INFO] [stderr] | [INFO] [stderr] 57 | + (area.point.1 as i32 - y as i32).abs(); [INFO] [stderr] | ^^^^^^^^ help: try: `i32::from(y)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/daysix.rs:74:23 [INFO] [stderr] | [INFO] [stderr] 74 | fn parse_input(input: &Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/daysix.rs:92:20 [INFO] [stderr] | [INFO] [stderr] 92 | fn part_one(input: &Vec) -> String { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/daysix.rs:134:20 [INFO] [stderr] | [INFO] [stderr] 134 | fn part_two(input: &Vec) -> String { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/daysix.rs:139:14 [INFO] [stderr] | [INFO] [stderr] 139 | for x in bounds.min_x..bounds.max_x + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `bounds.min_x..=bounds.max_x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/daysix.rs:140:18 [INFO] [stderr] | [INFO] [stderr] 140 | for y in bounds.min_y..bounds.max_y + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `bounds.min_y..=bounds.max_y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/daysix.rs:144:34 [INFO] [stderr] | [INFO] [stderr] 144 | distance_sum += (area.point.0 as i32 - x as i32).abs() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(area.point.0)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/daysix.rs:144:56 [INFO] [stderr] | [INFO] [stderr] 144 | distance_sum += (area.point.0 as i32 - x as i32).abs() [INFO] [stderr] | ^^^^^^^^ help: try: `i32::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/daysix.rs:145:33 [INFO] [stderr] | [INFO] [stderr] 145 | + (area.point.1 as i32 - y as i32).abs(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(area.point.1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/daysix.rs:145:55 [INFO] [stderr] | [INFO] [stderr] 145 | + (area.point.1 as i32 - y as i32).abs(); [INFO] [stderr] | ^^^^^^^^ help: try: `i32::from(y)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/dayseven.rs:14:27 [INFO] [stderr] | [INFO] [stderr] 14 | fn create_step_map(input: &Vec) -> HashMap { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/dayseven.rs:47:12 [INFO] [stderr] | [INFO] [stderr] 47 | if v.parents.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `v.parents.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/dayseven.rs:68:20 [INFO] [stderr] | [INFO] [stderr] 68 | fn part_one(input: &Vec) -> String { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/dayeight.rs:29:9 [INFO] [stderr] | [INFO] [stderr] 29 | let mut total_metadata: u32 = 0; [INFO] [stderr] | ----^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/dayseven.rs:78:11 [INFO] [stderr] | [INFO] [stderr] 78 | while todos.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!todos.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/dayseven.rs:84:24 [INFO] [stderr] | [INFO] [stderr] 84 | let step = step_map.get(&step_character).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&step_map[&step_character]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/dayseven.rs:87:21 [INFO] [stderr] | [INFO] [stderr] 87 | if !step_map.get(parent).unwrap().visited { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&step_map[parent]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/dayseven.rs:91:16 [INFO] [stderr] | [INFO] [stderr] 91 | if step.parents.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `step.parents.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/dayseven.rs:133:20 [INFO] [stderr] | [INFO] [stderr] 133 | fn part_two(input: &Vec) -> String { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/dayeight.rs:6:35 [INFO] [stderr] | [INFO] [stderr] 6 | fn count_node_metadata(node_data: &Vec, index: &usize) -> (u32, usize) { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/dayeight.rs:6:52 [INFO] [stderr] | [INFO] [stderr] 6 | fn count_node_metadata(node_data: &Vec, index: &usize) -> (u32, usize) { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `usize` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/dayeight.rs:19:27 [INFO] [stderr] | [INFO] [stderr] 19 | total_metadata += node_data[new_index] as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(node_data[new_index])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/dayeight.rs:26:30 [INFO] [stderr] | [INFO] [stderr] 26 | fn get_node_value(node_data: &Vec, index: &usize) -> (u32, usize) { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/dayeight.rs:26:47 [INFO] [stderr] | [INFO] [stderr] 26 | fn get_node_value(node_data: &Vec, index: &usize) -> (u32, usize) { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `usize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/dayeight.rs:58:20 [INFO] [stderr] | [INFO] [stderr] 58 | fn part_one(input: &Vec) -> String { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/dayeight.rs:59:45 [INFO] [stderr] | [INFO] [stderr] 59 | let node_data: Vec = input[0].split(" ") [INFO] [stderr] | ^^^ help: try using a char instead: `' '` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/dayeight.rs:66:20 [INFO] [stderr] | [INFO] [stderr] 66 | fn part_two(input: &Vec) -> String { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/dayeight.rs:67:45 [INFO] [stderr] | [INFO] [stderr] 67 | let node_data: Vec = input[0].split(" ") [INFO] [stderr] | ^^^ help: try using a char instead: `' '` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/daynine.rs:4:43 [INFO] [stderr] | [INFO] [stderr] 4 | let split: Vec<&str> = input[0].split(" ").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `' '` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/daynine.rs:19:19 [INFO] [stderr] | [INFO] [stderr] 19 | for marble in 1..marbles + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use: `1..=marbles` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/dayten.rs:33:5 [INFO] [stderr] | [INFO] [stderr] 33 | File::create("output.txt"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/daytwelve.rs:6:47 [INFO] [stderr] | [INFO] [stderr] 6 | let mut split: Vec<&str> = input[0].split(" ").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `' '` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `input`. [INFO] [stderr] --> src/daytwelve.rs:12:14 [INFO] [stderr] | [INFO] [stderr] 12 | for i in 2..input.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 12 | for in input.iter().skip(2) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/daytwelve.rs:45:14 [INFO] [stderr] | [INFO] [stderr] 45 | *self.pots.get(&pot).unwrap() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.pots[&pot]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/daytwelve.rs:106:9 [INFO] [stderr] | [INFO] [stderr] 106 | let mut new_state: PotState; [INFO] [stderr] | ----^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/daythirteen.rs:87:39 [INFO] [stderr] | [INFO] [stderr] 87 | pub fn detect_crash(&self, carts: &Vec) -> Option<(usize, usize)> { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Cart]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/daythirteen.rs:107:20 [INFO] [stderr] | [INFO] [stderr] 107 | fn part_one(rails: &Vec>, carts: &Vec) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/daythirteen.rs:107:44 [INFO] [stderr] | [INFO] [stderr] 107 | fn part_one(rails: &Vec>, carts: &Vec) -> String { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Cart]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: path statement with no effect [INFO] [stderr] --> src/daythirteen.rs:116:9 [INFO] [stderr] | [INFO] [stderr] 116 | x; [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(path_statements)] on by default [INFO] [stderr] [INFO] [stderr] warning: statement with no effect [INFO] [stderr] --> src/daythirteen.rs:116:9 [INFO] [stderr] | [INFO] [stderr] 116 | x; [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::no_effect)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#no_effect [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/dayfourteen.rs:9:25 [INFO] [stderr] | [INFO] [stderr] 9 | fn recipes(num_recipes: &u32) -> (String, String) { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `u32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/dayfourteen.rs:34:28 [INFO] [stderr] | [INFO] [stderr] 34 | recipes.insert(digit as u32); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(digit)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: field is never used: `secs_left` [INFO] [stderr] --> src/dayseven.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | secs_left: u8, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/daythree.rs:6:20 [INFO] [stderr] | [INFO] [stderr] 6 | fn part_one(input: &Vec) -> String { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/daythree.rs:13:48 [INFO] [stderr] | [INFO] [stderr] 13 | let split2: Vec<&str> = split[0].split(",").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `','` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/daythree.rs:14:48 [INFO] [stderr] | [INFO] [stderr] 14 | let split3: Vec<&str> = split[1].split("x").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `'x'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/daythree.rs:31:16 [INFO] [stderr] | [INFO] [stderr] 31 | if num > &1 { [INFO] [stderr] | ^^^^^^-- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/daythree.rs:40:20 [INFO] [stderr] | [INFO] [stderr] 40 | fn part_two(input: &Vec) -> String { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/daythree.rs:50:48 [INFO] [stderr] | [INFO] [stderr] 50 | let split2: Vec<&str> = split[0].split(",").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `','` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/daythree.rs:51:48 [INFO] [stderr] | [INFO] [stderr] 51 | let split3: Vec<&str> = split[1].split("x").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `'x'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/dayfour.rs:12:35 [INFO] [stderr] | [INFO] [stderr] 12 | fn generate_sleep_hash_map(input: &Vec) -> HashMap { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/dayfour.rs:32:17 [INFO] [stderr] | [INFO] [stderr] 32 | / if !sleep_map.contains_key(¤t_guard) { [INFO] [stderr] 33 | | sleep_map.insert(current_guard, [0; 59]); [INFO] [stderr] 34 | | } [INFO] [stderr] | |_________________^ help: consider using: `sleep_map.entry(current_guard).or_insert([0; 59])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_entry)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/dayfour.rs:52:20 [INFO] [stderr] | [INFO] [stderr] 52 | fn part_one(input: &Vec) -> String { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/dayfour.rs:60:23 [INFO] [stderr] | [INFO] [stderr] 60 | for minute in sleep_map.get(key).unwrap().iter() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&sleep_map[key]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/dayfour.rs:61:28 [INFO] [stderr] | [INFO] [stderr] 61 | total_sleep += *minute as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u64::from(*minute)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/dayfour.rs:71:24 [INFO] [stderr] | [INFO] [stderr] 71 | for (i, minute) in sleep_map.get(&highest_sleep_guard).unwrap().iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&sleep_map[&highest_sleep_guard]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/dayfour.rs:81:20 [INFO] [stderr] | [INFO] [stderr] 81 | fn part_two(input: &Vec) -> String { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/dayfour.rs:88:32 [INFO] [stderr] | [INFO] [stderr] 88 | for (minute, value) in sleep_map.get(guard).unwrap().iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&sleep_map[guard]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/dayfive.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | / let mut reaction_found = false; [INFO] [stderr] 13 | | [INFO] [stderr] 14 | | if ascii_code + 32 == char_vector[i + 1] as u8 || [INFO] [stderr] 15 | | ascii_code - 32 == char_vector[i + 1] as u8 { [INFO] [stderr] ... | [INFO] [stderr] 21 | | reaction_found = true; [INFO] [stderr] 22 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] help: it is more idiomatic to write [INFO] [stderr] | [INFO] [stderr] 12 | let reaction_found = if ascii_code + 32 == char_vector[i + 1] as u8 || [INFO] [stderr] 13 | ascii_code - 32 == char_vector[i + 1] as u8 { ..; true } else { false }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/dayfive.rs:29:20 [INFO] [stderr] | [INFO] [stderr] 29 | fn part_one(input: &Vec) -> String { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/dayfive.rs:35:20 [INFO] [stderr] | [INFO] [stderr] 35 | fn part_two(input: &Vec) -> String { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/daysix.rs:20:22 [INFO] [stderr] | [INFO] [stderr] 20 | fn get_bounds(areas: &Vec) -> Bounds { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Area]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/daysix.rs:47:14 [INFO] [stderr] | [INFO] [stderr] 47 | for x in bounds.min_x..bounds.max_x + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `bounds.min_x..=bounds.max_x` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/daysix.rs:48:18 [INFO] [stderr] | [INFO] [stderr] 48 | for y in bounds.min_y..bounds.max_y + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `bounds.min_y..=bounds.max_y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `areas` [INFO] [stderr] --> src/daysix.rs:54:22 [INFO] [stderr] | [INFO] [stderr] 54 | for i in 0..areas.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 54 | for (i, ) in areas.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/daysix.rs:56:29 [INFO] [stderr] | [INFO] [stderr] 56 | let dist = (area.point.0 as i32 - x as i32).abs() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(area.point.0)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/daysix.rs:56:51 [INFO] [stderr] | [INFO] [stderr] 56 | let dist = (area.point.0 as i32 - x as i32).abs() [INFO] [stderr] | ^^^^^^^^ help: try: `i32::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/daysix.rs:57:29 [INFO] [stderr] | [INFO] [stderr] 57 | + (area.point.1 as i32 - y as i32).abs(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(area.point.1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/daysix.rs:57:51 [INFO] [stderr] | [INFO] [stderr] 57 | + (area.point.1 as i32 - y as i32).abs(); [INFO] [stderr] | ^^^^^^^^ help: try: `i32::from(y)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/daysix.rs:74:23 [INFO] [stderr] | [INFO] [stderr] 74 | fn parse_input(input: &Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/daysix.rs:92:20 [INFO] [stderr] | [INFO] [stderr] 92 | fn part_one(input: &Vec) -> String { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/daysix.rs:134:20 [INFO] [stderr] | [INFO] [stderr] 134 | fn part_two(input: &Vec) -> String { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/daysix.rs:139:14 [INFO] [stderr] | [INFO] [stderr] 139 | for x in bounds.min_x..bounds.max_x + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `bounds.min_x..=bounds.max_x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/daysix.rs:140:18 [INFO] [stderr] | [INFO] [stderr] 140 | for y in bounds.min_y..bounds.max_y + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `bounds.min_y..=bounds.max_y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/daysix.rs:144:34 [INFO] [stderr] | [INFO] [stderr] 144 | distance_sum += (area.point.0 as i32 - x as i32).abs() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(area.point.0)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/daysix.rs:144:56 [INFO] [stderr] | [INFO] [stderr] 144 | distance_sum += (area.point.0 as i32 - x as i32).abs() [INFO] [stderr] | ^^^^^^^^ help: try: `i32::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/daysix.rs:145:33 [INFO] [stderr] | [INFO] [stderr] 145 | + (area.point.1 as i32 - y as i32).abs(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(area.point.1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/daysix.rs:145:55 [INFO] [stderr] | [INFO] [stderr] 145 | + (area.point.1 as i32 - y as i32).abs(); [INFO] [stderr] | ^^^^^^^^ help: try: `i32::from(y)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/dayseven.rs:14:27 [INFO] [stderr] | [INFO] [stderr] 14 | fn create_step_map(input: &Vec) -> HashMap { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/dayseven.rs:47:12 [INFO] [stderr] | [INFO] [stderr] 47 | if v.parents.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `v.parents.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/dayseven.rs:68:20 [INFO] [stderr] | [INFO] [stderr] 68 | fn part_one(input: &Vec) -> String { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/dayseven.rs:78:11 [INFO] [stderr] | [INFO] [stderr] 78 | while todos.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!todos.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/dayseven.rs:84:24 [INFO] [stderr] | [INFO] [stderr] 84 | let step = step_map.get(&step_character).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&step_map[&step_character]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/dayseven.rs:87:21 [INFO] [stderr] | [INFO] [stderr] 87 | if !step_map.get(parent).unwrap().visited { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&step_map[parent]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/dayseven.rs:91:16 [INFO] [stderr] | [INFO] [stderr] 91 | if step.parents.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `step.parents.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/dayseven.rs:133:20 [INFO] [stderr] | [INFO] [stderr] 133 | fn part_two(input: &Vec) -> String { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/dayeight.rs:6:35 [INFO] [stderr] | [INFO] [stderr] 6 | fn count_node_metadata(node_data: &Vec, index: &usize) -> (u32, usize) { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/dayeight.rs:6:52 [INFO] [stderr] | [INFO] [stderr] 6 | fn count_node_metadata(node_data: &Vec, index: &usize) -> (u32, usize) { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `usize` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/dayeight.rs:19:27 [INFO] [stderr] | [INFO] [stderr] 19 | total_metadata += node_data[new_index] as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(node_data[new_index])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/dayeight.rs:26:30 [INFO] [stderr] | [INFO] [stderr] 26 | fn get_node_value(node_data: &Vec, index: &usize) -> (u32, usize) { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/dayeight.rs:26:47 [INFO] [stderr] | [INFO] [stderr] 26 | fn get_node_value(node_data: &Vec, index: &usize) -> (u32, usize) { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `usize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/dayeight.rs:58:20 [INFO] [stderr] | [INFO] [stderr] 58 | fn part_one(input: &Vec) -> String { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/dayeight.rs:59:45 [INFO] [stderr] | [INFO] [stderr] 59 | let node_data: Vec = input[0].split(" ") [INFO] [stderr] | ^^^ help: try using a char instead: `' '` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/dayeight.rs:66:20 [INFO] [stderr] | [INFO] [stderr] 66 | fn part_two(input: &Vec) -> String { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/dayeight.rs:67:45 [INFO] [stderr] | [INFO] [stderr] 67 | let node_data: Vec = input[0].split(" ") [INFO] [stderr] | ^^^ help: try using a char instead: `' '` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/daynine.rs:4:43 [INFO] [stderr] | [INFO] [stderr] 4 | let split: Vec<&str> = input[0].split(" ").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `' '` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/daynine.rs:19:19 [INFO] [stderr] | [INFO] [stderr] 19 | for marble in 1..marbles + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use: `1..=marbles` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/dayten.rs:33:5 [INFO] [stderr] | [INFO] [stderr] 33 | File::create("output.txt"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/daytwelve.rs:6:47 [INFO] [stderr] | [INFO] [stderr] 6 | let mut split: Vec<&str> = input[0].split(" ").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `' '` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `input`. [INFO] [stderr] --> src/daytwelve.rs:12:14 [INFO] [stderr] | [INFO] [stderr] 12 | for i in 2..input.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 12 | for in input.iter().skip(2) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/daytwelve.rs:45:14 [INFO] [stderr] | [INFO] [stderr] 45 | *self.pots.get(&pot).unwrap() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.pots[&pot]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/daythirteen.rs:87:39 [INFO] [stderr] | [INFO] [stderr] 87 | pub fn detect_crash(&self, carts: &Vec) -> Option<(usize, usize)> { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Cart]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/daythirteen.rs:107:20 [INFO] [stderr] | [INFO] [stderr] 107 | fn part_one(rails: &Vec>, carts: &Vec) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/daythirteen.rs:107:44 [INFO] [stderr] | [INFO] [stderr] 107 | fn part_one(rails: &Vec>, carts: &Vec) -> String { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Cart]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: path statement with no effect [INFO] [stderr] --> src/daythirteen.rs:116:9 [INFO] [stderr] | [INFO] [stderr] 116 | x; [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(path_statements)] on by default [INFO] [stderr] [INFO] [stderr] warning: statement with no effect [INFO] [stderr] --> src/daythirteen.rs:116:9 [INFO] [stderr] | [INFO] [stderr] 116 | x; [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::no_effect)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#no_effect [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/dayfourteen.rs:9:25 [INFO] [stderr] | [INFO] [stderr] 9 | fn recipes(num_recipes: &u32) -> (String, String) { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `u32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/dayfourteen.rs:34:28 [INFO] [stderr] | [INFO] [stderr] 34 | recipes.insert(digit as u32); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(digit)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1.44s [INFO] running `"docker" "inspect" "d098acfab05274b736b3701ceaf36c6266c903cbbaf6fc71e758cdb93b7c81ac"` [INFO] running `"docker" "rm" "-f" "d098acfab05274b736b3701ceaf36c6266c903cbbaf6fc71e758cdb93b7c81ac"` [INFO] [stdout] d098acfab05274b736b3701ceaf36c6266c903cbbaf6fc71e758cdb93b7c81ac