[INFO] updating cached repository PhilipDaniels/projecteuler [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/PhilipDaniels/projecteuler [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/PhilipDaniels/projecteuler" "work/ex/clippy-test-run/sources/stable/gh/PhilipDaniels/projecteuler"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/PhilipDaniels/projecteuler'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/PhilipDaniels/projecteuler" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/PhilipDaniels/projecteuler"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/PhilipDaniels/projecteuler'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 32960482901579f6c3af5ba18865db39eb6c62b9 [INFO] sha for GitHub repo PhilipDaniels/projecteuler: 32960482901579f6c3af5ba18865db39eb6c62b9 [INFO] validating manifest of PhilipDaniels/projecteuler 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 PhilipDaniels/projecteuler 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 PhilipDaniels/projecteuler [INFO] finished frobbing PhilipDaniels/projecteuler [INFO] frobbed toml for PhilipDaniels/projecteuler written to work/ex/clippy-test-run/sources/stable/gh/PhilipDaniels/projecteuler/Cargo.toml [INFO] started frobbing PhilipDaniels/projecteuler [INFO] finished frobbing PhilipDaniels/projecteuler [INFO] frobbed toml for PhilipDaniels/projecteuler written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/PhilipDaniels/projecteuler/Cargo.toml [INFO] crate PhilipDaniels/projecteuler 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 PhilipDaniels/projecteuler against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/PhilipDaniels/projecteuler:/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] 66119e362c1650e1a51103d789cb0bfc2a795ba0491f295591c7b87cb8ec3997 [INFO] running `"docker" "start" "-a" "66119e362c1650e1a51103d789cb0bfc2a795ba0491f295591c7b87cb8ec3997"` [INFO] [stderr] Checking elapsed v0.1.2 [INFO] [stderr] Checking projecteuler v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/calc.rs:356:35 [INFO] [stderr] | [INFO] [stderr] 356 | assert_eq!(triangle(500), 125250); [INFO] [stderr] | ^^^^^^ help: consider: `125_250` [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/calc.rs:402:69 [INFO] [stderr] | [INFO] [stderr] 402 | assert_eq!(vec_to_num(&vec![5, 5, 3, 7, 3, 7, 6, 2, 3, 0]), 5537376230); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `5_537_376_230` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: the loop variable `row` is only used to index `m`. [INFO] [stderr] --> src/p011_to_p020.rs:52:20 [INFO] [stderr] | [INFO] [stderr] 52 | for row in 0..m.rows() { [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] 52 | for in m.iter().take(m.rows()) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `row` is only used to index `input`. [INFO] [stderr] --> src/p011_to_p020.rs:375:20 [INFO] [stderr] | [INFO] [stderr] 375 | for row in 0..input_len { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [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] 375 | for in input.iter().take(input_len) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/main.rs:66:25 [INFO] [stderr] | [INFO] [stderr] 66 | args.extend(1..SOLUTIONS.len() + 1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `1..=SOLUTIONS.len()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/main.rs:77:41 [INFO] [stderr] | [INFO] [stderr] 77 | args.extend(start..end + 1); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use: `start..=end` [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: useless use of `vec!` [INFO] [stderr] --> src/calc.rs:397:31 [INFO] [stderr] | [INFO] [stderr] 397 | assert_eq!(vec_to_num(&vec![0]), 0); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_vec)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/calc.rs:398:31 [INFO] [stderr] | [INFO] [stderr] 398 | assert_eq!(vec_to_num(&vec![1]), 1); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[1]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/calc.rs:399:31 [INFO] [stderr] | [INFO] [stderr] 399 | assert_eq!(vec_to_num(&vec![9]), 9); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[9]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/calc.rs:400:31 [INFO] [stderr] | [INFO] [stderr] 400 | assert_eq!(vec_to_num(&vec![1, 0]), 10); [INFO] [stderr] | ^^^^^^^^^^^ help: you can use a slice directly: `&[1, 0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/calc.rs:401:31 [INFO] [stderr] | [INFO] [stderr] 401 | assert_eq!(vec_to_num(&vec![1, 2, 3, 0]), 1230); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[1, 2, 3, 0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/calc.rs:402:31 [INFO] [stderr] | [INFO] [stderr] 402 | assert_eq!(vec_to_num(&vec![5, 5, 3, 7, 3, 7, 6, 2, 3, 0]), 5537376230); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[5, 5, 3, 7, 3, 7, 6, 2, 3, 0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 50 [INFO] [stderr] --> src/calc.rs:406:5 [INFO] [stderr] | [INFO] [stderr] 406 | / fn collatz_len_works() { [INFO] [stderr] 407 | | // These values were pre-computed using a dumb, non-caching collatz_len function. [INFO] [stderr] 408 | | let mut known_collatzes = HashMap::new(); [INFO] [stderr] 409 | | known_collatzes.insert(1, 1); [INFO] [stderr] ... | [INFO] [stderr] 463 | | assert_eq!(collatz_len(49, &mut known_collatzes), 25); [INFO] [stderr] 464 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/utils.rs:59:31 [INFO] [stderr] | [INFO] [stderr] 59 | assert!(is_palindrome(&vec![22])); [INFO] [stderr] | ^^^^^^^^^ help: you can use a slice directly: `&[22]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/utils.rs:64:32 [INFO] [stderr] | [INFO] [stderr] 64 | assert!(!is_palindrome(&vec![1, 2])); [INFO] [stderr] | ^^^^^^^^^^^ help: you can use a slice directly: `&[1, 2]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/utils.rs:65:32 [INFO] [stderr] | [INFO] [stderr] 65 | assert!(!is_palindrome(&vec![1, 2, 2])); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: you can use a slice directly: `&[1, 2, 2]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/utils.rs:66:32 [INFO] [stderr] | [INFO] [stderr] 66 | assert!(!is_palindrome(&vec![1, 2, 3])); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: you can use a slice directly: `&[1, 2, 3]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/utils.rs:71:31 [INFO] [stderr] | [INFO] [stderr] 71 | assert!(is_palindrome(&vec![1, 1])); [INFO] [stderr] | ^^^^^^^^^^^ help: you can use a slice directly: `&[1, 1]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/utils.rs:72:31 [INFO] [stderr] | [INFO] [stderr] 72 | assert!(is_palindrome(&vec![1, 2, 1])); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: you can use a slice directly: `&[1, 2, 1]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/utils.rs:73:31 [INFO] [stderr] | [INFO] [stderr] 73 | assert!(is_palindrome(&vec![1, 2, 3, 2, 1])); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[1, 2, 3, 2, 1]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: the loop variable `row` is only used to index `m`. [INFO] [stderr] --> src/p011_to_p020.rs:52:20 [INFO] [stderr] | [INFO] [stderr] 52 | for row in 0..m.rows() { [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] 52 | for in m.iter().take(m.rows()) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `row` is only used to index `input`. [INFO] [stderr] --> src/p011_to_p020.rs:375:20 [INFO] [stderr] | [INFO] [stderr] 375 | for row in 0..input_len { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [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] 375 | for in input.iter().take(input_len) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/main.rs:66:25 [INFO] [stderr] | [INFO] [stderr] 66 | args.extend(1..SOLUTIONS.len() + 1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `1..=SOLUTIONS.len()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/main.rs:77:41 [INFO] [stderr] | [INFO] [stderr] 77 | args.extend(start..end + 1); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use: `start..=end` [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] Finished dev [unoptimized + debuginfo] target(s) in 3.48s [INFO] running `"docker" "inspect" "66119e362c1650e1a51103d789cb0bfc2a795ba0491f295591c7b87cb8ec3997"` [INFO] running `"docker" "rm" "-f" "66119e362c1650e1a51103d789cb0bfc2a795ba0491f295591c7b87cb8ec3997"` [INFO] [stdout] 66119e362c1650e1a51103d789cb0bfc2a795ba0491f295591c7b87cb8ec3997