[INFO] updating cached repository scotto3394/sm_project_euler [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/scotto3394/sm_project_euler [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/scotto3394/sm_project_euler" "work/ex/clippy-test-run/sources/stable/gh/scotto3394/sm_project_euler"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/scotto3394/sm_project_euler'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/scotto3394/sm_project_euler" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/scotto3394/sm_project_euler"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/scotto3394/sm_project_euler'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 621a5d3ca46474a751aaa63a8e5b49df12817f0e [INFO] sha for GitHub repo scotto3394/sm_project_euler: 621a5d3ca46474a751aaa63a8e5b49df12817f0e [INFO] validating manifest of scotto3394/sm_project_euler 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 scotto3394/sm_project_euler 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 scotto3394/sm_project_euler [INFO] finished frobbing scotto3394/sm_project_euler [INFO] frobbed toml for scotto3394/sm_project_euler written to work/ex/clippy-test-run/sources/stable/gh/scotto3394/sm_project_euler/Cargo.toml [INFO] started frobbing scotto3394/sm_project_euler [INFO] finished frobbing scotto3394/sm_project_euler [INFO] frobbed toml for scotto3394/sm_project_euler written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/scotto3394/sm_project_euler/Cargo.toml [INFO] crate scotto3394/sm_project_euler 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 scotto3394/sm_project_euler 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/scotto3394/sm_project_euler:/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] 31e2d3c2ac0f7c8a9715824bdddafa32977eaf0d8ab799e37d4ebcf9c91b16cb [INFO] running `"docker" "start" "-a" "31e2d3c2ac0f7c8a9715824bdddafa32977eaf0d8ab799e37d4ebcf9c91b16cb"` [INFO] [stderr] Checking project_euler v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/solutions.rs:282:5 [INFO] [stderr] | [INFO] [stderr] 282 | solution [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/solutions.rs:278:20 [INFO] [stderr] | [INFO] [stderr] 278 | let solution = match triples.iter().max() { [INFO] [stderr] | ____________________^ [INFO] [stderr] 279 | | Some(num) => *num, [INFO] [stderr] 280 | | None => -1_i64, [INFO] [stderr] 281 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/solutions.rs:383:13 [INFO] [stderr] | [INFO] [stderr] 383 | return 0_i64; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `0_i64` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/solutions.rs:396:13 [INFO] [stderr] | [INFO] [stderr] 396 | return 0_i64; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `0_i64` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/solutions.rs:409:13 [INFO] [stderr] | [INFO] [stderr] 409 | return 0_i64; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `0_i64` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/solutions.rs:423:13 [INFO] [stderr] | [INFO] [stderr] 423 | return 0_i64; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `0_i64` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/solutions.rs:521:16 [INFO] [stderr] | [INFO] [stderr] 521 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 522 | | if index % 2 == 0 { [INFO] [stderr] 523 | | divisor_count = cache.get(index/2) * cache.get(index+1); [INFO] [stderr] 524 | | } else { [INFO] [stderr] 525 | | divisor_count = cache.get(index) * cache.get((index + 1)/2); [INFO] [stderr] 526 | | } [INFO] [stderr] 527 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 521 | } else if index % 2 == 0 { [INFO] [stderr] 522 | divisor_count = cache.get(index/2) * cache.get(index+1); [INFO] [stderr] 523 | } else { [INFO] [stderr] 524 | divisor_count = cache.get(index) * cache.get((index + 1)/2); [INFO] [stderr] 525 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/solutions.rs:282:5 [INFO] [stderr] | [INFO] [stderr] 282 | solution [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/solutions.rs:278:20 [INFO] [stderr] | [INFO] [stderr] 278 | let solution = match triples.iter().max() { [INFO] [stderr] | ____________________^ [INFO] [stderr] 279 | | Some(num) => *num, [INFO] [stderr] 280 | | None => -1_i64, [INFO] [stderr] 281 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/solutions.rs:383:13 [INFO] [stderr] | [INFO] [stderr] 383 | return 0_i64; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `0_i64` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/solutions.rs:396:13 [INFO] [stderr] | [INFO] [stderr] 396 | return 0_i64; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `0_i64` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/solutions.rs:409:13 [INFO] [stderr] | [INFO] [stderr] 409 | return 0_i64; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `0_i64` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/solutions.rs:423:13 [INFO] [stderr] | [INFO] [stderr] 423 | return 0_i64; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `0_i64` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/solutions.rs:521:16 [INFO] [stderr] | [INFO] [stderr] 521 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 522 | | if index % 2 == 0 { [INFO] [stderr] 523 | | divisor_count = cache.get(index/2) * cache.get(index+1); [INFO] [stderr] 524 | | } else { [INFO] [stderr] 525 | | divisor_count = cache.get(index) * cache.get((index + 1)/2); [INFO] [stderr] 526 | | } [INFO] [stderr] 527 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 521 | } else if index % 2 == 0 { [INFO] [stderr] 522 | divisor_count = cache.get(index/2) * cache.get(index+1); [INFO] [stderr] 523 | } else { [INFO] [stderr] 524 | divisor_count = cache.get(index) * cache.get((index + 1)/2); [INFO] [stderr] 525 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/tests.rs:90:12 [INFO] [stderr] | [INFO] [stderr] 90 | assert_eq!(73812150, grid_prod(grid, 4_usize)); [INFO] [stderr] | ^^^^^^^^ help: consider: `73_812_150` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `solutions::FibThree` [INFO] [stderr] --> src/solutions.rs:50:5 [INFO] [stderr] | [INFO] [stderr] 50 | / pub fn new() -> FibThree { [INFO] [stderr] 51 | | FibThree {fib_pair: [0,1]} [INFO] [stderr] 52 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 45 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/solutions.rs:115:13 [INFO] [stderr] | [INFO] [stderr] 115 | target = target / ind; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `target /= ind` [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: an inclusive range would be more readable [INFO] [stderr] --> src/solutions.rs:145:32 [INFO] [stderr] | [INFO] [stderr] 145 | let mut list: Vec = (1..(range_n+1)).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use: `(1..=range_n)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `list`. [INFO] [stderr] --> src/solutions.rs:152:18 [INFO] [stderr] | [INFO] [stderr] 152 | for i in index..range_n { [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] 152 | for in list.iter_mut().take(range_n).skip(index) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/solutions.rs:218:26 [INFO] [stderr] | [INFO] [stderr] 218 | let digit: i64 = c.to_digit(10) [INFO] [stderr] | __________________________^ [INFO] [stderr] 219 | | .unwrap() as i64; [INFO] [stderr] | |__________________________________________^ [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] help: try [INFO] [stderr] | [INFO] [stderr] 218 | let digit: i64 = i64::from(c.to_digit(10) [INFO] [stderr] 219 | .unwrap()); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/solutions.rs:227:26 [INFO] [stderr] | [INFO] [stderr] 227 | let digit: i64 = c.to_digit(10) [INFO] [stderr] | __________________________^ [INFO] [stderr] 228 | | .unwrap() as i64; [INFO] [stderr] | |__________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 227 | let digit: i64 = i64::from(c.to_digit(10) [INFO] [stderr] 228 | .unwrap()); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this `.fold` can be written more succinctly using another method [INFO] [stderr] --> src/solutions.rs:234:33 [INFO] [stderr] | [INFO] [stderr] 234 | prod = digits.iter() [INFO] [stderr] | _________________________________^ [INFO] [stderr] 235 | | .fold(1, |prod,dig| prod * dig); [INFO] [stderr] | |___________________________________________^ help: try: `.product()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_fold)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fold [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/solutions.rs:237:13 [INFO] [stderr] | [INFO] [stderr] 237 | prod = prod / divide; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `prod /= divide` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/solutions.rs:269:14 [INFO] [stderr] | [INFO] [stderr] 269 | for a in 1..(n/2 + 1) { [INFO] [stderr] | ^^^^^^^^^^^^ help: use: `1..=n/2` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/solutions.rs:275:26 [INFO] [stderr] | [INFO] [stderr] 275 | triples.push((a*b*c) as i64); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i64::from(a*b*c)` [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 should consider deriving a `Default` implementation for `solutions::PrimeCache` [INFO] [stderr] --> src/solutions.rs:296:5 [INFO] [stderr] | [INFO] [stderr] 296 | / pub fn new() -> PrimeCache { [INFO] [stderr] 297 | | PrimeCache { primes: vec![2,3,5,7], bookmark: 8} [INFO] [stderr] 298 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 290 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/solutions.rs:350:5 [INFO] [stderr] | [INFO] [stderr] 350 | / loop { [INFO] [stderr] 351 | | let prime = match primes.next() { [INFO] [stderr] 352 | | Some(num) => *num, [INFO] [stderr] 353 | | None => {break}, [INFO] [stderr] ... | [INFO] [stderr] 356 | | total += prime; [INFO] [stderr] 357 | | } [INFO] [stderr] | |_____^ help: try: `while let Some(num) = primes.next() { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [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/solutions.rs:380:24 [INFO] [stderr] | [INFO] [stderr] 380 | fn mult_down(grid: &Vec>, coord: (usize,usize), k: usize) -> i64 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [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: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/solutions.rs:390:13 [INFO] [stderr] | [INFO] [stderr] 390 | total as i64 [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i64::from(total)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/solutions.rs:393:25 [INFO] [stderr] | [INFO] [stderr] 393 | fn mult_right(grid: &Vec>, coord: (usize,usize), k: usize) -> i64 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/solutions.rs:403:13 [INFO] [stderr] | [INFO] [stderr] 403 | total as i64 [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i64::from(total)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/solutions.rs:406:30 [INFO] [stderr] | [INFO] [stderr] 406 | fn mult_down_right(grid: &Vec>, coord: (usize,usize), k: usize) -> i64{ [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/solutions.rs:416:13 [INFO] [stderr] | [INFO] [stderr] 416 | total as i64 [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i64::from(total)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/solutions.rs:420:28 [INFO] [stderr] | [INFO] [stderr] 420 | fn mult_up_right(grid: &Vec>, coord: (usize,usize), k: usize) -> i64{ [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/solutions.rs:430:13 [INFO] [stderr] | [INFO] [stderr] 430 | total as i64 [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i64::from(total)` [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 should consider deriving a `Default` implementation for `solutions::DivisorCache` [INFO] [stderr] --> src/solutions.rs:462:5 [INFO] [stderr] | [INFO] [stderr] 462 | / pub fn new() -> DivisorCache { [INFO] [stderr] 463 | | let mut cache = HashMap::new(); [INFO] [stderr] 464 | | cache.insert(1,1); [INFO] [stderr] 465 | | cache.insert(2,2); [INFO] [stderr] 466 | | DivisorCache { divisors: cache } [INFO] [stderr] 467 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 457 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/solutions.rs:480:9 [INFO] [stderr] | [INFO] [stderr] 480 | / if !self.divisors.contains_key(&key) { [INFO] [stderr] 481 | | let mut local_divisors = vec![1_i64, key]; [INFO] [stderr] 482 | | let mut test = 2_i64; [INFO] [stderr] 483 | | let check = key; [INFO] [stderr] ... | [INFO] [stderr] 493 | | self.divisors.insert(key,local_divisors.len() as i64); [INFO] [stderr] 494 | | } [INFO] [stderr] | |_________^ help: consider using: `self.divisors.entry(key)` [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/solutions.rs:495:10 [INFO] [stderr] | [INFO] [stderr] 495 | *self.divisors.get(&key).unwrap() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.divisors[&key]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `solutions::CollatzCache` [INFO] [stderr] --> src/solutions.rs:546:5 [INFO] [stderr] | [INFO] [stderr] 546 | / pub fn new() -> CollatzCache { [INFO] [stderr] 547 | | let mut cache = HashMap::new(); [INFO] [stderr] 548 | | cache.insert(1,1); [INFO] [stderr] 549 | | CollatzCache{ collatz: cache } [INFO] [stderr] 550 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 541 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions.rs:565:36 [INFO] [stderr] | [INFO] [stderr] 565 | base_offset = *self.collatz.get(¤t).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.collatz[¤t]` [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: an inclusive range would be more readable [INFO] [stderr] --> src/solutions.rs:572:22 [INFO] [stderr] | [INFO] [stderr] 572 | for i in 1..(offset+1) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: use: `1..=offset` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions.rs:578:10 [INFO] [stderr] | [INFO] [stderr] 578 | *self.collatz.get(&key).unwrap() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.collatz[&key]` [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: an inclusive range would be more readable [INFO] [stderr] --> src/solutions.rs:585:5 [INFO] [stderr] | [INFO] [stderr] 585 | ((n/2)..(n+1)).map(|x| cache.get(x)) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use: `((n/2)..=n)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/lib.rs:15:9 [INFO] [stderr] | [INFO] [stderr] 15 | Err(_) => panic!("Not a number!") [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_wild_err_arm)] on by default [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/lib.rs:27:17 [INFO] [stderr] | [INFO] [stderr] 27 | Err(_) => panic!("Not a number.") [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `solutions::FibThree` [INFO] [stderr] --> src/solutions.rs:50:5 [INFO] [stderr] | [INFO] [stderr] 50 | / pub fn new() -> FibThree { [INFO] [stderr] 51 | | FibThree {fib_pair: [0,1]} [INFO] [stderr] 52 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 45 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/solutions.rs:115:13 [INFO] [stderr] | [INFO] [stderr] 115 | target = target / ind; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `target /= ind` [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: an inclusive range would be more readable [INFO] [stderr] --> src/solutions.rs:145:32 [INFO] [stderr] | [INFO] [stderr] 145 | let mut list: Vec = (1..(range_n+1)).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use: `(1..=range_n)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `list`. [INFO] [stderr] --> src/solutions.rs:152:18 [INFO] [stderr] | [INFO] [stderr] 152 | for i in index..range_n { [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] 152 | for in list.iter_mut().take(range_n).skip(index) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/solutions.rs:218:26 [INFO] [stderr] | [INFO] [stderr] 218 | let digit: i64 = c.to_digit(10) [INFO] [stderr] | __________________________^ [INFO] [stderr] 219 | | .unwrap() as i64; [INFO] [stderr] | |__________________________________________^ [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] help: try [INFO] [stderr] | [INFO] [stderr] 218 | let digit: i64 = i64::from(c.to_digit(10) [INFO] [stderr] 219 | .unwrap()); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/solutions.rs:227:26 [INFO] [stderr] | [INFO] [stderr] 227 | let digit: i64 = c.to_digit(10) [INFO] [stderr] | __________________________^ [INFO] [stderr] 228 | | .unwrap() as i64; [INFO] [stderr] | |__________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 227 | let digit: i64 = i64::from(c.to_digit(10) [INFO] [stderr] 228 | .unwrap()); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this `.fold` can be written more succinctly using another method [INFO] [stderr] --> src/solutions.rs:234:33 [INFO] [stderr] | [INFO] [stderr] 234 | prod = digits.iter() [INFO] [stderr] | _________________________________^ [INFO] [stderr] 235 | | .fold(1, |prod,dig| prod * dig); [INFO] [stderr] | |___________________________________________^ help: try: `.product()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_fold)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fold [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/solutions.rs:237:13 [INFO] [stderr] | [INFO] [stderr] 237 | prod = prod / divide; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `prod /= divide` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/solutions.rs:269:14 [INFO] [stderr] | [INFO] [stderr] 269 | for a in 1..(n/2 + 1) { [INFO] [stderr] | ^^^^^^^^^^^^ help: use: `1..=n/2` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/solutions.rs:275:26 [INFO] [stderr] | [INFO] [stderr] 275 | triples.push((a*b*c) as i64); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i64::from(a*b*c)` [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 should consider deriving a `Default` implementation for `solutions::PrimeCache` [INFO] [stderr] --> src/solutions.rs:296:5 [INFO] [stderr] | [INFO] [stderr] 296 | / pub fn new() -> PrimeCache { [INFO] [stderr] 297 | | PrimeCache { primes: vec![2,3,5,7], bookmark: 8} [INFO] [stderr] 298 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 290 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/solutions.rs:350:5 [INFO] [stderr] | [INFO] [stderr] 350 | / loop { [INFO] [stderr] 351 | | let prime = match primes.next() { [INFO] [stderr] 352 | | Some(num) => *num, [INFO] [stderr] 353 | | None => {break}, [INFO] [stderr] ... | [INFO] [stderr] 356 | | total += prime; [INFO] [stderr] 357 | | } [INFO] [stderr] | |_____^ help: try: `while let Some(num) = primes.next() { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [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/solutions.rs:380:24 [INFO] [stderr] | [INFO] [stderr] 380 | fn mult_down(grid: &Vec>, coord: (usize,usize), k: usize) -> i64 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [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: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/solutions.rs:390:13 [INFO] [stderr] | [INFO] [stderr] 390 | total as i64 [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i64::from(total)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/solutions.rs:393:25 [INFO] [stderr] | [INFO] [stderr] 393 | fn mult_right(grid: &Vec>, coord: (usize,usize), k: usize) -> i64 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/solutions.rs:403:13 [INFO] [stderr] | [INFO] [stderr] 403 | total as i64 [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i64::from(total)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/solutions.rs:406:30 [INFO] [stderr] | [INFO] [stderr] 406 | fn mult_down_right(grid: &Vec>, coord: (usize,usize), k: usize) -> i64{ [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/solutions.rs:416:13 [INFO] [stderr] | [INFO] [stderr] 416 | total as i64 [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i64::from(total)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/solutions.rs:420:28 [INFO] [stderr] | [INFO] [stderr] 420 | fn mult_up_right(grid: &Vec>, coord: (usize,usize), k: usize) -> i64{ [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/solutions.rs:430:13 [INFO] [stderr] | [INFO] [stderr] 430 | total as i64 [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i64::from(total)` [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 should consider deriving a `Default` implementation for `solutions::DivisorCache` [INFO] [stderr] --> src/solutions.rs:462:5 [INFO] [stderr] | [INFO] [stderr] 462 | / pub fn new() -> DivisorCache { [INFO] [stderr] 463 | | let mut cache = HashMap::new(); [INFO] [stderr] 464 | | cache.insert(1,1); [INFO] [stderr] 465 | | cache.insert(2,2); [INFO] [stderr] 466 | | DivisorCache { divisors: cache } [INFO] [stderr] 467 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 457 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/solutions.rs:480:9 [INFO] [stderr] | [INFO] [stderr] 480 | / if !self.divisors.contains_key(&key) { [INFO] [stderr] 481 | | let mut local_divisors = vec![1_i64, key]; [INFO] [stderr] 482 | | let mut test = 2_i64; [INFO] [stderr] 483 | | let check = key; [INFO] [stderr] ... | [INFO] [stderr] 493 | | self.divisors.insert(key,local_divisors.len() as i64); [INFO] [stderr] 494 | | } [INFO] [stderr] | |_________^ help: consider using: `self.divisors.entry(key)` [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/solutions.rs:495:10 [INFO] [stderr] | [INFO] [stderr] 495 | *self.divisors.get(&key).unwrap() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.divisors[&key]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `solutions::CollatzCache` [INFO] [stderr] --> src/solutions.rs:546:5 [INFO] [stderr] | [INFO] [stderr] 546 | / pub fn new() -> CollatzCache { [INFO] [stderr] 547 | | let mut cache = HashMap::new(); [INFO] [stderr] 548 | | cache.insert(1,1); [INFO] [stderr] 549 | | CollatzCache{ collatz: cache } [INFO] [stderr] 550 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 541 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions.rs:565:36 [INFO] [stderr] | [INFO] [stderr] 565 | base_offset = *self.collatz.get(¤t).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.collatz[¤t]` [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: an inclusive range would be more readable [INFO] [stderr] --> src/solutions.rs:572:22 [INFO] [stderr] | [INFO] [stderr] 572 | for i in 1..(offset+1) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: use: `1..=offset` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions.rs:578:10 [INFO] [stderr] | [INFO] [stderr] 578 | *self.collatz.get(&key).unwrap() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.collatz[&key]` [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: an inclusive range would be more readable [INFO] [stderr] --> src/solutions.rs:585:5 [INFO] [stderr] | [INFO] [stderr] 585 | ((n/2)..(n+1)).map(|x| cache.get(x)) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use: `((n/2)..=n)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/lib.rs:15:9 [INFO] [stderr] | [INFO] [stderr] 15 | Err(_) => panic!("Not a number!") [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_wild_err_arm)] on by default [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/lib.rs:27:17 [INFO] [stderr] | [INFO] [stderr] 27 | Err(_) => panic!("Not a number.") [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1.48s [INFO] running `"docker" "inspect" "31e2d3c2ac0f7c8a9715824bdddafa32977eaf0d8ab799e37d4ebcf9c91b16cb"` [INFO] running `"docker" "rm" "-f" "31e2d3c2ac0f7c8a9715824bdddafa32977eaf0d8ab799e37d4ebcf9c91b16cb"` [INFO] [stdout] 31e2d3c2ac0f7c8a9715824bdddafa32977eaf0d8ab799e37d4ebcf9c91b16cb