[INFO] updating cached repository zandeck/AoC2018 [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/zandeck/AoC2018 [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/zandeck/AoC2018" "work/ex/clippy-test-run/sources/stable/gh/zandeck/AoC2018"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/zandeck/AoC2018'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/zandeck/AoC2018" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/zandeck/AoC2018"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/zandeck/AoC2018'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 3421072471457bd75252263fbedc638d1b9ed27b [INFO] sha for GitHub repo zandeck/AoC2018: 3421072471457bd75252263fbedc638d1b9ed27b [INFO] validating manifest of zandeck/AoC2018 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 zandeck/AoC2018 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 zandeck/AoC2018 [INFO] finished frobbing zandeck/AoC2018 [INFO] frobbed toml for zandeck/AoC2018 written to work/ex/clippy-test-run/sources/stable/gh/zandeck/AoC2018/Cargo.toml [INFO] started frobbing zandeck/AoC2018 [INFO] finished frobbing zandeck/AoC2018 [INFO] frobbed toml for zandeck/AoC2018 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/zandeck/AoC2018/Cargo.toml [INFO] crate zandeck/AoC2018 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 zandeck/AoC2018 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-3/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/zandeck/AoC2018:/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] 24471e62882ce9d4cf7bcd6088ecefec192d12c323c49f0fab5a7a28127c0b9e [INFO] running `"docker" "start" "-a" "24471e62882ce9d4cf7bcd6088ecefec192d12c323c49f0fab5a7a28127c0b9e"` [INFO] [stderr] Compiling version_check v0.1.5 [INFO] [stderr] Compiling num-traits v0.2.6 [INFO] [stderr] Compiling libc v0.2.44 [INFO] [stderr] Compiling num-integer v0.1.39 [INFO] [stderr] Checking cfg-if v0.1.6 [INFO] [stderr] Checking log v0.4.6 [INFO] [stderr] Compiling memchr v2.1.1 [INFO] [stderr] Checking time v0.1.40 [INFO] [stderr] Checking nom v4.1.1 [INFO] [stderr] Checking chrono v0.4.6 [INFO] [stderr] Checking christmas_2018 v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unused import: `std::str` [INFO] [stderr] --> src/common.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::str; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::str` [INFO] [stderr] --> src/common.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::str; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/common.rs:7:18 [INFO] [stderr] | [INFO] [stderr] 7 | let filename = String::from(path); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `path` [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: identical conversion [INFO] [stderr] --> src/common.rs:13:18 [INFO] [stderr] | [INFO] [stderr] 13 | let filename = String::from(path); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `path` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/common.rs:16:3 [INFO] [stderr] | [INFO] [stderr] 16 | BufReader::new(file).read_to_string(&mut data); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/common.rs:7:18 [INFO] [stderr] | [INFO] [stderr] 7 | let filename = String::from(path); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `path` [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: identical conversion [INFO] [stderr] --> src/common.rs:13:18 [INFO] [stderr] | [INFO] [stderr] 13 | let filename = String::from(path); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `path` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/common.rs:16:3 [INFO] [stderr] | [INFO] [stderr] 16 | BufReader::new(file).read_to_string(&mut data); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::str` [INFO] [stderr] --> src/common.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::str; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `log` [INFO] [stderr] --> src/day2.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use log; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cell::RefCell` [INFO] [stderr] --> src/day3.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::cell::RefCell; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::str` [INFO] [stderr] --> src/day3.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::str; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::result::Result` [INFO] [stderr] --> src/day3.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use std::result::Result; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `log` [INFO] [stderr] --> src/main.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use log; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::str` [INFO] [stderr] --> src/common.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::str; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `log` [INFO] [stderr] --> src/day2.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use log; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cell::RefCell` [INFO] [stderr] --> src/day3.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::cell::RefCell; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::str` [INFO] [stderr] --> src/day3.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::str; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::result::Result` [INFO] [stderr] --> src/day3.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use std::result::Result; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `log` [INFO] [stderr] --> src/main.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use log; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `b` [INFO] [stderr] --> src/day2.rs:55:86 [INFO] [stderr] | [INFO] [stderr] 55 | let res: Vec = w1.chars().zip(w2.chars()).filter(|(a, b)| a == b ).map(|(a,b)| a.to_string() ).collect(); [INFO] [stderr] | ^ help: consider using `_b` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `g` [INFO] [stderr] --> src/day4.rs:180:108 [INFO] [stderr] | [INFO] [stderr] 180 | let (g, (minute, freq)): (Guard, (i64, i64)) = self.most_minute_aslept2().into_iter().max_by_key(|(g, m)| m.1 ).unwrap(); [INFO] [stderr] | ^ help: consider using `_g` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `freq` [INFO] [stderr] --> src/day4.rs:180:26 [INFO] [stderr] | [INFO] [stderr] 180 | let (g, (minute, freq)): (Guard, (i64, i64)) = self.most_minute_aslept2().into_iter().max_by_key(|(g, m)| m.1 ).unwrap(); [INFO] [stderr] | ^^^^ help: consider using `_freq` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/day2.rs:53:7 [INFO] [stderr] | [INFO] [stderr] 53 | let mut data = common::import_file("resources/input2.txt".to_string()).unwrap(); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `b` [INFO] [stderr] --> src/day2.rs:55:86 [INFO] [stderr] | [INFO] [stderr] 55 | let res: Vec = w1.chars().zip(w2.chars()).filter(|(a, b)| a == b ).map(|(a,b)| a.to_string() ).collect(); [INFO] [stderr] | ^ help: consider using `_b` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `g` [INFO] [stderr] --> src/day4.rs:180:108 [INFO] [stderr] | [INFO] [stderr] 180 | let (g, (minute, freq)): (Guard, (i64, i64)) = self.most_minute_aslept2().into_iter().max_by_key(|(g, m)| m.1 ).unwrap(); [INFO] [stderr] | ^ help: consider using `_g` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `freq` [INFO] [stderr] --> src/day4.rs:180:26 [INFO] [stderr] | [INFO] [stderr] 180 | let (g, (minute, freq)): (Guard, (i64, i64)) = self.most_minute_aslept2().into_iter().max_by_key(|(g, m)| m.1 ).unwrap(); [INFO] [stderr] | ^^^^ help: consider using `_freq` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/day2.rs:53:7 [INFO] [stderr] | [INFO] [stderr] 53 | let mut data = common::import_file("resources/input2.txt".to_string()).unwrap(); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `import_file` [INFO] [stderr] --> src/common.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn import_file(path: String) -> Result, std::io::Error> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `string_to_int` [INFO] [stderr] --> src/common.rs:21:1 [INFO] [stderr] | [INFO] [stderr] 21 | pub fn string_to_int(text: Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `get_data` [INFO] [stderr] --> src/day1.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | fn get_data() -> Vec< i32 > { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `problem1` [INFO] [stderr] --> src/day1.rs:9:1 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn problem1() -> i32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `problem2` [INFO] [stderr] --> src/day1.rs:14:1 [INFO] [stderr] | [INFO] [stderr] 14 | pub fn problem2() -> i32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `count_letter_in_word` [INFO] [stderr] --> src/day2.rs:5:1 [INFO] [stderr] | [INFO] [stderr] 5 | pub fn count_letter_in_word(word: &String) -> HashMap { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `contains_exactly` [INFO] [stderr] --> src/day2.rs:19:1 [INFO] [stderr] | [INFO] [stderr] 19 | pub fn contains_exactly(n: u32, word: &String) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `return_hash` [INFO] [stderr] --> src/day2.rs:23:1 [INFO] [stderr] | [INFO] [stderr] 23 | pub fn return_hash(l: Vec) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `part1` [INFO] [stderr] --> src/day2.rs:29:1 [INFO] [stderr] | [INFO] [stderr] 29 | pub fn part1() -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `words_diff_by_1` [INFO] [stderr] --> src/day2.rs:35:1 [INFO] [stderr] | [INFO] [stderr] 35 | fn words_diff_by_1(w1: &String, w2: &String) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `find_differ_by_1` [INFO] [stderr] --> src/day2.rs:39:1 [INFO] [stderr] | [INFO] [stderr] 39 | pub fn find_differ_by_1( w: &String, v: &[String] ) -> Option< String > { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `find_identical_elements` [INFO] [stderr] --> src/day2.rs:44:1 [INFO] [stderr] | [INFO] [stderr] 44 | pub fn find_identical_elements( v: &[String] ) -> (String, String) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `part2` [INFO] [stderr] --> src/day2.rs:52:1 [INFO] [stderr] | [INFO] [stderr] 52 | pub fn part2() -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `NotUsed` [INFO] [stderr] --> src/day3.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | NotUsed, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Claimed` [INFO] [stderr] --> src/day3.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | Claimed(Vec), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Fabriq` [INFO] [stderr] --> src/day3.rs:16:1 [INFO] [stderr] | [INFO] [stderr] 16 | struct Fabriq { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/day3.rs:32:5 [INFO] [stderr] | [INFO] [stderr] 32 | fn new(ID: u32, from_left: u32, from_top: u32, wide: u32, tall: u32) -> Claim { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/day3.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | fn new(Height: usize, Width: usize) -> Fabriq { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `set` [INFO] [stderr] --> src/day3.rs:52:5 [INFO] [stderr] | [INFO] [stderr] 52 | fn set(&mut self, i: usize, j: usize, s: State) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get` [INFO] [stderr] --> src/day3.rs:59:5 [INFO] [stderr] | [INFO] [stderr] 59 | fn get(&self, i: usize, j:usize) -> State { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `claim` [INFO] [stderr] --> src/day3.rs:67:5 [INFO] [stderr] | [INFO] [stderr] 67 | fn claim(&mut self, IDClaim: u32, i: usize, j:usize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `handle_claim` [INFO] [stderr] --> src/day3.rs:82:5 [INFO] [stderr] | [INFO] [stderr] 82 | fn handle_claim(&mut self, c: Claim) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `count_overlaped` [INFO] [stderr] --> src/day3.rs:92:5 [INFO] [stderr] | [INFO] [stderr] 92 | fn count_overlaped(&self) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `overlaped_claims` [INFO] [stderr] --> src/day3.rs:105:5 [INFO] [stderr] | [INFO] [stderr] 105 | fn overlaped_claims(&self) -> HashSet { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `part1` [INFO] [stderr] --> src/day3.rs:120:1 [INFO] [stderr] | [INFO] [stderr] 120 | pub fn part1() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `u8_to_u32` [INFO] [stderr] --> src/day3.rs:126:1 [INFO] [stderr] | [INFO] [stderr] 126 | fn u8_to_u32(l: nom::types::CompleteStr) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `part2` [INFO] [stderr] --> src/day3.rs:159:1 [INFO] [stderr] | [INFO] [stderr] 159 | pub fn part2() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `set_guard` [INFO] [stderr] --> src/day4.rs:38:6 [INFO] [stderr] | [INFO] [stderr] 38 | fn set_guard(&mut self, guard: Guard) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `time_asleep` [INFO] [stderr] --> src/day4.rs:54:5 [INFO] [stderr] | [INFO] [stderr] 54 | fn time_asleep(&self) -> i64{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/common.rs:7:18 [INFO] [stderr] | [INFO] [stderr] 7 | let filename = String::from(path); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `path` [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: identical conversion [INFO] [stderr] --> src/common.rs:13:18 [INFO] [stderr] | [INFO] [stderr] 13 | let filename = String::from(path); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `path` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/common.rs:16:3 [INFO] [stderr] | [INFO] [stderr] 16 | BufReader::new(file).read_to_string(&mut data); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/day2.rs:5:35 [INFO] [stderr] | [INFO] [stderr] 5 | pub fn count_letter_in_word(word: &String) -> HashMap { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [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: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/day2.rs:8:9 [INFO] [stderr] | [INFO] [stderr] 8 | / if count_letter.contains_key(&c) { [INFO] [stderr] 9 | | let counter = count_letter.get(&c).unwrap(); [INFO] [stderr] 10 | | count_letter.insert(c, counter + 1); [INFO] [stderr] 11 | | } else { [INFO] [stderr] 12 | | count_letter.insert(c, 1); [INFO] [stderr] 13 | | } [INFO] [stderr] | |_________^ help: consider using: `count_letter.entry(c)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_entry)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/day2.rs:9:27 [INFO] [stderr] | [INFO] [stderr] 9 | let counter = count_letter.get(&c).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&count_letter[&c]` [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: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/day2.rs:19:39 [INFO] [stderr] | [INFO] [stderr] 19 | pub fn contains_exactly(n: u32, word: &String) -> bool { [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: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/day2.rs:35:24 [INFO] [stderr] | [INFO] [stderr] 35 | fn words_diff_by_1(w1: &String, w2: &String) -> bool { [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: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/day2.rs:35:37 [INFO] [stderr] | [INFO] [stderr] 35 | fn words_diff_by_1(w1: &String, w2: &String) -> bool { [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: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/day2.rs:39:29 [INFO] [stderr] | [INFO] [stderr] 39 | pub fn find_differ_by_1( w: &String, v: &[String] ) -> Option< 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: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/day2.rs:40:31 [INFO] [stderr] | [INFO] [stderr] 40 | let mut res : Vec = v.into_iter().filter( |&e| words_diff_by_1(e, &w) ).map( |e| e.clone()).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `v.into_iter().filter( |&e| words_diff_by_1(e, &w) ).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 .into_iter() call is equivalent to .iter() and will not move the slice [INFO] [stderr] --> src/day2.rs:40:33 [INFO] [stderr] | [INFO] [stderr] 40 | let mut res : Vec = v.into_iter().filter( |&e| words_diff_by_1(e, &w) ).map( |e| e.clone()).collect(); [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: structure field `Height` should have a snake case name such as `height` [INFO] [stderr] --> src/day3.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | Height: usize, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: structure field `Width` should have a snake case name such as `width` [INFO] [stderr] --> src/day3.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | Width: usize, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `Data` should have a snake case name such as `data` [INFO] [stderr] --> src/day3.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | Data: Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `ID` should have a snake case name such as `id` [INFO] [stderr] --> src/day3.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | ID: u32, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `ID` should have a snake case name such as `id` [INFO] [stderr] --> src/day3.rs:32:12 [INFO] [stderr] | [INFO] [stderr] 32 | fn new(ID: u32, from_left: u32, from_top: u32, wide: u32, tall: u32) -> Claim { [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variable `Height` should have a snake case name such as `height` [INFO] [stderr] --> src/day3.rs:44:12 [INFO] [stderr] | [INFO] [stderr] 44 | fn new(Height: usize, Width: usize) -> Fabriq { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `Width` should have a snake case name such as `width` [INFO] [stderr] --> src/day3.rs:44:27 [INFO] [stderr] | [INFO] [stderr] 44 | fn new(Height: usize, Width: usize) -> Fabriq { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `IDClaim` should have a snake case name such as `idclaim` [INFO] [stderr] --> src/day3.rs:67:25 [INFO] [stderr] | [INFO] [stderr] 67 | fn claim(&mut self, IDClaim: u32, i: usize, j:usize) { [INFO] [stderr] | ^^^^^^^ [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/day3.rs:96:17 [INFO] [stderr] | [INFO] [stderr] 96 | / match self.get(i, j) { [INFO] [stderr] 97 | | State::Claimed(_) => counter = counter + 1, [INFO] [stderr] 98 | | _ => (), [INFO] [stderr] 99 | | } [INFO] [stderr] | |_________________^ help: try this: `if let State::Claimed(_) = self.get(i, j) { counter = counter + 1 }` [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] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/day3.rs:97:42 [INFO] [stderr] | [INFO] [stderr] 97 | State::Claimed(_) => counter = counter + 1, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `counter += 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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/day3.rs:109:17 [INFO] [stderr] | [INFO] [stderr] 109 | / match self.get(i, j) { [INFO] [stderr] 110 | | State::Claimed(d) => if d.len() >= 2 {d.into_iter().for_each(|e| { ids.insert(e); })}, [INFO] [stderr] 111 | | _ => (), [INFO] [stderr] 112 | | } [INFO] [stderr] | |_________________^ help: try this: `if let State::Claimed(d) = self.get(i, j) { if d.len() >= 2 {d.into_iter().for_each(|e| { ids.insert(e); })} }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: function is never used: `import_file` [INFO] [stderr] --> src/common.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn import_file(path: String) -> Result, std::io::Error> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `string_to_int` [INFO] [stderr] --> src/common.rs:21:1 [INFO] [stderr] | [INFO] [stderr] 21 | pub fn string_to_int(text: Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `get_data` [INFO] [stderr] --> src/day1.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | fn get_data() -> Vec< i32 > { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `problem1` [INFO] [stderr] --> src/day1.rs:9:1 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn problem1() -> i32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `problem2` [INFO] [stderr] --> src/day1.rs:14:1 [INFO] [stderr] | [INFO] [stderr] 14 | pub fn problem2() -> i32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `count_letter_in_word` [INFO] [stderr] --> src/day2.rs:5:1 [INFO] [stderr] | [INFO] [stderr] 5 | pub fn count_letter_in_word(word: &String) -> HashMap { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `contains_exactly` [INFO] [stderr] --> src/day2.rs:19:1 [INFO] [stderr] | [INFO] [stderr] 19 | pub fn contains_exactly(n: u32, word: &String) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `return_hash` [INFO] [stderr] --> src/day2.rs:23:1 [INFO] [stderr] | [INFO] [stderr] 23 | pub fn return_hash(l: Vec) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `part1` [INFO] [stderr] --> src/day2.rs:29:1 [INFO] [stderr] | [INFO] [stderr] 29 | pub fn part1() -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `words_diff_by_1` [INFO] [stderr] --> src/day2.rs:35:1 [INFO] [stderr] | [INFO] [stderr] 35 | fn words_diff_by_1(w1: &String, w2: &String) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `find_differ_by_1` [INFO] [stderr] --> src/day2.rs:39:1 [INFO] [stderr] | [INFO] [stderr] 39 | pub fn find_differ_by_1( w: &String, v: &[String] ) -> Option< String > { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `find_identical_elements` [INFO] [stderr] --> src/day2.rs:44:1 [INFO] [stderr] | [INFO] [stderr] 44 | pub fn find_identical_elements( v: &[String] ) -> (String, String) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `part2` [INFO] [stderr] --> src/day2.rs:52:1 [INFO] [stderr] | [INFO] [stderr] 52 | pub fn part2() -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `NotUsed` [INFO] [stderr] --> src/day3.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | NotUsed, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Claimed` [INFO] [stderr] --> src/day3.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | Claimed(Vec), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Fabriq` [INFO] [stderr] --> src/day3.rs:16:1 [INFO] [stderr] | [INFO] [stderr] 16 | struct Fabriq { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/day3.rs:32:5 [INFO] [stderr] | [INFO] [stderr] 32 | fn new(ID: u32, from_left: u32, from_top: u32, wide: u32, tall: u32) -> Claim { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/day3.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | fn new(Height: usize, Width: usize) -> Fabriq { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `set` [INFO] [stderr] --> src/day3.rs:52:5 [INFO] [stderr] | [INFO] [stderr] 52 | fn set(&mut self, i: usize, j: usize, s: State) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get` [INFO] [stderr] --> src/day3.rs:59:5 [INFO] [stderr] | [INFO] [stderr] 59 | fn get(&self, i: usize, j:usize) -> State { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `claim` [INFO] [stderr] --> src/day3.rs:67:5 [INFO] [stderr] | [INFO] [stderr] 67 | fn claim(&mut self, IDClaim: u32, i: usize, j:usize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `handle_claim` [INFO] [stderr] --> src/day3.rs:82:5 [INFO] [stderr] | [INFO] [stderr] 82 | fn handle_claim(&mut self, c: Claim) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `count_overlaped` [INFO] [stderr] --> src/day3.rs:92:5 [INFO] [stderr] | [INFO] [stderr] 92 | fn count_overlaped(&self) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `overlaped_claims` [INFO] [stderr] --> src/day3.rs:105:5 [INFO] [stderr] | [INFO] [stderr] 105 | fn overlaped_claims(&self) -> HashSet { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `part1` [INFO] [stderr] --> src/day3.rs:120:1 [INFO] [stderr] | [INFO] [stderr] 120 | pub fn part1() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `u8_to_u32` [INFO] [stderr] --> src/day3.rs:126:1 [INFO] [stderr] | [INFO] [stderr] 126 | fn u8_to_u32(l: nom::types::CompleteStr) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `part2` [INFO] [stderr] --> src/day3.rs:159:1 [INFO] [stderr] | [INFO] [stderr] 159 | pub fn part2() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `set_guard` [INFO] [stderr] --> src/day4.rs:38:6 [INFO] [stderr] | [INFO] [stderr] 38 | fn set_guard(&mut self, guard: Guard) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `time_asleep` [INFO] [stderr] --> src/day4.rs:54:5 [INFO] [stderr] | [INFO] [stderr] 54 | fn time_asleep(&self) -> i64{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/common.rs:7:18 [INFO] [stderr] | [INFO] [stderr] 7 | let filename = String::from(path); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `path` [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: identical conversion [INFO] [stderr] --> src/common.rs:13:18 [INFO] [stderr] | [INFO] [stderr] 13 | let filename = String::from(path); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `path` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/common.rs:16:3 [INFO] [stderr] | [INFO] [stderr] 16 | BufReader::new(file).read_to_string(&mut data); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/day3.rs:165:5 [INFO] [stderr] | [INFO] [stderr] 165 | / match claims { [INFO] [stderr] 166 | | Ok(claims) => { [INFO] [stderr] 167 | | for c in claims.1 { [INFO] [stderr] 168 | | println!("Claim: {:?}", c); [INFO] [stderr] ... | [INFO] [stderr] 173 | | _ => (), [INFO] [stderr] 174 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/day2.rs:5:35 [INFO] [stderr] | [INFO] [stderr] 5 | pub fn count_letter_in_word(word: &String) -> HashMap { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 165 | if let Ok(claims) = claims { [INFO] [stderr] 166 | for c in claims.1 { [INFO] [stderr] 167 | println!("Claim: {:?}", c); [INFO] [stderr] 168 | fabriq.handle_claim(c); [INFO] [stderr] 169 | claims_id.insert(c.ID); [INFO] [stderr] 170 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/day2.rs:8:9 [INFO] [stderr] | [INFO] [stderr] 8 | / if count_letter.contains_key(&c) { [INFO] [stderr] 9 | | let counter = count_letter.get(&c).unwrap(); [INFO] [stderr] 10 | | count_letter.insert(c, counter + 1); [INFO] [stderr] 11 | | } else { [INFO] [stderr] 12 | | count_letter.insert(c, 1); [INFO] [stderr] 13 | | } [INFO] [stderr] | |_________^ help: consider using: `count_letter.entry(c)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_entry)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/day2.rs:9:27 [INFO] [stderr] | [INFO] [stderr] 9 | let counter = count_letter.get(&c).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&count_letter[&c]` [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: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/day2.rs:19:39 [INFO] [stderr] | [INFO] [stderr] 19 | pub fn contains_exactly(n: u32, word: &String) -> bool { [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: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/day2.rs:35:24 [INFO] [stderr] | [INFO] [stderr] 35 | fn words_diff_by_1(w1: &String, w2: &String) -> bool { [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: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/day2.rs:35:37 [INFO] [stderr] | [INFO] [stderr] 35 | fn words_diff_by_1(w1: &String, w2: &String) -> bool { [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: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/day2.rs:39:29 [INFO] [stderr] | [INFO] [stderr] 39 | pub fn find_differ_by_1( w: &String, v: &[String] ) -> Option< 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: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/day2.rs:40:31 [INFO] [stderr] | [INFO] [stderr] 40 | let mut res : Vec = v.into_iter().filter( |&e| words_diff_by_1(e, &w) ).map( |e| e.clone()).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `v.into_iter().filter( |&e| words_diff_by_1(e, &w) ).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 .into_iter() call is equivalent to .iter() and will not move the slice [INFO] [stderr] --> src/day2.rs:40:33 [INFO] [stderr] | [INFO] [stderr] 40 | let mut res : Vec = v.into_iter().filter( |&e| words_diff_by_1(e, &w) ).map( |e| e.clone()).collect(); [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/day4.rs:70:35 [INFO] [stderr] | [INFO] [stderr] 70 | let v = minutes.entry(m as i64).or_insert(0); [INFO] [stderr] | ^^^^^^^^ help: try: `i64::from(m)` [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: structure field `Height` should have a snake case name such as `height` [INFO] [stderr] --> src/day3.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | Height: usize, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: structure field `Width` should have a snake case name such as `width` [INFO] [stderr] --> src/day3.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | Width: usize, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `Data` should have a snake case name such as `data` [INFO] [stderr] --> src/day3.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | Data: Vec, [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/day4.rs:96:20 [INFO] [stderr] | [INFO] [stderr] 96 | fn new(events: &Vec) -> Shifts { [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[Event]` [INFO] [stderr] warning: structure field `ID` should have a snake case name such as `id` [INFO] [stderr] | [INFO] [stderr] --> src/day3.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | ID: u32, [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] [INFO] [stderr] warning: variable `ID` should have a snake case name such as `id` [INFO] [stderr] --> src/day3.rs:32:12 [INFO] [stderr] | [INFO] [stderr] 32 | fn new(ID: u32, from_left: u32, from_top: u32, wide: u32, tall: u32) -> Claim { [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variable `Height` should have a snake case name such as `height` [INFO] [stderr] --> src/day3.rs:44:12 [INFO] [stderr] | [INFO] [stderr] 44 | fn new(Height: usize, Width: usize) -> Fabriq { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `Width` should have a snake case name such as `width` [INFO] [stderr] --> src/day3.rs:44:27 [INFO] [stderr] | [INFO] [stderr] 44 | fn new(Height: usize, Width: usize) -> Fabriq { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the HashMap [INFO] [stderr] --> src/day4.rs:137:16 [INFO] [stderr] | [INFO] [stderr] 137 | *times.into_iter().max_by(|e1, e2| e1.1.cmp(&e2.1)).unwrap().0 [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: variable `IDClaim` should have a snake case name such as `idclaim` [INFO] [stderr] --> src/day3.rs:67:25 [INFO] [stderr] | [INFO] [stderr] 67 | fn claim(&mut self, IDClaim: u32, i: usize, j:usize) { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/day4.rs:154:44 [INFO] [stderr] | [INFO] [stderr] 154 | let d = res.entry(shift.guard).or_insert(HashMap::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(HashMap::new)` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/day3.rs:96:17 [INFO] [stderr] | [INFO] [stderr] 96 | / match self.get(i, j) { [INFO] [stderr] 97 | | State::Claimed(_) => counter = counter + 1, [INFO] [stderr] 98 | | _ => (), [INFO] [stderr] 99 | | } [INFO] [stderr] | |_________________^ help: try this: `if let State::Claimed(_) = self.get(i, j) { counter = counter + 1 }` [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] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/day3.rs:97:42 [INFO] [stderr] | [INFO] [stderr] 97 | State::Claimed(_) => counter = counter + 1, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `counter += 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: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/day4.rs:176:10 [INFO] [stderr] | [INFO] [stderr] 176 | *most_freq_minutes.get(&most_asleep).unwrap() * (most_asleep.id as i64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&most_freq_minutes[&most_asleep]` [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: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/day4.rs:176:57 [INFO] [stderr] | [INFO] [stderr] 176 | *most_freq_minutes.get(&most_asleep).unwrap() * (most_asleep.id as i64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(most_asleep.id)` [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 be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/day3.rs:109:17 [INFO] [stderr] | [INFO] [stderr] 109 | / match self.get(i, j) { [INFO] [stderr] 110 | | State::Claimed(d) => if d.len() >= 2 {d.into_iter().for_each(|e| { ids.insert(e); })}, [INFO] [stderr] 111 | | _ => (), [INFO] [stderr] 112 | | } [INFO] [stderr] | |_________________^ help: try this: `if let State::Claimed(d) = self.get(i, j) { if d.len() >= 2 {d.into_iter().for_each(|e| { ids.insert(e); })} }` [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/day4.rs:181:9 [INFO] [stderr] | [INFO] [stderr] 181 | (g.id as i64) * minute [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i64::from(g.id)` [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] [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [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/day3.rs:165:5 [INFO] [stderr] | [INFO] [stderr] 165 | / match claims { [INFO] [stderr] 166 | | Ok(claims) => { [INFO] [stderr] 167 | | for c in claims.1 { [INFO] [stderr] 168 | | println!("Claim: {:?}", c); [INFO] [stderr] ... | [INFO] [stderr] 173 | | _ => (), [INFO] [stderr] 174 | | } [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] 165 | if let Ok(claims) = claims { [INFO] [stderr] 166 | for c in claims.1 { [INFO] [stderr] 167 | println!("Claim: {:?}", c); [INFO] [stderr] 168 | fabriq.handle_claim(c); [INFO] [stderr] 169 | claims_id.insert(c.ID); [INFO] [stderr] 170 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/day4.rs:70:35 [INFO] [stderr] | [INFO] [stderr] 70 | let v = minutes.entry(m as i64).or_insert(0); [INFO] [stderr] | ^^^^^^^^ help: try: `i64::from(m)` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day4.rs:96:20 [INFO] [stderr] | [INFO] [stderr] 96 | fn new(events: &Vec) -> Shifts { [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[Event]` [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 .into_iter() call is equivalent to .iter() and will not move the HashMap [INFO] [stderr] --> src/day4.rs:137:16 [INFO] [stderr] | [INFO] [stderr] 137 | *times.into_iter().max_by(|e1, e2| e1.1.cmp(&e2.1)).unwrap().0 [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/day4.rs:154:44 [INFO] [stderr] | [INFO] [stderr] 154 | let d = res.entry(shift.guard).or_insert(HashMap::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(HashMap::new)` [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: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/day4.rs:176:10 [INFO] [stderr] | [INFO] [stderr] 176 | *most_freq_minutes.get(&most_asleep).unwrap() * (most_asleep.id as i64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&most_freq_minutes[&most_asleep]` [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: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/day4.rs:176:57 [INFO] [stderr] | [INFO] [stderr] 176 | *most_freq_minutes.get(&most_asleep).unwrap() * (most_asleep.id as i64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(most_asleep.id)` [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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/day4.rs:181:9 [INFO] [stderr] | [INFO] [stderr] 181 | (g.id as i64) * minute [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i64::from(g.id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 12.89s [INFO] running `"docker" "inspect" "24471e62882ce9d4cf7bcd6088ecefec192d12c323c49f0fab5a7a28127c0b9e"` [INFO] running `"docker" "rm" "-f" "24471e62882ce9d4cf7bcd6088ecefec192d12c323c49f0fab5a7a28127c0b9e"` [INFO] [stdout] 24471e62882ce9d4cf7bcd6088ecefec192d12c323c49f0fab5a7a28127c0b9e