[INFO] updating cached repository nikofil/advent-rust [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/nikofil/advent-rust [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/nikofil/advent-rust" "work/ex/clippy-test-run/sources/stable/gh/nikofil/advent-rust"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/nikofil/advent-rust'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/nikofil/advent-rust" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/nikofil/advent-rust"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/nikofil/advent-rust'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 77ec9a33cfabda916d275dacace91a987b8e3b38 [INFO] sha for GitHub repo nikofil/advent-rust: 77ec9a33cfabda916d275dacace91a987b8e3b38 [INFO] validating manifest of nikofil/advent-rust 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 nikofil/advent-rust 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 nikofil/advent-rust [INFO] finished frobbing nikofil/advent-rust [INFO] frobbed toml for nikofil/advent-rust written to work/ex/clippy-test-run/sources/stable/gh/nikofil/advent-rust/Cargo.toml [INFO] started frobbing nikofil/advent-rust [INFO] finished frobbing nikofil/advent-rust [INFO] frobbed toml for nikofil/advent-rust written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/nikofil/advent-rust/Cargo.toml [INFO] crate nikofil/advent-rust 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 nikofil/advent-rust 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/nikofil/advent-rust:/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] fb4f94f96ad92af47e748ceaef0d0204245735b2ccc324590c2bf6294fd9eaf3 [INFO] running `"docker" "start" "-a" "fb4f94f96ad92af47e748ceaef0d0204245735b2ccc324590c2bf6294fd9eaf3"` [INFO] [stderr] Compiling libc v0.2.45 [INFO] [stderr] Checking memchr v2.1.2 [INFO] [stderr] Checking aho-corasick v0.6.9 [INFO] [stderr] Checking regex v1.1.0 [INFO] [stderr] Checking advent-rust v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:7:8 [INFO] [stderr] | [INFO] [stderr] 7 | if buf.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!buf.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: length comparison to zero [INFO] [stderr] --> src/lib.rs:7:8 [INFO] [stderr] | [INFO] [stderr] 7 | if buf.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!buf.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: 5th binding whose name is just one char [INFO] [stderr] --> src/bin/day11_2.rs:20:16 [INFO] [stderr] | [INFO] [stderr] 20 | let (_, x, y, z) = r.iter().max_by(|(v1, ..), (v2, ..)| v1.cmp(v2)).unwrap(); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/bin/day11_2.rs:20:19 [INFO] [stderr] | [INFO] [stderr] 20 | let (_, x, y, z) = r.iter().max_by(|(v1, ..), (v2, ..)| v1.cmp(v2)).unwrap(); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: casting to the same type is unnecessary (`char` -> `char`) [INFO] [stderr] --> src/bin/day7_2.rs:11:26 [INFO] [stderr] | [INFO] [stderr] 11 | let ln = s.split(' ' as char).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_cast)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/bin/day7_2.rs:12:68 [INFO] [stderr] | [INFO] [stderr] 12 | req.entry(ln[7].to_string().chars().next().unwrap() as u8).or_insert(Vec::new()).push(ln[1].to_string().chars().next().unwrap() as u8); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::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: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/bin/day7_2.rs:15:18 [INFO] [stderr] | [INFO] [stderr] 15 | let l = ('A' as u8..='Z' as u8).filter( [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::char_lit_as_u8)] on by default [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'A' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/bin/day7_2.rs:15:30 [INFO] [stderr] | [INFO] [stderr] 15 | let l = ('A' as u8..='Z' as u8).filter( [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'Z' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/bin/day7_2.rs:21:25 [INFO] [stderr] | [INFO] [stderr] 21 | busy[i] = cur + l as u32 - 'A' as u32 + 61; [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(l)` [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 to the same type is unnecessary (`char` -> `char`) [INFO] [stderr] --> src/bin/day7_1.rs:10:26 [INFO] [stderr] | [INFO] [stderr] 10 | let ln = s.split(' ' as char).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_cast)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/bin/day7_1.rs:11:68 [INFO] [stderr] | [INFO] [stderr] 11 | req.entry(ln[7].to_string().chars().next().unwrap() as u8).or_insert(Vec::new()).push(ln[1].to_string().chars().next().unwrap() as u8); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::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: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/bin/day7_1.rs:14:18 [INFO] [stderr] | [INFO] [stderr] 14 | for l in 'A' as u8..='Z' as u8 { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::char_lit_as_u8)] on by default [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'A' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/bin/day7_1.rs:14:30 [INFO] [stderr] | [INFO] [stderr] 14 | for l in 'A' as u8..='Z' as u8 { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'Z' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bin/day6_1.rs:21:36 [INFO] [stderr] | [INFO] [stderr] 21 | sc[vv[0].0] = -99999999; [INFO] [stderr] | ^^^^^^^^ help: consider: `99_999_999` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bin/day6_1.rs:21:36 [INFO] [stderr] | [INFO] [stderr] 21 | sc[vv[0].0] = -99999999; [INFO] [stderr] | ^^^^^^^^ help: consider: `99_999_999` [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: use of `or_insert` followed by a function call [INFO] [stderr] --> src/bin/day4_1.rs:18:31 [INFO] [stderr] | [INFO] [stderr] 18 | guards.entry(cur).or_insert(Vec::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::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 `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/bin/day4_1.rs:23:13 [INFO] [stderr] | [INFO] [stderr] 23 | guards.get_mut(&cur).map(|x| x.push((curmin, lastmin))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(x) = guards.get_mut(&cur) { x.push((curmin, lastmin)) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/bin/day4_1.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | guards.get(best).map(|b| { [INFO] [stderr] | _____^ [INFO] [stderr] | |_____| [INFO] [stderr] | || [INFO] [stderr] 31 | || let mut mins = [0; 60]; [INFO] [stderr] 32 | || for (f, t) in b { [INFO] [stderr] 33 | || for x in *f..*t { [INFO] [stderr] ... || [INFO] [stderr] 43 | || println!("{}", best * min); [INFO] [stderr] 44 | || }); [INFO] [stderr] | ||______^- help: try this: `if let Some(b) = guards.get(best) { ... }` [INFO] [stderr] | |_______| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: casting to the same type is unnecessary (`char` -> `char`) [INFO] [stderr] --> src/bin/day6_1.rs:9:25 [INFO] [stderr] | [INFO] [stderr] 9 | let c = s.split(',' as char).map(|x| x.trim().parse::().unwrap() as i32).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_cast)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stderr] [INFO] [stderr] warning: casting to the same type is unnecessary (`char` -> `char`) [INFO] [stderr] --> src/bin/day6_1.rs:9:25 [INFO] [stderr] | [INFO] [stderr] 9 | let c = s.split(',' as char).map(|x| x.trim().parse::().unwrap() as i32).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_cast)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bin/day12_2.rs:33:23 [INFO] [stderr] | [INFO] [stderr] 33 | fres += df * (50000000000-200); [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `50_000_000_000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/bin/day4_1.rs:18:31 [INFO] [stderr] | [INFO] [stderr] 18 | guards.entry(cur).or_insert(Vec::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::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 `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/bin/day4_1.rs:23:13 [INFO] [stderr] | [INFO] [stderr] 23 | guards.get_mut(&cur).map(|x| x.push((curmin, lastmin))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(x) = guards.get_mut(&cur) { x.push((curmin, lastmin)) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/bin/day4_1.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | guards.get(best).map(|b| { [INFO] [stderr] | _____^ [INFO] [stderr] | |_____| [INFO] [stderr] | || [INFO] [stderr] 31 | || let mut mins = [0; 60]; [INFO] [stderr] 32 | || for (f, t) in b { [INFO] [stderr] 33 | || for x in *f..*t { [INFO] [stderr] ... || [INFO] [stderr] 43 | || println!("{}", best * min); [INFO] [stderr] 44 | || }); [INFO] [stderr] | ||______^- help: try this: `if let Some(b) = guards.get(best) { ... }` [INFO] [stderr] | |_______| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bin/day3_1.rs:13:18 [INFO] [stderr] | [INFO] [stderr] 13 | v.extend((0..4000000).map(|_| 0)); [INFO] [stderr] | ^^^^^^^ help: consider: `4_000_000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: casting to the same type is unnecessary (`char` -> `char`) [INFO] [stderr] --> src/bin/day7_2.rs:11:26 [INFO] [stderr] | [INFO] [stderr] 11 | let ln = s.split(' ' as char).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_cast)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/bin/day7_2.rs:12:68 [INFO] [stderr] | [INFO] [stderr] 12 | req.entry(ln[7].to_string().chars().next().unwrap() as u8).or_insert(Vec::new()).push(ln[1].to_string().chars().next().unwrap() as u8); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::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: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/bin/day7_2.rs:15:18 [INFO] [stderr] | [INFO] [stderr] 15 | let l = ('A' as u8..='Z' as u8).filter( [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::char_lit_as_u8)] on by default [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'A' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/bin/day7_2.rs:15:30 [INFO] [stderr] | [INFO] [stderr] 15 | let l = ('A' as u8..='Z' as u8).filter( [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'Z' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/bin/day7_2.rs:21:25 [INFO] [stderr] | [INFO] [stderr] 21 | busy[i] = cur + l as u32 - 'A' as u32 + 61; [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(l)` [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 character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/bin/day1_1.rs:11:36 [INFO] [stderr] | [INFO] [stderr] 11 | c += if x.as_bytes()[0] == '+' as u8 { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::char_lit_as_u8)] on by default [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'+' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `v`. [INFO] [stderr] --> src/bin/day8_1.rs:15:14 [INFO] [stderr] | [INFO] [stderr] 15 | for i in 0..m { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 15 | for in v.iter().take(m) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting to the same type is unnecessary (`char` -> `char`) [INFO] [stderr] --> src/bin/day7_1.rs:10:26 [INFO] [stderr] | [INFO] [stderr] 10 | let ln = s.split(' ' as char).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_cast)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/bin/day7_1.rs:11:68 [INFO] [stderr] | [INFO] [stderr] 11 | req.entry(ln[7].to_string().chars().next().unwrap() as u8).or_insert(Vec::new()).push(ln[1].to_string().chars().next().unwrap() as u8); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::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: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/bin/day7_1.rs:14:18 [INFO] [stderr] | [INFO] [stderr] 14 | for l in 'A' as u8..='Z' as u8 { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::char_lit_as_u8)] on by default [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'A' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/bin/day7_1.rs:14:30 [INFO] [stderr] | [INFO] [stderr] 14 | for l in 'A' as u8..='Z' as u8 { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'Z' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/bin/day1_2.rs:14:38 [INFO] [stderr] | [INFO] [stderr] 14 | v.push(if x.as_bytes()[0] == '+' as u8 { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::char_lit_as_u8)] on by default [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'+' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bin/day3_2.rs:15:18 [INFO] [stderr] | [INFO] [stderr] 15 | v.extend((0..4000000).map(|_| 0)); [INFO] [stderr] | ^^^^^^^ help: consider: `4_000_000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/bin/day11_1.rs:19:16 [INFO] [stderr] | [INFO] [stderr] 19 | let (_, x, y) = r.iter().max_by(|(v1, ..), (v2, ..)| v1.cmp(v2)).unwrap(); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/bin/day5_2.rs:25:14 [INFO] [stderr] | [INFO] [stderr] 25 | let m = ('a' as u8..='z' as u8).map(|c: u8| [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::char_lit_as_u8)] on by default [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'a' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/bin/day5_2.rs:25:26 [INFO] [stderr] | [INFO] [stderr] 25 | let m = ('a' as u8..='z' as u8).map(|c: u8| [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'z' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `v`. [INFO] [stderr] --> src/bin/day8_2.rs:15:14 [INFO] [stderr] | [INFO] [stderr] 15 | for i in 0..m { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 15 | for in v.iter().take(m) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bin/day8_2.rs:17:12 [INFO] [stderr] | [INFO] [stderr] 17 | if c.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `c.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: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/bin/day1_1.rs:11:36 [INFO] [stderr] | [INFO] [stderr] 11 | c += if x.as_bytes()[0] == '+' as u8 { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::char_lit_as_u8)] on by default [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'+' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/bin/day4_2.rs:18:31 [INFO] [stderr] | [INFO] [stderr] 18 | guards.entry(cur).or_insert(Vec::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::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 `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/bin/day4_2.rs:23:13 [INFO] [stderr] | [INFO] [stderr] 23 | guards.get_mut(&cur).map(|x| x.push((curmin, lastmin))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(x) = guards.get_mut(&cur) { x.push((curmin, lastmin)) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bin/day10_1.rs:17:19 [INFO] [stderr] | [INFO] [stderr] --> src/bin/day3_2.rs:15:18 [INFO] [stderr] 17 | let mut min = 999999999; [INFO] [stderr] | [INFO] [stderr] | ^^^^^^^^^ help: consider: `999_999_999` [INFO] [stderr] 15 | v.extend((0..4000000).map(|_| 0)); [INFO] [stderr] | ^^^^^^^ help: consider: `4_000_000` [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [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] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/bin/day4_2.rs:18:31 [INFO] [stderr] | [INFO] [stderr] 18 | guards.entry(cur).or_insert(Vec::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::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 `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/bin/day4_2.rs:23:13 [INFO] [stderr] | [INFO] [stderr] 23 | guards.get_mut(&cur).map(|x| x.push((curmin, lastmin))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(x) = guards.get_mut(&cur) { x.push((curmin, lastmin)) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: casting to the same type is unnecessary (`char` -> `char`) [INFO] [stderr] --> src/bin/day6_2.rs:9:25 [INFO] [stderr] | [INFO] [stderr] 9 | let c = s.split(',' as char).map(|x| x.trim().parse::().unwrap() as i32).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_cast)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `v`. [INFO] [stderr] --> src/bin/day8_1.rs:15:14 [INFO] [stderr] | [INFO] [stderr] 15 | for i in 0..m { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 15 | for in v.iter().take(m) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bin/day10_2.rs:17:19 [INFO] [stderr] | [INFO] [stderr] 17 | let mut min = 999999999; [INFO] [stderr] | ^^^^^^^^^ help: consider: `999_999_999` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bin/day3_1.rs:13:18 [INFO] [stderr] | [INFO] [stderr] 13 | v.extend((0..4000000).map(|_| 0)); [INFO] [stderr] | ^^^^^^^ help: consider: `4_000_000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/bin/day1_2.rs:14:38 [INFO] [stderr] | [INFO] [stderr] 14 | v.push(if x.as_bytes()[0] == '+' as u8 { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::char_lit_as_u8)] on by default [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'+' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/bin/day5_2.rs:25:14 [INFO] [stderr] | [INFO] [stderr] 25 | let m = ('a' as u8..='z' as u8).map(|c: u8| [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::char_lit_as_u8)] on by default [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'a' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/bin/day5_2.rs:25:26 [INFO] [stderr] | [INFO] [stderr] 25 | let m = ('a' as u8..='z' as u8).map(|c: u8| [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'z' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting to the same type is unnecessary (`char` -> `char`) [INFO] [stderr] --> src/bin/day6_2.rs:9:25 [INFO] [stderr] | [INFO] [stderr] 9 | let c = s.split(',' as char).map(|x| x.trim().parse::().unwrap() as i32).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_cast)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/bin/day11_2.rs:20:16 [INFO] [stderr] | [INFO] [stderr] 20 | let (_, x, y, z) = r.iter().max_by(|(v1, ..), (v2, ..)| v1.cmp(v2)).unwrap(); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/bin/day11_2.rs:20:19 [INFO] [stderr] | [INFO] [stderr] 20 | let (_, x, y, z) = r.iter().max_by(|(v1, ..), (v2, ..)| v1.cmp(v2)).unwrap(); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/bin/day11_1.rs:19:16 [INFO] [stderr] | [INFO] [stderr] 19 | let (_, x, y) = r.iter().max_by(|(v1, ..), (v2, ..)| v1.cmp(v2)).unwrap(); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `v`. [INFO] [stderr] --> src/bin/day8_2.rs:15:14 [INFO] [stderr] | [INFO] [stderr] 15 | for i in 0..m { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 15 | for in v.iter().take(m) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bin/day8_2.rs:17:12 [INFO] [stderr] | [INFO] [stderr] 17 | if c.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `c.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: long literal lacking separators [INFO] [stderr] --> src/bin/day12_2.rs:33:23 [INFO] [stderr] | [INFO] [stderr] 33 | fres += df * (50000000000-200); [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `50_000_000_000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bin/day10_2.rs:17:19 [INFO] [stderr] | [INFO] [stderr] 17 | let mut min = 999999999; [INFO] [stderr] | ^^^^^^^^^ help: consider: `999_999_999` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bin/day10_1.rs:17:19 [INFO] [stderr] | [INFO] [stderr] 17 | let mut min = 999999999; [INFO] [stderr] | ^^^^^^^^^ help: consider: `999_999_999` [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] Finished dev [unoptimized + debuginfo] target(s) in 18.82s [INFO] running `"docker" "inspect" "fb4f94f96ad92af47e748ceaef0d0204245735b2ccc324590c2bf6294fd9eaf3"` [INFO] running `"docker" "rm" "-f" "fb4f94f96ad92af47e748ceaef0d0204245735b2ccc324590c2bf6294fd9eaf3"` [INFO] [stdout] fb4f94f96ad92af47e748ceaef0d0204245735b2ccc324590c2bf6294fd9eaf3