[INFO] updating cached repository baszalmstra/adventofcode2018 [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/baszalmstra/adventofcode2018 [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/baszalmstra/adventofcode2018" "work/ex/clippy-test-run/sources/stable/gh/baszalmstra/adventofcode2018"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/baszalmstra/adventofcode2018'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/baszalmstra/adventofcode2018" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/baszalmstra/adventofcode2018"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/baszalmstra/adventofcode2018'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] d4ec38c8b890f135ae75ed0064bd54459843a1bd [INFO] sha for GitHub repo baszalmstra/adventofcode2018: d4ec38c8b890f135ae75ed0064bd54459843a1bd [INFO] validating manifest of baszalmstra/adventofcode2018 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 baszalmstra/adventofcode2018 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 baszalmstra/adventofcode2018 [INFO] finished frobbing baszalmstra/adventofcode2018 [INFO] frobbed toml for baszalmstra/adventofcode2018 written to work/ex/clippy-test-run/sources/stable/gh/baszalmstra/adventofcode2018/Cargo.toml [INFO] started frobbing baszalmstra/adventofcode2018 [INFO] finished frobbing baszalmstra/adventofcode2018 [INFO] frobbed toml for baszalmstra/adventofcode2018 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/baszalmstra/adventofcode2018/Cargo.toml [INFO] crate baszalmstra/adventofcode2018 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 baszalmstra/adventofcode2018 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/baszalmstra/adventofcode2018:/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] 7988a61351faea15aa154a672af90da6dd33988b6b0847db31daa5c01e84c597 [INFO] running `"docker" "start" "-a" "7988a61351faea15aa154a672af90da6dd33988b6b0847db31daa5c01e84c597"` [INFO] [stderr] Checking adventofcode2018 v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/point.rs:26:29 [INFO] [stderr] | [INFO] [stderr] 26 | pub fn min(self, other: &Point) -> Point { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `Point` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/point.rs:33:29 [INFO] [stderr] | [INFO] [stderr] 33 | pub fn max(self, other: &Point) -> Point { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `Point` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/point.rs:26:29 [INFO] [stderr] | [INFO] [stderr] 26 | pub fn min(self, other: &Point) -> Point { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `Point` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/point.rs:33:29 [INFO] [stderr] | [INFO] [stderr] 33 | pub fn max(self, other: &Point) -> Point { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `Point` [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: long literal lacking separators [INFO] [stderr] --> src/bin/day12.rs:178:33 [INFO] [stderr] | [INFO] [stderr] 178 | offset: state.offset + (50000000000 - 2000), [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `50_000_000_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: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/bin/day5.rs:2:30 [INFO] [stderr] | [INFO] [stderr] 2 | let mut value: Vec = polymer.map(|a| *a).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `polymer.cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: this `.fold` can be written more succinctly using another method [INFO] [stderr] --> src/bin/day1.rs:11:30 [INFO] [stderr] | [INFO] [stderr] 11 | let result = input.iter().fold(0, |a, b| a + b); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `.sum()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_fold)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fold [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/bin/day1.rs:21:16 [INFO] [stderr] | [INFO] [stderr] 21 | if let Some(_) = values_seen.get(¤t_frequency) { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 22 | | println!("First double frequency: {}", current_frequency); [INFO] [stderr] 23 | | return; [INFO] [stderr] 24 | | } [INFO] [stderr] | |_________- help: try this: `if values_seen.get(¤t_frequency).is_some()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [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/bin/day12.rs:68:30 [INFO] [stderr] | [INFO] [stderr] 68 | fn iterate(&self, rules: &Vec) -> State { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Rule]` [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: the operation is ineffective. Consider reducing it to `i` [INFO] [stderr] --> src/bin/day12.rs:87:39 [INFO] [stderr] | [INFO] [stderr] 87 | && previous_state[i - 0] == rule.pattern[2] [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bin/day12.rs:91:32 [INFO] [stderr] | [INFO] [stderr] 91 | state[i] = rule.result.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `rule.result` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/bin/day16.rs:58:81 [INFO] [stderr] | [INFO] [stderr] 58 | Opcode::Addi => result[args.2 as usize] = result[args.0 as usize] + args.1 as i32, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i32::from(args.1)` [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: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/bin/day16.rs:62:81 [INFO] [stderr] | [INFO] [stderr] 62 | Opcode::Muli => result[args.2 as usize] = result[args.0 as usize] * args.1 as i32, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i32::from(args.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 u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/bin/day16.rs:66:81 [INFO] [stderr] | [INFO] [stderr] 66 | Opcode::Bani => result[args.2 as usize] = result[args.0 as usize] & args.1 as i32, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i32::from(args.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 u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/bin/day16.rs:70:81 [INFO] [stderr] | [INFO] [stderr] 70 | Opcode::Bori => result[args.2 as usize] = result[args.0 as usize] | args.1 as i32, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i32::from(args.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 u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/bin/day16.rs:72:55 [INFO] [stderr] | [INFO] [stderr] 72 | Opcode::Seti => result[args.2 as usize] = args.0 as i32, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i32::from(args.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 u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/bin/day16.rs:74:46 [INFO] [stderr] | [INFO] [stderr] 74 | result[args.2 as usize] = if args.0 as i32 > result[args.1 as usize] { [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i32::from(args.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 u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/bin/day16.rs:81:72 [INFO] [stderr] | [INFO] [stderr] 81 | result[args.2 as usize] = if result[args.0 as usize] > args.1 as i32 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i32::from(args.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 u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/bin/day16.rs:95:46 [INFO] [stderr] | [INFO] [stderr] 95 | result[args.2 as usize] = if args.0 as i32 == result[args.1 as usize] { [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i32::from(args.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 u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/bin/day16.rs:102:73 [INFO] [stderr] | [INFO] [stderr] 102 | result[args.2 as usize] = if result[args.0 as usize] == args.1 as i32 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i32::from(args.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: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/bin/day16.rs:138:9 [INFO] [stderr] | [INFO] [stderr] 138 | VALUES.iter().map(|c| *c) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `VALUES.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: the loop variable `j` is only used to index `opcode_possibilities`. [INFO] [stderr] --> src/bin/day16.rs:228:26 [INFO] [stderr] | [INFO] [stderr] 228 | for j in 0..16 { [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] 228 | for in &mut opcode_possibilities { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/bin/day6.rs:101:14 [INFO] [stderr] | [INFO] [stderr] 101 | for y in min.y..max.y + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use: `min.y..=max.y` [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/bin/day6.rs:102:18 [INFO] [stderr] | [INFO] [stderr] 102 | for x in min.x..max.x + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use: `min.x..=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: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/bin/day6.rs:106:22 [INFO] [stderr] | [INFO] [stderr] 106 | (x as i64 - point.x as i64).abs() + (y as i64 - point.y as i64).abs(); [INFO] [stderr] | ^^^^^^^^ help: try: `i64::from(x)` [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: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/bin/day6.rs:106:33 [INFO] [stderr] | [INFO] [stderr] 106 | (x as i64 - point.x as i64).abs() + (y as i64 - point.y as i64).abs(); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i64::from(point.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 i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/bin/day6.rs:106:58 [INFO] [stderr] | [INFO] [stderr] 106 | (x as i64 - point.x as i64).abs() + (y as i64 - point.y as i64).abs(); [INFO] [stderr] | ^^^^^^^^ help: try: `i64::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: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/bin/day6.rs:106:69 [INFO] [stderr] | [INFO] [stderr] 106 | (x as i64 - point.x as i64).abs() + (y as i64 - point.y as i64).abs(); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i64::from(point.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/bin/day4.rs:19:34 [INFO] [stderr] | [INFO] [stderr] 19 | fn build_sleep_histogram(ranges: &Vec>) -> [u32; 60] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: change this to: `&[Range]` [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: use of `or_insert` followed by a function call [INFO] [stderr] --> src/bin/day4.rs:83:30 [INFO] [stderr] | [INFO] [stderr] 83 | .or_insert(vec![time..event.0.time().minute()]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(|| vec![time..event.0.time().minute()])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bin/day12.rs:178:33 [INFO] [stderr] | [INFO] [stderr] 178 | offset: state.offset + (50000000000 - 2000), [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `50_000_000_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/bin/day14.rs:37:17 [INFO] [stderr] | [INFO] [stderr] 37 | let input = 110201; [INFO] [stderr] | ^^^^^^ help: consider: `110_201` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/bin/day12.rs:68:30 [INFO] [stderr] | [INFO] [stderr] 68 | fn iterate(&self, rules: &Vec) -> State { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Rule]` [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: the operation is ineffective. Consider reducing it to `i` [INFO] [stderr] --> src/bin/day12.rs:87:39 [INFO] [stderr] | [INFO] [stderr] 87 | && previous_state[i - 0] == rule.pattern[2] [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bin/day12.rs:91:32 [INFO] [stderr] | [INFO] [stderr] 91 | state[i] = rule.result.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `rule.result` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [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/bin/day11.rs:23:23 [INFO] [stderr] | [INFO] [stderr] 23 | power_level_grid: &Vec, [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[i32]` [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: manual implementation of an assign operation [INFO] [stderr] --> src/bin/day11.rs:80:9 [INFO] [stderr] | [INFO] [stderr] 80 | block_size = block_size + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `block_size += 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_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/bin/day14.rs:20:51 [INFO] [stderr] | [INFO] [stderr] 20 | fn compare_end(scores: &VecDeque, request: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[usize]` [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: the loop variable `i` is only used to index `scoreboard`. [INFO] [stderr] --> src/bin/day14.rs:63:26 [INFO] [stderr] | [INFO] [stderr] 63 | for i in begin..end { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] --> src/bin/day13.rs:158:17 [INFO] [stderr] | [INFO] [stderr] 158 | / if i != j { [INFO] [stderr] 159 | | if carts[i].position == carts[j].position { [INFO] [stderr] 160 | | println!( [INFO] [stderr] 161 | | "Found collision at {},{} iteration: {}", [INFO] [stderr] ... | [INFO] [stderr] 165 | | } [INFO] [stderr] 166 | | } [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] 158 | if i != j && carts[i].position == carts[j].position { [INFO] [stderr] 159 | println!( [INFO] [stderr] 160 | "Found collision at {},{} iteration: {}", [INFO] [stderr] 161 | carts[i].position.0, carts[i].position.1, iteration [INFO] [stderr] 162 | ); [INFO] [stderr] 163 | colliding_carts = Some((i, j)); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 63 | for in scoreboard.iter().take(end).skip(begin) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/bin/day15.rs:102:61 [INFO] [stderr] | [INFO] [stderr] 102 | let targets: HashSet = HashSet::from_iter(to.map(|p| *p)); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `to.cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/bin/day15.rs:102:61 [INFO] [stderr] | [INFO] [stderr] 102 | let targets: HashSet = HashSet::from_iter(to.map(|p| *p)); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `to.cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [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/bin/day11.rs:23:23 [INFO] [stderr] | [INFO] [stderr] 23 | power_level_grid: &Vec, [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[i32]` [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: manual implementation of an assign operation [INFO] [stderr] --> src/bin/day11.rs:80:9 [INFO] [stderr] | [INFO] [stderr] 80 | block_size = block_size + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `block_size += 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bin/day9.rs:84:50 [INFO] [stderr] | [INFO] [stderr] 84 | assert_eq!(find_highest_score(13, 7999), 146373); [INFO] [stderr] | ^^^^^^ help: consider: `146_373` [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: slow zero-filling initialization [INFO] [stderr] --> src/bin/day9.rs:42:5 [INFO] [stderr] | [INFO] [stderr] 41 | let mut player_scores = Vec::with_capacity(player_count); [INFO] [stderr] | -------------------------------- help: consider replace allocation with: `vec![0; player_count]` [INFO] [stderr] 42 | player_scores.resize(player_count, 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::slow_vector_initialization)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#slow_vector_initialization [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/bin/day13.rs:158:17 [INFO] [stderr] | [INFO] [stderr] 158 | / if i != j { [INFO] [stderr] 159 | | if carts[i].position == carts[j].position { [INFO] [stderr] 160 | | println!( [INFO] [stderr] 161 | | "Found collision at {},{} iteration: {}", [INFO] [stderr] ... | [INFO] [stderr] 165 | | } [INFO] [stderr] 166 | | } [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] 158 | if i != j && carts[i].position == carts[j].position { [INFO] [stderr] 159 | println!( [INFO] [stderr] 160 | "Found collision at {},{} iteration: {}", [INFO] [stderr] 161 | carts[i].position.0, carts[i].position.1, iteration [INFO] [stderr] 162 | ); [INFO] [stderr] 163 | colliding_carts = Some((i, j)); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/bin/day5.rs:2:30 [INFO] [stderr] | [INFO] [stderr] 2 | let mut value: Vec = polymer.map(|a| *a).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `polymer.cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: slow zero-filling initialization [INFO] [stderr] --> src/bin/day9.rs:42:5 [INFO] [stderr] | [INFO] [stderr] 41 | let mut player_scores = Vec::with_capacity(player_count); [INFO] [stderr] | -------------------------------- help: consider replace allocation with: `vec![0; player_count]` [INFO] [stderr] 42 | player_scores.resize(player_count, 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::slow_vector_initialization)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#slow_vector_initialization [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bin/day14.rs:37:17 [INFO] [stderr] | [INFO] [stderr] 37 | let input = 110201; [INFO] [stderr] | ^^^^^^ help: consider: `110_201` [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: an inclusive range would be more readable [INFO] [stderr] --> src/bin/day6.rs:101:14 [INFO] [stderr] | [INFO] [stderr] 101 | for y in min.y..max.y + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use: `min.y..=max.y` [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/bin/day6.rs:102:18 [INFO] [stderr] | [INFO] [stderr] 102 | for x in min.x..max.x + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use: `min.x..=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: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/bin/day6.rs:106:22 [INFO] [stderr] | [INFO] [stderr] 106 | (x as i64 - point.x as i64).abs() + (y as i64 - point.y as i64).abs(); [INFO] [stderr] | ^^^^^^^^ help: try: `i64::from(x)` [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: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/bin/day6.rs:106:33 [INFO] [stderr] | [INFO] [stderr] 106 | (x as i64 - point.x as i64).abs() + (y as i64 - point.y as i64).abs(); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i64::from(point.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 i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/bin/day6.rs:106:58 [INFO] [stderr] | [INFO] [stderr] 106 | (x as i64 - point.x as i64).abs() + (y as i64 - point.y as i64).abs(); [INFO] [stderr] | ^^^^^^^^ help: try: `i64::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: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/bin/day6.rs:106:69 [INFO] [stderr] | [INFO] [stderr] 106 | (x as i64 - point.x as i64).abs() + (y as i64 - point.y as i64).abs(); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i64::from(point.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/bin/day14.rs:20:51 [INFO] [stderr] | [INFO] [stderr] 20 | fn compare_end(scores: &VecDeque, request: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[usize]` [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: the loop variable `i` is only used to index `scoreboard`. [INFO] [stderr] --> src/bin/day14.rs:63:26 [INFO] [stderr] | [INFO] [stderr] 63 | for i in begin..end { [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] 63 | for in scoreboard.iter().take(end).skip(begin) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this `.fold` can be written more succinctly using another method [INFO] [stderr] --> src/bin/day1.rs:11:30 [INFO] [stderr] | [INFO] [stderr] 11 | let result = input.iter().fold(0, |a, b| a + b); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `.sum()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_fold)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fold [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/bin/day1.rs:21:16 [INFO] [stderr] | [INFO] [stderr] 21 | if let Some(_) = values_seen.get(¤t_frequency) { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 22 | | println!("First double frequency: {}", current_frequency); [INFO] [stderr] 23 | | return; [INFO] [stderr] 24 | | } [INFO] [stderr] | |_________- help: try this: `if values_seen.get(¤t_frequency).is_some()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/bin/day16.rs:58:81 [INFO] [stderr] | [INFO] [stderr] 58 | Opcode::Addi => result[args.2 as usize] = result[args.0 as usize] + args.1 as i32, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i32::from(args.1)` [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: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/bin/day16.rs:62:81 [INFO] [stderr] | [INFO] [stderr] 62 | Opcode::Muli => result[args.2 as usize] = result[args.0 as usize] * args.1 as i32, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i32::from(args.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 u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/bin/day16.rs:66:81 [INFO] [stderr] | [INFO] [stderr] 66 | Opcode::Bani => result[args.2 as usize] = result[args.0 as usize] & args.1 as i32, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i32::from(args.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 u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/bin/day16.rs:70:81 [INFO] [stderr] | [INFO] [stderr] 70 | Opcode::Bori => result[args.2 as usize] = result[args.0 as usize] | args.1 as i32, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i32::from(args.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 u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/bin/day16.rs:72:55 [INFO] [stderr] | [INFO] [stderr] 72 | Opcode::Seti => result[args.2 as usize] = args.0 as i32, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i32::from(args.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 u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/bin/day16.rs:74:46 [INFO] [stderr] | [INFO] [stderr] 74 | result[args.2 as usize] = if args.0 as i32 > result[args.1 as usize] { [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i32::from(args.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 u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/bin/day16.rs:81:72 [INFO] [stderr] | [INFO] [stderr] 81 | result[args.2 as usize] = if result[args.0 as usize] > args.1 as i32 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i32::from(args.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 u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/bin/day16.rs:95:46 [INFO] [stderr] | [INFO] [stderr] 95 | result[args.2 as usize] = if args.0 as i32 == result[args.1 as usize] { [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i32::from(args.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 u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/bin/day16.rs:102:73 [INFO] [stderr] | [INFO] [stderr] 102 | result[args.2 as usize] = if result[args.0 as usize] == args.1 as i32 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i32::from(args.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: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/bin/day16.rs:138:9 [INFO] [stderr] | [INFO] [stderr] 138 | VALUES.iter().map(|c| *c) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `VALUES.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: the loop variable `j` is only used to index `opcode_possibilities`. [INFO] [stderr] --> src/bin/day16.rs:228:26 [INFO] [stderr] | [INFO] [stderr] 228 | for j in 0..16 { [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] 228 | for in &mut opcode_possibilities { [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/bin/day4.rs:19:34 [INFO] [stderr] | [INFO] [stderr] 19 | fn build_sleep_histogram(ranges: &Vec>) -> [u32; 60] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: change this to: `&[Range]` [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: use of `or_insert` followed by a function call [INFO] [stderr] --> src/bin/day4.rs:83:30 [INFO] [stderr] | [INFO] [stderr] 83 | .or_insert(vec![time..event.0.time().minute()]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(|| vec![time..event.0.time().minute()])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 13.65s [INFO] running `"docker" "inspect" "7988a61351faea15aa154a672af90da6dd33988b6b0847db31daa5c01e84c597"` [INFO] running `"docker" "rm" "-f" "7988a61351faea15aa154a672af90da6dd33988b6b0847db31daa5c01e84c597"` [INFO] [stdout] 7988a61351faea15aa154a672af90da6dd33988b6b0847db31daa5c01e84c597