[INFO] updating cached repository fireyang/advent_of_code_2018 [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/fireyang/advent_of_code_2018 [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/fireyang/advent_of_code_2018" "work/ex/clippy-test-run/sources/stable/gh/fireyang/advent_of_code_2018"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/fireyang/advent_of_code_2018'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/fireyang/advent_of_code_2018" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/fireyang/advent_of_code_2018"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/fireyang/advent_of_code_2018'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 78010f3f196ed98f7223f261ddc820a7eeac1eab [INFO] sha for GitHub repo fireyang/advent_of_code_2018: 78010f3f196ed98f7223f261ddc820a7eeac1eab [INFO] validating manifest of fireyang/advent_of_code_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 fireyang/advent_of_code_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 fireyang/advent_of_code_2018 [INFO] finished frobbing fireyang/advent_of_code_2018 [INFO] frobbed toml for fireyang/advent_of_code_2018 written to work/ex/clippy-test-run/sources/stable/gh/fireyang/advent_of_code_2018/Cargo.toml [INFO] started frobbing fireyang/advent_of_code_2018 [INFO] finished frobbing fireyang/advent_of_code_2018 [INFO] frobbed toml for fireyang/advent_of_code_2018 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/fireyang/advent_of_code_2018/Cargo.toml [INFO] crate fireyang/advent_of_code_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 fireyang/advent_of_code_2018 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-1/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/fireyang/advent_of_code_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] 5e98716410c8d21b4c80c325c162cbddcec84804d09660cbe43dd6a4d90598fb [INFO] running `"docker" "start" "-a" "5e98716410c8d21b4c80c325c162cbddcec84804d09660cbe43dd6a4d90598fb"` [INFO] [stderr] Checking linked-list v0.0.3 [INFO] [stderr] Checking advent_of_code v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/day8.rs:40:21 [INFO] [stderr] | [INFO] [stderr] 40 | children: children, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `children` [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/day8.rs:40:21 [INFO] [stderr] | [INFO] [stderr] 40 | children: children, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `children` [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/day8.rs:41:21 [INFO] [stderr] | [INFO] [stderr] 41 | metas: metas, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `metas` [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] | [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/day8.rs:41:21 [INFO] [stderr] | [INFO] [stderr] 41 | metas: metas, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `metas` [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: unneeded return statement [INFO] [stderr] --> src/common/mod.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | return Ok(lines); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(lines)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/day1.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | / mod day1 { [INFO] [stderr] 2 | | use std::collections::HashSet; [INFO] [stderr] 3 | | [INFO] [stderr] 4 | | #[allow(dead_code)] [INFO] [stderr] ... | [INFO] [stderr] 36 | | } [INFO] [stderr] 37 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::module_inception)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/day1.rs:14:9 [INFO] [stderr] | [INFO] [stderr] 14 | return result; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `result` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/day1.rs:35:9 [INFO] [stderr] | [INFO] [stderr] 35 | return current; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `current` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/day10.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | / mod day10 { [INFO] [stderr] 2 | | use std::collections::HashSet; [INFO] [stderr] 3 | | [INFO] [stderr] 4 | | #[allow(dead_code)] [INFO] [stderr] ... | [INFO] [stderr] 101 | | } [INFO] [stderr] 102 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/day11.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | / mod day11 { [INFO] [stderr] 2 | | // use std::collections::HashSet; [INFO] [stderr] 3 | | // use std::num::Float; [INFO] [stderr] 4 | | [INFO] [stderr] ... | [INFO] [stderr] 71 | | } [INFO] [stderr] 72 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/day12.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | / mod day12 { [INFO] [stderr] 2 | | use std::collections::HashMap; [INFO] [stderr] 3 | | [INFO] [stderr] 4 | | #[allow(dead_code)] [INFO] [stderr] ... | [INFO] [stderr] 45 | | } [INFO] [stderr] 46 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/day2.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | / mod day2 { [INFO] [stderr] 2 | | // use std::collections::HashSet; [INFO] [stderr] 3 | | use std::collections::HashMap; [INFO] [stderr] 4 | | [INFO] [stderr] ... | [INFO] [stderr] 55 | | } [INFO] [stderr] 56 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/day3.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | / mod day3 { [INFO] [stderr] 2 | | use std::collections::HashMap; [INFO] [stderr] 3 | | use std::collections::HashSet; [INFO] [stderr] 4 | | [INFO] [stderr] ... | [INFO] [stderr] 69 | | } [INFO] [stderr] 70 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: unneeded unit expression [INFO] [stderr] --> src/day3.rs:56:25 [INFO] [stderr] | [INFO] [stderr] 56 | () [INFO] [stderr] | ^^ help: remove the final `()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit expression [INFO] [stderr] --> src/day3.rs:60:25 [INFO] [stderr] | [INFO] [stderr] 60 | () [INFO] [stderr] | ^^ help: remove the final `()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/day4.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | / mod day4 { [INFO] [stderr] 2 | | extern crate chrono; [INFO] [stderr] 3 | | use chrono::prelude::*; [INFO] [stderr] 4 | | use std::collections::HashMap; [INFO] [stderr] ... | [INFO] [stderr] 126 | | } [INFO] [stderr] 127 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/day4.rs:48:20 [INFO] [stderr] | [INFO] [stderr] 48 | } else { [INFO] [stderr] | ____________________^ [INFO] [stderr] 49 | | if let Some(current) = user_map.get_mut(¤t_id) { [INFO] [stderr] 50 | | let tm: i32 = dt.minute() as i32; [INFO] [stderr] 51 | | if x.contains("falls asleep") { [INFO] [stderr] ... | [INFO] [stderr] 58 | | } [INFO] [stderr] 59 | | } [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] 48 | } else if let Some(current) = user_map.get_mut(¤t_id) { [INFO] [stderr] 49 | let tm: i32 = dt.minute() as i32; [INFO] [stderr] 50 | if x.contains("falls asleep") { [INFO] [stderr] 51 | current.fall_sleep = tm; [INFO] [stderr] 52 | } else if x.contains("wakes up") { [INFO] [stderr] 53 | for i in current.fall_sleep..tm { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/day4.rs:99:20 [INFO] [stderr] | [INFO] [stderr] 99 | } else { [INFO] [stderr] | ____________________^ [INFO] [stderr] 100 | | if let Some(current) = user_map.get_mut(¤t_id) { [INFO] [stderr] 101 | | let tm: i32 = dt.minute() as i32; [INFO] [stderr] 102 | | if x.contains("falls asleep") { [INFO] [stderr] ... | [INFO] [stderr] 109 | | } [INFO] [stderr] 110 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [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] 99 | } else if let Some(current) = user_map.get_mut(¤t_id) { [INFO] [stderr] 100 | let tm: i32 = dt.minute() as i32; [INFO] [stderr] 101 | if x.contains("falls asleep") { [INFO] [stderr] 102 | current.fall_sleep = tm; [INFO] [stderr] 103 | } else if x.contains("wakes up") { [INFO] [stderr] 104 | for i in current.fall_sleep..tm { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/day5.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | / mod day5 { [INFO] [stderr] 2 | | extern crate regex; [INFO] [stderr] 3 | | use std::collections::LinkedList; [INFO] [stderr] 4 | | // use std::collections::HashMap; [INFO] [stderr] ... | [INFO] [stderr] 61 | | } [INFO] [stderr] 62 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/day5.rs:57:17 [INFO] [stderr] | [INFO] [stderr] 57 | o [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/day5.rs:55:25 [INFO] [stderr] | [INFO] [stderr] 55 | let o = part1(s); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/day6.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | / mod day6 { [INFO] [stderr] 2 | | use std::collections::HashMap; [INFO] [stderr] 3 | | // use std::collections::HashSet; [INFO] [stderr] 4 | | [INFO] [stderr] ... | [INFO] [stderr] 164 | | } [INFO] [stderr] 165 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/day7.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | / mod day7 { [INFO] [stderr] 2 | | use std::collections::HashMap; [INFO] [stderr] 3 | | // use std::collections::HashSet; [INFO] [stderr] 4 | | lazy_static! { [INFO] [stderr] ... | [INFO] [stderr] 129 | | } [INFO] [stderr] 130 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/day7.rs:97:25 [INFO] [stderr] | [INFO] [stderr] 97 | return (*head, *life - 1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(*head, *life - 1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/day7.rs:99:25 [INFO] [stderr] | [INFO] [stderr] 99 | return (*head, *life); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(*head, *life)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/day8.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | / mod day8 { [INFO] [stderr] 2 | | [INFO] [stderr] 3 | | #[derive(Debug)] [INFO] [stderr] 4 | | struct Node { [INFO] [stderr] ... | [INFO] [stderr] 59 | | } [INFO] [stderr] 60 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/day9.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | / mod day9 { [INFO] [stderr] 2 | | extern crate linked_list; [INFO] [stderr] 3 | | use std::collections::HashMap; [INFO] [stderr] 4 | | // use std::collections::HashSet; [INFO] [stderr] ... | [INFO] [stderr] 213 | | [INFO] [stderr] 214 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: unused imports: `prelude::*`, `self` [INFO] [stderr] --> src/day9.rs:9:19 [INFO] [stderr] | [INFO] [stderr] 9 | use std::io::{self, prelude::*}; [INFO] [stderr] | ^^^^ ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/day9.rs:98:37 [INFO] [stderr] | [INFO] [stderr] 98 | if i % 10000 ==0 || i > 7100000{ [INFO] [stderr] | ^^^^^^^ help: consider: `7_100_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: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/day9.rs:194:19 [INFO] [stderr] | [INFO] [stderr] 194 | } else{ [INFO] [stderr] | ___________________^ [INFO] [stderr] 195 | | if cursor.prev().is_none() { [INFO] [stderr] 196 | | cursor.prev(); [INFO] [stderr] 197 | | } [INFO] [stderr] 198 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [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] 194 | } elseif cursor.prev().is_none() { [INFO] [stderr] 195 | cursor.prev(); [INFO] [stderr] 196 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/day9.rs:204:13 [INFO] [stderr] | [INFO] [stderr] 204 | return 0; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/day9.rs:210:13 [INFO] [stderr] | [INFO] [stderr] 210 | return next as usize % len; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `next as usize % len` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/common/mod.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | return Ok(lines); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(lines)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/day1.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | / mod day1 { [INFO] [stderr] 2 | | use std::collections::HashSet; [INFO] [stderr] 3 | | [INFO] [stderr] 4 | | #[allow(dead_code)] [INFO] [stderr] ... | [INFO] [stderr] 36 | | } [INFO] [stderr] 37 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::module_inception)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/day1.rs:14:9 [INFO] [stderr] | [INFO] [stderr] 14 | return result; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `result` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/day1.rs:35:9 [INFO] [stderr] | [INFO] [stderr] 35 | return current; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `current` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/day1.rs:65:9 [INFO] [stderr] | [INFO] [stderr] 65 | return Ok(lines); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(lines)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/day1.rs:78:9 [INFO] [stderr] | [INFO] [stderr] 78 | return r; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `r` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/day1.rs:91:9 [INFO] [stderr] | [INFO] [stderr] 91 | return r; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `r` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/day10.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | / mod day10 { [INFO] [stderr] 2 | | use std::collections::HashSet; [INFO] [stderr] 3 | | [INFO] [stderr] 4 | | #[allow(dead_code)] [INFO] [stderr] ... | [INFO] [stderr] 101 | | } [INFO] [stderr] 102 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/day11.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | / mod day11 { [INFO] [stderr] 2 | | // use std::collections::HashSet; [INFO] [stderr] 3 | | // use std::num::Float; [INFO] [stderr] 4 | | [INFO] [stderr] ... | [INFO] [stderr] 71 | | } [INFO] [stderr] 72 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/day12.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | / mod day12 { [INFO] [stderr] 2 | | use std::collections::HashMap; [INFO] [stderr] 3 | | [INFO] [stderr] 4 | | #[allow(dead_code)] [INFO] [stderr] ... | [INFO] [stderr] 45 | | } [INFO] [stderr] 46 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/day12.rs:108:26 [INFO] [stderr] | [INFO] [stderr] 108 | let sum = pre + (50000000000i64 - 124) * (next - pre); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider: `50_000_000_000i64` [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/day12.rs:109:25 [INFO] [stderr] | [INFO] [stderr] 109 | assert_eq!(sum, 3150000000905i64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider: `3_150_000_000_905i64` [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: module has the same name as its containing module [INFO] [stderr] --> src/day2.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | / mod day2 { [INFO] [stderr] 2 | | // use std::collections::HashSet; [INFO] [stderr] 3 | | use std::collections::HashMap; [INFO] [stderr] 4 | | [INFO] [stderr] ... | [INFO] [stderr] 55 | | } [INFO] [stderr] 56 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/day3.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | / mod day3 { [INFO] [stderr] 2 | | use std::collections::HashMap; [INFO] [stderr] 3 | | use std::collections::HashSet; [INFO] [stderr] 4 | | [INFO] [stderr] ... | [INFO] [stderr] 69 | | } [INFO] [stderr] 70 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: unneeded unit expression [INFO] [stderr] --> src/day3.rs:56:25 [INFO] [stderr] | [INFO] [stderr] 56 | () [INFO] [stderr] | ^^ help: remove the final `()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit expression [INFO] [stderr] --> src/day3.rs:60:25 [INFO] [stderr] | [INFO] [stderr] 60 | () [INFO] [stderr] | ^^ help: remove the final `()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/day3.rs:92:9 [INFO] [stderr] | [INFO] [stderr] 92 | c [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/day3.rs:85:17 [INFO] [stderr] | [INFO] [stderr] 85 | let c = Box::new(Claim { [INFO] [stderr] | _________________^ [INFO] [stderr] 86 | | id: v[0], [INFO] [stderr] 87 | | left: v[1], [INFO] [stderr] 88 | | top: v[2], [INFO] [stderr] 89 | | wide: v[3], [INFO] [stderr] 90 | | tall: v[4], [INFO] [stderr] 91 | | }); [INFO] [stderr] | |__________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/day3.rs:122:24 [INFO] [stderr] | [INFO] [stderr] 122 | assert_eq!(r2, 105071); [INFO] [stderr] | ^^^^^^ help: consider: `105_071` [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: module has the same name as its containing module [INFO] [stderr] --> src/day4.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | / mod day4 { [INFO] [stderr] 2 | | extern crate chrono; [INFO] [stderr] 3 | | use chrono::prelude::*; [INFO] [stderr] 4 | | use std::collections::HashMap; [INFO] [stderr] ... | [INFO] [stderr] 126 | | } [INFO] [stderr] 127 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/day4.rs:48:20 [INFO] [stderr] | [INFO] [stderr] 48 | } else { [INFO] [stderr] | ____________________^ [INFO] [stderr] 49 | | if let Some(current) = user_map.get_mut(¤t_id) { [INFO] [stderr] 50 | | let tm: i32 = dt.minute() as i32; [INFO] [stderr] 51 | | if x.contains("falls asleep") { [INFO] [stderr] ... | [INFO] [stderr] 58 | | } [INFO] [stderr] 59 | | } [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] 48 | } else if let Some(current) = user_map.get_mut(¤t_id) { [INFO] [stderr] 49 | let tm: i32 = dt.minute() as i32; [INFO] [stderr] 50 | if x.contains("falls asleep") { [INFO] [stderr] 51 | current.fall_sleep = tm; [INFO] [stderr] 52 | } else if x.contains("wakes up") { [INFO] [stderr] 53 | for i in current.fall_sleep..tm { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/day4.rs:99:20 [INFO] [stderr] | [INFO] [stderr] 99 | } else { [INFO] [stderr] | ____________________^ [INFO] [stderr] 100 | | if let Some(current) = user_map.get_mut(¤t_id) { [INFO] [stderr] 101 | | let tm: i32 = dt.minute() as i32; [INFO] [stderr] 102 | | if x.contains("falls asleep") { [INFO] [stderr] ... | [INFO] [stderr] 109 | | } [INFO] [stderr] 110 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [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] 99 | } else if let Some(current) = user_map.get_mut(¤t_id) { [INFO] [stderr] 100 | let tm: i32 = dt.minute() as i32; [INFO] [stderr] 101 | if x.contains("falls asleep") { [INFO] [stderr] 102 | current.fall_sleep = tm; [INFO] [stderr] 103 | } else if x.contains("wakes up") { [INFO] [stderr] 104 | for i in current.fall_sleep..tm { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/day5.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | / mod day5 { [INFO] [stderr] 2 | | extern crate regex; [INFO] [stderr] 3 | | use std::collections::LinkedList; [INFO] [stderr] 4 | | // use std::collections::HashMap; [INFO] [stderr] ... | [INFO] [stderr] 61 | | } [INFO] [stderr] 62 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/day5.rs:57:17 [INFO] [stderr] | [INFO] [stderr] 57 | o [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/day5.rs:55:25 [INFO] [stderr] | [INFO] [stderr] 55 | let o = part1(s); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/day6.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | / mod day6 { [INFO] [stderr] 2 | | use std::collections::HashMap; [INFO] [stderr] 3 | | // use std::collections::HashSet; [INFO] [stderr] 4 | | [INFO] [stderr] ... | [INFO] [stderr] 164 | | } [INFO] [stderr] 165 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/day6.rs:194:9 [INFO] [stderr] | [INFO] [stderr] 194 | points [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/day6.rs:181:22 [INFO] [stderr] | [INFO] [stderr] 181 | let points = val [INFO] [stderr] | ______________________^ [INFO] [stderr] 182 | | .split('\n') [INFO] [stderr] 183 | | .map(|x| x.trim()) [INFO] [stderr] 184 | | .filter(|&x| x.len() != 0) [INFO] [stderr] ... | [INFO] [stderr] 192 | | }) [INFO] [stderr] 193 | | .collect(); [INFO] [stderr] | |______________________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/day7.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | / mod day7 { [INFO] [stderr] 2 | | use std::collections::HashMap; [INFO] [stderr] 3 | | // use std::collections::HashSet; [INFO] [stderr] 4 | | lazy_static! { [INFO] [stderr] ... | [INFO] [stderr] 129 | | } [INFO] [stderr] 130 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/day7.rs:97:25 [INFO] [stderr] | [INFO] [stderr] 97 | return (*head, *life - 1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(*head, *life - 1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/day7.rs:99:25 [INFO] [stderr] | [INFO] [stderr] 99 | return (*head, *life); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(*head, *life)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/day8.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | / mod day8 { [INFO] [stderr] 2 | | [INFO] [stderr] 3 | | #[derive(Debug)] [INFO] [stderr] 4 | | struct Node { [INFO] [stderr] ... | [INFO] [stderr] 59 | | } [INFO] [stderr] 60 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/day9.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | / mod day9 { [INFO] [stderr] 2 | | extern crate linked_list; [INFO] [stderr] 3 | | use std::collections::HashMap; [INFO] [stderr] 4 | | // use std::collections::HashSet; [INFO] [stderr] ... | [INFO] [stderr] 213 | | [INFO] [stderr] 214 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: unused imports: `prelude::*`, `self` [INFO] [stderr] --> src/day9.rs:9:19 [INFO] [stderr] | [INFO] [stderr] 9 | use std::io::{self, prelude::*}; [INFO] [stderr] | ^^^^ ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/day9.rs:98:37 [INFO] [stderr] | [INFO] [stderr] 98 | if i % 10000 ==0 || i > 7100000{ [INFO] [stderr] | ^^^^^^^ help: consider: `7_100_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: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/day9.rs:194:19 [INFO] [stderr] | [INFO] [stderr] 194 | } else{ [INFO] [stderr] | ___________________^ [INFO] [stderr] 195 | | if cursor.prev().is_none() { [INFO] [stderr] 196 | | cursor.prev(); [INFO] [stderr] 197 | | } [INFO] [stderr] 198 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [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] 194 | } elseif cursor.prev().is_none() { [INFO] [stderr] 195 | cursor.prev(); [INFO] [stderr] 196 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/day9.rs:204:13 [INFO] [stderr] | [INFO] [stderr] 204 | return 0; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/day9.rs:210:13 [INFO] [stderr] | [INFO] [stderr] 210 | return next as usize % len; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `next as usize % len` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/day9.rs:226:47 [INFO] [stderr] | [INFO] [stderr] 226 | assert_eq!(day9::part1(13, 23, 7999), 146373); [INFO] [stderr] | ^^^^^^ help: consider: `146_373` [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/day9.rs:231:49 [INFO] [stderr] | [INFO] [stderr] 231 | assert_eq!(day9::part2(468, 23, 71010), 374287); [INFO] [stderr] | ^^^^^^ help: consider: `374_287` [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/day9.rs:235:55 [INFO] [stderr] | [INFO] [stderr] 235 | assert_eq!(day9::part2(468, 23, 71010 * 100), 1380094); [INFO] [stderr] | ^^^^^^^ help: consider: `1_380_094` [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: `multiple` [INFO] [stderr] --> src/day9.rs:167:38 [INFO] [stderr] | [INFO] [stderr] 167 | pub fn part2b(player_count: i32, multiple: i32, points: i32 ) -> usize { [INFO] [stderr] | ^^^^^^^^ help: consider using `_multiple` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] 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/day10.rs:5:29 [INFO] [stderr] | [INFO] [stderr] 5 | pub fn print_msg(input: &Vec<(i32, i32, i32, i32)>, time: i32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[(i32, i32, i32, 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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day10.rs:51:25 [INFO] [stderr] | [INFO] [stderr] 51 | pub fn part1(input: &Vec<(i32, i32, i32, i32)>, start: i32, times: i32, step: usize) -> i32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[(i32, i32, i32, i32)]` [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/day12.rs:5:36 [INFO] [stderr] | [INFO] [stderr] 5 | pub fn part1(init: &str, temp: &Vec<(&str, &str)>, generation: i32) -> i32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[(&str, &str)]` [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: you seem to want to iterate on a map's values [INFO] [stderr] --> src/day2.rs:19:29 [INFO] [stderr] | [INFO] [stderr] 19 | for (_, num) in &h { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::for_kv_map)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 19 | for num in h.values() { [INFO] [stderr] | ^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/day2.rs:47:20 [INFO] [stderr] | [INFO] [stderr] 47 | let str1 = vec.get(i).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try this: `vec[i]` [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: called `.get().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/day2.rs:48:20 [INFO] [stderr] | [INFO] [stderr] 48 | let str2 = vec.get(j).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try this: `vec[j]` [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 Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/day4.rs:41:31 [INFO] [stderr] | [INFO] [stderr] 41 | let id: i32 = split_vec.get(3).unwrap().parse().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&split_vec[3]` [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: use of `or_insert` followed by a function call [INFO] [stderr] --> src/day4.rs:43:44 [INFO] [stderr] | [INFO] [stderr] 43 | user_map.entry(current_id).or_insert(Box::new(Guard { [INFO] [stderr] | ____________________________________________^ [INFO] [stderr] 44 | | id: current_id, [INFO] [stderr] 45 | | fall_sleep: 0, [INFO] [stderr] 46 | | sleeps: vec![0; 60], [INFO] [stderr] 47 | | })); [INFO] [stderr] | |___________________^ [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] help: try this [INFO] [stderr] | [INFO] [stderr] 43 | user_map.entry(current_id).or_insert_with(|| Box::new(Guard { [INFO] [stderr] 44 | id: current_id, [INFO] [stderr] 45 | fall_sleep: 0, [INFO] [stderr] 46 | sleeps: vec![0; 60], [INFO] [stderr] 47 | })); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/day4.rs:92:31 [INFO] [stderr] | [INFO] [stderr] 92 | let id: i32 = split_vec.get(3).unwrap().parse().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&split_vec[3]` [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: use of `or_insert` followed by a function call [INFO] [stderr] --> src/day4.rs:94:44 [INFO] [stderr] | [INFO] [stderr] 94 | user_map.entry(current_id).or_insert(Box::new(Guard { [INFO] [stderr] | ____________________________________________^ [INFO] [stderr] 95 | | id: current_id, [INFO] [stderr] 96 | | fall_sleep: 0, [INFO] [stderr] 97 | | sleeps: vec![0; 60], [INFO] [stderr] 98 | | })); [INFO] [stderr] | |___________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 94 | user_map.entry(current_id).or_insert_with(|| Box::new(Guard { [INFO] [stderr] 95 | id: current_id, [INFO] [stderr] 96 | fall_sleep: 0, [INFO] [stderr] 97 | sleeps: vec![0; 60], [INFO] [stderr] 98 | })); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/day5.rs:9:32 [INFO] [stderr] | [INFO] [stderr] 9 | fn check_react(a: char, b: &char) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `char` [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: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/day5.rs:33:36 [INFO] [stderr] | [INFO] [stderr] 33 | pub fn remove_type_unit(input: &String, c: &char) -> String { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [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/day5.rs:33:48 [INFO] [stderr] | [INFO] [stderr] 33 | pub fn remove_type_unit(input: &String, c: &char) -> String { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `char` [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 `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/day5.rs:40:31 [INFO] [stderr] | [INFO] [stderr] 40 | pub fn scan_letter(input: &String) -> HashSet { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [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/day6.rs:14:18 [INFO] [stderr] | [INFO] [stderr] 14 | for i in -step..step + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: use: `-step..=step` [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/day6.rs:15:22 [INFO] [stderr] | [INFO] [stderr] 15 | for j in -step..step + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: use: `-step..=step` [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 variable: `multiple` [INFO] [stderr] --> src/day9.rs:167:38 [INFO] [stderr] | [INFO] [stderr] 167 | pub fn part2b(player_count: i32, multiple: i32, points: i32 ) -> usize { [INFO] [stderr] | ^^^^^^^^ help: consider using `_multiple` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/day6.rs:26:18 [INFO] [stderr] | [INFO] [stderr] 26 | for i in -step..step + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: use: `-step..=step` [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/day6.rs:27:22 [INFO] [stderr] | [INFO] [stderr] 27 | for j in -step..step + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: use: `-step..=step` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day7.rs:19:25 [INFO] [stderr] | [INFO] [stderr] 19 | pub fn part1(input: &Vec<(&str, &str)>) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[(&str, &str)]` [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: use of `or_insert` followed by a function call [INFO] [stderr] --> src/day7.rs:23:39 [INFO] [stderr] | [INFO] [stderr] 23 | let k = sort_map.entry(p).or_insert(Vec::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::new)` [INFO] [stderr] | [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/day7.rs:32:13 [INFO] [stderr] | [INFO] [stderr] 32 | / match deep_map.get(k) { [INFO] [stderr] 33 | | None => { [INFO] [stderr] 34 | | quene.push(k); [INFO] [stderr] 35 | | } [INFO] [stderr] 36 | | _ => (), [INFO] [stderr] 37 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 32 | if let None = deep_map.get(k) { [INFO] [stderr] 33 | quene.push(k); [INFO] [stderr] 34 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/day7.rs:39:15 [INFO] [stderr] | [INFO] [stderr] 39 | while quene.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!quene.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/day7.rs:64:25 [INFO] [stderr] | [INFO] [stderr] 64 | pub fn part2(input: &Vec<(&str, &str)>, worker_count: usize, base: i32) -> i32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[(&str, &str)]` [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: use of `or_insert` followed by a function call [INFO] [stderr] --> src/day7.rs:70:40 [INFO] [stderr] | [INFO] [stderr] 70 | let k = sort_map.entry(p1).or_insert(Vec::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::new)` [INFO] [stderr] | [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/day7.rs:79:13 [INFO] [stderr] | [INFO] [stderr] 79 | / match deep_map.get(k) { [INFO] [stderr] 80 | | None => { [INFO] [stderr] 81 | | quene.push((*k, *k + base)); [INFO] [stderr] 82 | | } [INFO] [stderr] 83 | | _ => (), [INFO] [stderr] 84 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 79 | if let None = deep_map.get(k) { [INFO] [stderr] 80 | quene.push((*k, *k + base)); [INFO] [stderr] 81 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/day7.rs:87:15 [INFO] [stderr] | [INFO] [stderr] 87 | while quene.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!quene.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: length comparison to zero [INFO] [stderr] --> src/day8.rs:16:16 [INFO] [stderr] | [INFO] [stderr] 16 | if self.children.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.children.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: identical conversion [INFO] [stderr] --> src/day8.rs:32:9 [INFO] [stderr] | [INFO] [stderr] 32 | / (0..num) [INFO] [stderr] 33 | | .into_iter() [INFO] [stderr] | |________________________^ help: consider removing `.into_iter()`: `(0..num)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/day9.rs:20:24 [INFO] [stderr] | [INFO] [stderr] 20 | pub fn new(val:&i32) -> RefCell>{ [INFO] [stderr] | ^^^^ help: consider passing by value instead: `i32` [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: an inclusive range would be more readable [INFO] [stderr] --> src/day9.rs:80:18 [INFO] [stderr] | [INFO] [stderr] 80 | for i in 1..points+1{ [INFO] [stderr] | ^^^^^^^^^^^ help: use: `1..=points` [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: manual implementation of an assign operation [INFO] [stderr] --> src/day9.rs:85:21 [INFO] [stderr] | [INFO] [stderr] 85 | current = current -len; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `current -= len` [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: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/day9.rs:93:27 [INFO] [stderr] | [INFO] [stderr] 93 | *score += i as i64 + remove_score as i64; [INFO] [stderr] | ^^^^^^^^ help: try: `i64::from(i)` [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/day9.rs:93:38 [INFO] [stderr] | [INFO] [stderr] 93 | *score += i as i64 + remove_score as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(remove_score)` [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: manual implementation of an assign operation [INFO] [stderr] --> src/day9.rs:102:13 [INFO] [stderr] | [INFO] [stderr] 102 | current_player = current_player % player_count; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `current_player %= player_count` [INFO] [stderr] | [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: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/day9.rs:135:27 [INFO] [stderr] | [INFO] [stderr] 135 | *score += i as i64 + v as i64; [INFO] [stderr] | ^^^^^^^^ help: try: `i64::from(i)` [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/day9.rs:135:38 [INFO] [stderr] | [INFO] [stderr] 135 | *score += i as i64 + v as i64; [INFO] [stderr] | ^^^^^^^^ help: try: `i64::from(v)` [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: use of `or_insert` followed by a function call [INFO] [stderr] --> src/day9.rs:142:28 [INFO] [stderr] | [INFO] [stderr] 142 | m.entry(i).or_insert(current.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(|| current.clone())` [INFO] [stderr] | [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: manual implementation of an assign operation [INFO] [stderr] --> src/day9.rs:155:13 [INFO] [stderr] | [INFO] [stderr] 155 | current_player = current_player % player_count; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `current_player %= player_count` [INFO] [stderr] | [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: single-character string constant used as pattern [INFO] [stderr] --> src/day1.rs:49:19 [INFO] [stderr] | [INFO] [stderr] 49 | val.split(",").map(|v| v.trim().to_string()).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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day10.rs:5:29 [INFO] [stderr] | [INFO] [stderr] 5 | pub fn print_msg(input: &Vec<(i32, i32, i32, i32)>, time: i32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[(i32, i32, i32, 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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day10.rs:51:25 [INFO] [stderr] | [INFO] [stderr] 51 | pub fn part1(input: &Vec<(i32, i32, i32, i32)>, start: i32, times: i32, step: usize) -> i32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[(i32, i32, i32, i32)]` [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 `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/day10.rs:113:28 [INFO] [stderr] | [INFO] [stderr] 113 | fn parse_from_str(val: &String) -> Vec<(i32, i32, i32, i32)> { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [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/day10.rs:116:26 [INFO] [stderr] | [INFO] [stderr] 116 | .filter(|&x| x.len() != 0) [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!x.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/day12.rs:5:36 [INFO] [stderr] | [INFO] [stderr] 5 | pub fn part1(init: &str, temp: &Vec<(&str, &str)>, generation: i32) -> i32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[(&str, &str)]` [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 `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/day12.rs:69:28 [INFO] [stderr] | [INFO] [stderr] 69 | fn parse_from_str(val: &String) -> (&str, Vec<(&str, &str)>) { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [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/day12.rs:73:26 [INFO] [stderr] | [INFO] [stderr] 73 | .filter(|&x| x.len() != 0) [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!x.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: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/day12.rs:106:19 [INFO] [stderr] | [INFO] [stderr] 106 | let pre = day12::part1(init_state2, &temp2, 124) as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(day12::part1(init_state2, &temp2, 124))` [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/day12.rs:107:20 [INFO] [stderr] | [INFO] [stderr] 107 | let next = day12::part1(init_state2, &temp2, 125) as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(day12::part1(init_state2, &temp2, 125))` [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 seem to want to iterate on a map's values [INFO] [stderr] --> src/day2.rs:19:29 [INFO] [stderr] | [INFO] [stderr] 19 | for (_, num) in &h { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::for_kv_map)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 19 | for num in h.values() { [INFO] [stderr] | ^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/day2.rs:47:20 [INFO] [stderr] | [INFO] [stderr] 47 | let str1 = vec.get(i).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try this: `vec[i]` [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: called `.get().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/day2.rs:48:20 [INFO] [stderr] | [INFO] [stderr] 48 | let str2 = vec.get(j).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try this: `vec[j]` [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/day3.rs:99:26 [INFO] [stderr] | [INFO] [stderr] 99 | .filter(|&x| x.len() != 0) [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!x.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 Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/day4.rs:41:31 [INFO] [stderr] | [INFO] [stderr] 41 | let id: i32 = split_vec.get(3).unwrap().parse().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&split_vec[3]` [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: use of `or_insert` followed by a function call [INFO] [stderr] --> src/day4.rs:43:44 [INFO] [stderr] | [INFO] [stderr] 43 | user_map.entry(current_id).or_insert(Box::new(Guard { [INFO] [stderr] | ____________________________________________^ [INFO] [stderr] 44 | | id: current_id, [INFO] [stderr] 45 | | fall_sleep: 0, [INFO] [stderr] 46 | | sleeps: vec![0; 60], [INFO] [stderr] 47 | | })); [INFO] [stderr] | |___________________^ [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] help: try this [INFO] [stderr] | [INFO] [stderr] 43 | user_map.entry(current_id).or_insert_with(|| Box::new(Guard { [INFO] [stderr] 44 | id: current_id, [INFO] [stderr] 45 | fall_sleep: 0, [INFO] [stderr] 46 | sleeps: vec![0; 60], [INFO] [stderr] 47 | })); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/day4.rs:92:31 [INFO] [stderr] | [INFO] [stderr] 92 | let id: i32 = split_vec.get(3).unwrap().parse().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&split_vec[3]` [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: use of `or_insert` followed by a function call [INFO] [stderr] --> src/day4.rs:94:44 [INFO] [stderr] | [INFO] [stderr] 94 | user_map.entry(current_id).or_insert(Box::new(Guard { [INFO] [stderr] | ____________________________________________^ [INFO] [stderr] 95 | | id: current_id, [INFO] [stderr] 96 | | fall_sleep: 0, [INFO] [stderr] 97 | | sleeps: vec![0; 60], [INFO] [stderr] 98 | | })); [INFO] [stderr] | |___________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 94 | user_map.entry(current_id).or_insert_with(|| Box::new(Guard { [INFO] [stderr] 95 | id: current_id, [INFO] [stderr] 96 | fall_sleep: 0, [INFO] [stderr] 97 | sleeps: vec![0; 60], [INFO] [stderr] 98 | })); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/day4.rs:137:26 [INFO] [stderr] | [INFO] [stderr] 137 | .filter(|&x| x.len() != 0) [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!x.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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/day5.rs:9:32 [INFO] [stderr] | [INFO] [stderr] 9 | fn check_react(a: char, b: &char) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `char` [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: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/day5.rs:33:36 [INFO] [stderr] | [INFO] [stderr] 33 | pub fn remove_type_unit(input: &String, c: &char) -> String { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [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/day5.rs:33:48 [INFO] [stderr] | [INFO] [stderr] 33 | pub fn remove_type_unit(input: &String, c: &char) -> String { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `char` [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 `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/day5.rs:40:31 [INFO] [stderr] | [INFO] [stderr] 40 | pub fn scan_letter(input: &String) -> HashSet { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [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/day6.rs:14:18 [INFO] [stderr] | [INFO] [stderr] 14 | for i in -step..step + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: use: `-step..=step` [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/day6.rs:15:22 [INFO] [stderr] | [INFO] [stderr] 15 | for j in -step..step + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: use: `-step..=step` [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/day6.rs:26:18 [INFO] [stderr] | [INFO] [stderr] 26 | for i in -step..step + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: use: `-step..=step` [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/day6.rs:27:22 [INFO] [stderr] | [INFO] [stderr] 27 | for j in -step..step + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: use: `-step..=step` [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: length comparison to zero [INFO] [stderr] --> src/day6.rs:184:26 [INFO] [stderr] | [INFO] [stderr] 184 | .filter(|&x| x.len() != 0) [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!x.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: single-character string constant used as pattern [INFO] [stderr] --> src/day6.rs:187:28 [INFO] [stderr] | [INFO] [stderr] 187 | .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/day7.rs:19:25 [INFO] [stderr] | [INFO] [stderr] 19 | pub fn part1(input: &Vec<(&str, &str)>) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[(&str, &str)]` [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: use of `or_insert` followed by a function call [INFO] [stderr] --> src/day7.rs:23:39 [INFO] [stderr] | [INFO] [stderr] 23 | let k = sort_map.entry(p).or_insert(Vec::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::new)` [INFO] [stderr] | [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/day7.rs:32:13 [INFO] [stderr] | [INFO] [stderr] 32 | / match deep_map.get(k) { [INFO] [stderr] 33 | | None => { [INFO] [stderr] 34 | | quene.push(k); [INFO] [stderr] 35 | | } [INFO] [stderr] 36 | | _ => (), [INFO] [stderr] 37 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 32 | if let None = deep_map.get(k) { [INFO] [stderr] 33 | quene.push(k); [INFO] [stderr] 34 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/day7.rs:39:15 [INFO] [stderr] | [INFO] [stderr] 39 | while quene.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!quene.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/day7.rs:64:25 [INFO] [stderr] | [INFO] [stderr] 64 | pub fn part2(input: &Vec<(&str, &str)>, worker_count: usize, base: i32) -> i32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[(&str, &str)]` [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: use of `or_insert` followed by a function call [INFO] [stderr] --> src/day7.rs:70:40 [INFO] [stderr] | [INFO] [stderr] 70 | let k = sort_map.entry(p1).or_insert(Vec::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::new)` [INFO] [stderr] | [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/day7.rs:79:13 [INFO] [stderr] | [INFO] [stderr] 79 | / match deep_map.get(k) { [INFO] [stderr] 80 | | None => { [INFO] [stderr] 81 | | quene.push((*k, *k + base)); [INFO] [stderr] 82 | | } [INFO] [stderr] 83 | | _ => (), [INFO] [stderr] 84 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 79 | if let None = deep_map.get(k) { [INFO] [stderr] 80 | quene.push((*k, *k + base)); [INFO] [stderr] 81 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/day7.rs:87:15 [INFO] [stderr] | [INFO] [stderr] 87 | while quene.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!quene.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 `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/day7.rs:148:28 [INFO] [stderr] | [INFO] [stderr] 148 | fn parse_from_str(val: &String) -> Vec<(&str, &str)> { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [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/day7.rs:151:26 [INFO] [stderr] | [INFO] [stderr] 151 | .filter(|&x| x.len() != 0) [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!x.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: length comparison to zero [INFO] [stderr] --> src/day8.rs:16:16 [INFO] [stderr] | [INFO] [stderr] 16 | if self.children.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.children.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: identical conversion [INFO] [stderr] --> src/day8.rs:32:9 [INFO] [stderr] | [INFO] [stderr] 32 | / (0..num) [INFO] [stderr] 33 | | .into_iter() [INFO] [stderr] | |________________________^ help: consider removing `.into_iter()`: `(0..num)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/day8.rs:73:28 [INFO] [stderr] | [INFO] [stderr] 73 | fn parse_from_str(val: &String) -> Vec { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [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/day9.rs:20:24 [INFO] [stderr] | [INFO] [stderr] 20 | pub fn new(val:&i32) -> RefCell>{ [INFO] [stderr] | ^^^^ help: consider passing by value instead: `i32` [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: an inclusive range would be more readable [INFO] [stderr] --> src/day9.rs:80:18 [INFO] [stderr] | [INFO] [stderr] 80 | for i in 1..points+1{ [INFO] [stderr] | ^^^^^^^^^^^ help: use: `1..=points` [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: manual implementation of an assign operation [INFO] [stderr] --> src/day9.rs:85:21 [INFO] [stderr] | [INFO] [stderr] 85 | current = current -len; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `current -= len` [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: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/day9.rs:93:27 [INFO] [stderr] | [INFO] [stderr] 93 | *score += i as i64 + remove_score as i64; [INFO] [stderr] | ^^^^^^^^ help: try: `i64::from(i)` [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/day9.rs:93:38 [INFO] [stderr] | [INFO] [stderr] 93 | *score += i as i64 + remove_score as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(remove_score)` [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: manual implementation of an assign operation [INFO] [stderr] --> src/day9.rs:102:13 [INFO] [stderr] | [INFO] [stderr] 102 | current_player = current_player % player_count; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `current_player %= player_count` [INFO] [stderr] | [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: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/day9.rs:135:27 [INFO] [stderr] | [INFO] [stderr] 135 | *score += i as i64 + v as i64; [INFO] [stderr] | ^^^^^^^^ help: try: `i64::from(i)` [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/day9.rs:135:38 [INFO] [stderr] | [INFO] [stderr] 135 | *score += i as i64 + v as i64; [INFO] [stderr] | ^^^^^^^^ help: try: `i64::from(v)` [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: use of `or_insert` followed by a function call [INFO] [stderr] --> src/day9.rs:142:28 [INFO] [stderr] | [INFO] [stderr] 142 | m.entry(i).or_insert(current.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(|| current.clone())` [INFO] [stderr] | [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: manual implementation of an assign operation [INFO] [stderr] --> src/day9.rs:155:13 [INFO] [stderr] | [INFO] [stderr] 155 | current_player = current_player % player_count; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `current_player %= player_count` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 4.01s [INFO] running `"docker" "inspect" "5e98716410c8d21b4c80c325c162cbddcec84804d09660cbe43dd6a4d90598fb"` [INFO] running `"docker" "rm" "-f" "5e98716410c8d21b4c80c325c162cbddcec84804d09660cbe43dd6a4d90598fb"` [INFO] [stdout] 5e98716410c8d21b4c80c325c162cbddcec84804d09660cbe43dd6a4d90598fb