[INFO] cloning repository https://github.com/sciyoshi/euler
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/sciyoshi/euler" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsciyoshi%2Feuler", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsciyoshi%2Feuler'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 82220e62954758d66ff70909e04fd7a5208addde
[INFO] checking sciyoshi/euler against master#4d1bd0db7f489b22c6d8aa2385937a95412c015b for pr-114682
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsciyoshi%2Feuler" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/sciyoshi/euler on toolchain 4d1bd0db7f489b22c6d8aa2385937a95412c015b
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4d1bd0db7f489b22c6d8aa2385937a95412c015b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/sciyoshi/euler
[INFO] finished tweaking git repo https://github.com/sciyoshi/euler
[INFO] tweaked toml for git repo https://github.com/sciyoshi/euler written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/sciyoshi/euler already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4d1bd0db7f489b22c6d8aa2385937a95412c015b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[ERROR] this task or one of its parent failed!
[ERROR] no output for 300 seconds
[ERROR] note: run with `RUST_BACKTRACE=1` to display a backtrace.
[INFO] checking sciyoshi/euler against try#785364c7e5e0804473a3fddfb579798ea14e3493 for pr-114682
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsciyoshi%2Feuler" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/sciyoshi/euler on toolchain 785364c7e5e0804473a3fddfb579798ea14e3493
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+785364c7e5e0804473a3fddfb579798ea14e3493" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/sciyoshi/euler
[INFO] finished tweaking git repo https://github.com/sciyoshi/euler
[INFO] tweaked toml for git repo https://github.com/sciyoshi/euler written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/sciyoshi/euler already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+785364c7e5e0804473a3fddfb579798ea14e3493" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Updating git repository `https://github.com/kunerd/mod_pow`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] checking sciyoshi/euler against try#785364c7e5e0804473a3fddfb579798ea14e3493 for pr-114682
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsciyoshi%2Feuler" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/sciyoshi/euler on toolchain 785364c7e5e0804473a3fddfb579798ea14e3493
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+785364c7e5e0804473a3fddfb579798ea14e3493" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/sciyoshi/euler
[INFO] finished tweaking git repo https://github.com/sciyoshi/euler
[INFO] tweaked toml for git repo https://github.com/sciyoshi/euler written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/sciyoshi/euler already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+785364c7e5e0804473a3fddfb579798ea14e3493" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded primal-check v0.2.2
[INFO] [stderr]   Downloaded itertools v0.5.6
[INFO] [stderr]   Downloaded primal-bit v0.2.3
[INFO] [stderr]   Downloaded mod_exp v1.0.0
[INFO] [stderr]   Downloaded either v1.0.2
[INFO] [stderr]   Downloaded atty v0.2.1
[INFO] [stderr]   Downloaded primal-sieve v0.2.6
[INFO] [stderr]   Downloaded prettytable-rs v0.6.6
[INFO] [stderr]   Downloaded encode_unicode v0.2.0
[INFO] [stderr]   Downloaded bit-vec v0.4.3
[INFO] [stderr]   Downloaded csv v0.14.7
[INFO] [stderr]   Downloaded roaring v0.4.0
[INFO] [stderr]   Downloaded matrixmultiply v0.1.12
[INFO] [stderr]   Downloaded ndarray v0.7.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+785364c7e5e0804473a3fddfb579798ea14e3493" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 97ca4ab588230a39f93c9538e5b917e4057f3a34b960ae910b276da6cea0f337
[INFO] running `Command { std: "docker" "start" "-a" "97ca4ab588230a39f93c9538e5b917e4057f3a34b960ae910b276da6cea0f337", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "97ca4ab588230a39f93c9538e5b917e4057f3a34b960ae910b276da6cea0f337", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "97ca4ab588230a39f93c9538e5b917e4057f3a34b960ae910b276da6cea0f337", kill_on_drop: false }`
[INFO] [stdout] 97ca4ab588230a39f93c9538e5b917e4057f3a34b960ae910b276da6cea0f337
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+785364c7e5e0804473a3fddfb579798ea14e3493" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] afbb99f05854399233e980a434e6036347d4c2fe52679196af3af7bef70f07d9
[INFO] running `Command { std: "docker" "start" "-a" "afbb99f05854399233e980a434e6036347d4c2fe52679196af3af7bef70f07d9", kill_on_drop: false }`
[INFO] [stderr]     Checking rustc-serialize v0.3.21
[INFO] [stderr]     Checking libc v0.2.17
[INFO] [stderr]     Checking num-traits v0.1.36
[INFO] [stderr]    Compiling winapi-build v0.1.1
[INFO] [stderr]     Checking winapi v0.2.8
[INFO] [stderr]     Checking hamming v0.1.3
[INFO] [stderr]     Checking primal-estimate v0.2.1
[INFO] [stderr]     Checking byteorder v0.5.3
[INFO] [stderr]    Compiling ndarray v0.7.1
[INFO] [stderr]     Checking either v1.0.2
[INFO] [stderr]     Checking matrixmultiply v0.1.12
[INFO] [stderr]     Checking bit-vec v0.4.3
[INFO] [stderr]     Checking encode_unicode v0.2.0
[INFO] [stderr]     Checking unicode-width v0.1.3
[INFO] [stderr]     Checking lazy_static v0.2.2
[INFO] [stderr]     Checking itertools v0.5.6
[INFO] [stderr]    Compiling kernel32-sys v0.2.2
[INFO] [stderr]     Checking primal-bit v0.2.3
[INFO] [stderr]     Checking bit-set v0.4.0
[INFO] [stderr]     Checking rand v0.3.14
[INFO] [stderr]     Checking primal-sieve v0.2.6
[INFO] [stderr]     Checking atty v0.2.1
[INFO] [stderr]     Checking term v0.4.4
[INFO] [stderr]     Checking time v0.1.35
[INFO] [stderr]     Checking num-integer v0.1.32
[INFO] [stderr]     Checking num-iter v0.1.32
[INFO] [stderr]     Checking num-complex v0.1.35
[INFO] [stderr]     Checking num-bigint v0.1.35
[INFO] [stderr]     Checking csv v0.14.7
[INFO] [stderr]     Checking prettytable-rs v0.6.6
[INFO] [stderr]     Checking num-rational v0.1.35
[INFO] [stderr]     Checking num v0.1.36
[INFO] [stderr]     Checking primal-check v0.2.2
[INFO] [stderr]     Checking mod_pow v0.1.0 (https://github.com/kunerd/mod_pow#c3a01b12)
[INFO] [stderr]     Checking mod_exp v1.0.0
[INFO] [stderr]     Checking roaring v0.4.0
[INFO] [stderr]     Checking primal v0.2.3
[INFO] [stderr]     Checking euler v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem75.rs:41:20
[INFO] [stdout]    |
[INFO] [stdout] 41 |         for total in (sum...limit).step_by(sum) {
[INFO] [stdout]    |                          ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 41 |         for total in (sum..limit).step_by(sum) {
[INFO] [stdout]    |                          ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 41 |         for total in (sum..=limit).step_by(sum) {
[INFO] [stdout]    |                          ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem75.rs:41:20
[INFO] [stdout]    |
[INFO] [stdout] 41 |         for total in (sum...limit).step_by(sum) {
[INFO] [stdout]    |                          ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 41 |         for total in (sum..limit).step_by(sum) {
[INFO] [stdout]    |                          ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 41 |         for total in (sum..=limit).step_by(sum) {
[INFO] [stdout]    |                          ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem91.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 |     for x in 1...bound {
[INFO] [stdout]    |               ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 17 |     for x in 1..bound {
[INFO] [stdout]    |               ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 17 |     for x in 1..=bound {
[INFO] [stdout]    |               ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem91.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |         for y in 1...x {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 18 |         for y in 1..x {
[INFO] [stdout]    |                   ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 18 |         for y in 1..=x {
[INFO] [stdout]    |                   ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem93.rs:86:13
[INFO] [stdout]    |
[INFO] [stdout] 86 |         for j in i...k {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 86 |         for j in i..k {
[INFO] [stdout]    |                   ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 86 |         for j in i..=k {
[INFO] [stdout]    |                   ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem94.rs:11:13
[INFO] [stdout]    |
[INFO] [stdout] 11 |     for i in (3...limit).step_by(2) {
[INFO] [stdout]    |                ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 11 |     for i in (3..limit).step_by(2) {
[INFO] [stdout]    |                ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 11 |     for i in (3..=limit).step_by(2) {
[INFO] [stdout]    |                ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem94.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |     for i in (3...limit).step_by(2) {
[INFO] [stdout]    |                ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 17 |     for i in (3..limit).step_by(2) {
[INFO] [stdout]    |                ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 17 |     for i in (3..=limit).step_by(2) {
[INFO] [stdout]    |                ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem96.rs:42:17
[INFO] [stdout]    |
[INFO] [stdout] 42 |         for digit in 1...9 {
[INFO] [stdout]    |                       ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 42 |         for digit in 1..9 {
[INFO] [stdout]    |                       ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 42 |         for digit in 1..=9 {
[INFO] [stdout]    |                       ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem96.rs:58:19
[INFO] [stdout]    |
[INFO] [stdout] 58 |                 for digit in 1...9 {
[INFO] [stdout]    |                               ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 58 |                 for digit in 1..9 {
[INFO] [stdout]    |                               ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 58 |                 for digit in 1..=9 {
[INFO] [stdout]    |                               ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem98.rs:54:28
[INFO] [stdout]    |
[INFO] [stdout] 54 |     let squares: Vec<u64> = (1...limit).map(|n| n * n).collect();
[INFO] [stdout]    |                               ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 54 |     let squares: Vec<u64> = (1..limit).map(|n| n * n).collect();
[INFO] [stdout]    |                               ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 54 |     let squares: Vec<u64> = (1..=limit).map(|n| n * n).collect();
[INFO] [stdout]    |                               ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]  --> src/problem124.rs:9:42
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let mut result: Vec<(usize, usize)> = (1...limit).map(|n| (sieve.factor(n).unwrap().iter().map(|&(p, _)| p).product(), n)).collect();
[INFO] [stdout]   |                                             ^^^
[INFO] [stdout]   |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let mut result: Vec<(usize, usize)> = (1..limit).map(|n| (sieve.factor(n).unwrap().iter().map(|&(p, _)| p).product(), n)).collect();
[INFO] [stdout]   |                                             ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let mut result: Vec<(usize, usize)> = (1..=limit).map(|n| (sieve.factor(n).unwrap().iter().map(|&(p, _)| p).product(), n)).collect();
[INFO] [stdout]   |                                             ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem149.rs:29:40
[INFO] [stdout]    |
[INFO] [stdout] 29 |         diag1_max = max(diag1_max, max_sum((0...i).zip((0...i).rev()).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                              ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 29 |         diag1_max = max(diag1_max, max_sum((0..i).zip((0...i).rev()).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                              ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 29 |         diag1_max = max(diag1_max, max_sum((0..=i).zip((0...i).rev()).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                              ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem149.rs:29:52
[INFO] [stdout]    |
[INFO] [stdout] 29 |         diag1_max = max(diag1_max, max_sum((0...i).zip((0...i).rev()).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                                          ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 29 |         diag1_max = max(diag1_max, max_sum((0...i).zip((0..i).rev()).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                                          ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 29 |         diag1_max = max(diag1_max, max_sum((0...i).zip((0..=i).rev()).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                                          ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem149.rs:30:50
[INFO] [stdout]    |
[INFO] [stdout] 30 |         diag2_max = max(diag2_max, max_sum((dim - 1 - i...dim - 1).zip(0...i).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                                        ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 30 |         diag2_max = max(diag2_max, max_sum((dim - 1 - i..dim - 1).zip(0...i).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                                        ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 30 |         diag2_max = max(diag2_max, max_sum((dim - 1 - i..=dim - 1).zip(0...i).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                                        ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem149.rs:30:67
[INFO] [stdout]    |
[INFO] [stdout] 30 |         diag2_max = max(diag2_max, max_sum((dim - 1 - i...dim - 1).zip(0...i).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                                                         ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 30 |         diag2_max = max(diag2_max, max_sum((dim - 1 - i...dim - 1).zip(0..i).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                                                         ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 30 |         diag2_max = max(diag2_max, max_sum((dim - 1 - i...dim - 1).zip(0..=i).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                                                         ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem149.rs:34:40
[INFO] [stdout]    |
[INFO] [stdout] 34 |         diag1_max = max(diag1_max, max_sum((i...dim - 1).zip((i...dim - 1).rev()).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                              ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 34 |         diag1_max = max(diag1_max, max_sum((i..dim - 1).zip((i...dim - 1).rev()).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                              ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 34 |         diag1_max = max(diag1_max, max_sum((i..=dim - 1).zip((i...dim - 1).rev()).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                              ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem149.rs:34:58
[INFO] [stdout]    |
[INFO] [stdout] 34 |         diag1_max = max(diag1_max, max_sum((i...dim - 1).zip((i...dim - 1).rev()).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                                                ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 34 |         diag1_max = max(diag1_max, max_sum((i...dim - 1).zip((i..dim - 1).rev()).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                                                ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 34 |         diag1_max = max(diag1_max, max_sum((i...dim - 1).zip((i..=dim - 1).rev()).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                                                ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem149.rs:35:40
[INFO] [stdout]    |
[INFO] [stdout] 35 |         diag2_max = max(diag2_max, max_sum((0...i).zip(i...dim - 1).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                              ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 35 |         diag2_max = max(diag2_max, max_sum((0..i).zip(i...dim - 1).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                              ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 35 |         diag2_max = max(diag2_max, max_sum((0..=i).zip(i...dim - 1).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                              ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem149.rs:35:51
[INFO] [stdout]    |
[INFO] [stdout] 35 |         diag2_max = max(diag2_max, max_sum((0...i).zip(i...dim - 1).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                                         ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 35 |         diag2_max = max(diag2_max, max_sum((0...i).zip(i..dim - 1).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                                         ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 35 |         diag2_max = max(diag2_max, max_sum((0...i).zip(i..=dim - 1).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                                         ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem185.rs:74:16
[INFO] [stdout]    |
[INFO] [stdout] 74 |     for digit in 1...size {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 74 |     for digit in 1..size {
[INFO] [stdout]    |                   ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 74 |     for digit in 1..=size {
[INFO] [stdout]    |                   ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem185.rs:80:14
[INFO] [stdout]    |
[INFO] [stdout] 80 |     for pos in 1...size {
[INFO] [stdout]    |                 ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 80 |     for pos in 1..size {
[INFO] [stdout]    |                 ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 80 |     for pos in 1..=size {
[INFO] [stdout]    |                 ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem185.rs:81:17
[INFO] [stdout]    |
[INFO] [stdout] 81 |         for digit in 0...9 {
[INFO] [stdout]    |                       ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 81 |         for digit in 0..9 {
[INFO] [stdout]    |                       ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 81 |         for digit in 0..=9 {
[INFO] [stdout]    |                       ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem91.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 |     for x in 1...bound {
[INFO] [stdout]    |               ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 17 |     for x in 1..bound {
[INFO] [stdout]    |               ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 17 |     for x in 1..=bound {
[INFO] [stdout]    |               ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem91.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |         for y in 1...x {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 18 |         for y in 1..x {
[INFO] [stdout]    |                   ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 18 |         for y in 1..=x {
[INFO] [stdout]    |                   ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem93.rs:86:13
[INFO] [stdout]    |
[INFO] [stdout] 86 |         for j in i...k {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 86 |         for j in i..k {
[INFO] [stdout]    |                   ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 86 |         for j in i..=k {
[INFO] [stdout]    |                   ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem94.rs:11:13
[INFO] [stdout]    |
[INFO] [stdout] 11 |     for i in (3...limit).step_by(2) {
[INFO] [stdout]    |                ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 11 |     for i in (3..limit).step_by(2) {
[INFO] [stdout]    |                ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 11 |     for i in (3..=limit).step_by(2) {
[INFO] [stdout]    |                ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem94.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |     for i in (3...limit).step_by(2) {
[INFO] [stdout]    |                ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 17 |     for i in (3..limit).step_by(2) {
[INFO] [stdout]    |                ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 17 |     for i in (3..=limit).step_by(2) {
[INFO] [stdout]    |                ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem96.rs:42:17
[INFO] [stdout]    |
[INFO] [stdout] 42 |         for digit in 1...9 {
[INFO] [stdout]    |                       ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 42 |         for digit in 1..9 {
[INFO] [stdout]    |                       ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 42 |         for digit in 1..=9 {
[INFO] [stdout]    |                       ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem96.rs:58:19
[INFO] [stdout]    |
[INFO] [stdout] 58 |                 for digit in 1...9 {
[INFO] [stdout]    |                               ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 58 |                 for digit in 1..9 {
[INFO] [stdout]    |                               ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 58 |                 for digit in 1..=9 {
[INFO] [stdout]    |                               ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem98.rs:54:28
[INFO] [stdout]    |
[INFO] [stdout] 54 |     let squares: Vec<u64> = (1...limit).map(|n| n * n).collect();
[INFO] [stdout]    |                               ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 54 |     let squares: Vec<u64> = (1..limit).map(|n| n * n).collect();
[INFO] [stdout]    |                               ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 54 |     let squares: Vec<u64> = (1..=limit).map(|n| n * n).collect();
[INFO] [stdout]    |                               ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem162.rs:10:20
[INFO] [stdout]    |
[INFO] [stdout] 10 |     format!("{:X}", (1...16).map(|n| count(n)).sum::<i64>())
[INFO] [stdout]    |                       ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 10 |     format!("{:X}", (1..16).map(|n| count(n)).sum::<i64>())
[INFO] [stdout]    |                       ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 10 |     format!("{:X}", (1..=16).map(|n| count(n)).sum::<i64>())
[INFO] [stdout]    |                       ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]  --> src/problem124.rs:9:42
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let mut result: Vec<(usize, usize)> = (1...limit).map(|n| (sieve.factor(n).unwrap().iter().map(|&(p, _)| p).product(), n)).collect();
[INFO] [stdout]   |                                             ^^^
[INFO] [stdout]   |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let mut result: Vec<(usize, usize)> = (1..limit).map(|n| (sieve.factor(n).unwrap().iter().map(|&(p, _)| p).product(), n)).collect();
[INFO] [stdout]   |                                             ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let mut result: Vec<(usize, usize)> = (1..=limit).map(|n| (sieve.factor(n).unwrap().iter().map(|&(p, _)| p).product(), n)).collect();
[INFO] [stdout]   |                                             ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem149.rs:29:40
[INFO] [stdout]    |
[INFO] [stdout] 29 |         diag1_max = max(diag1_max, max_sum((0...i).zip((0...i).rev()).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                              ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 29 |         diag1_max = max(diag1_max, max_sum((0..i).zip((0...i).rev()).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                              ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 29 |         diag1_max = max(diag1_max, max_sum((0..=i).zip((0...i).rev()).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                              ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem149.rs:29:52
[INFO] [stdout]    |
[INFO] [stdout] 29 |         diag1_max = max(diag1_max, max_sum((0...i).zip((0...i).rev()).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                                          ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 29 |         diag1_max = max(diag1_max, max_sum((0...i).zip((0..i).rev()).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                                          ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 29 |         diag1_max = max(diag1_max, max_sum((0...i).zip((0..=i).rev()).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                                          ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem149.rs:30:50
[INFO] [stdout]    |
[INFO] [stdout] 30 |         diag2_max = max(diag2_max, max_sum((dim - 1 - i...dim - 1).zip(0...i).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                                        ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 30 |         diag2_max = max(diag2_max, max_sum((dim - 1 - i..dim - 1).zip(0...i).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                                        ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 30 |         diag2_max = max(diag2_max, max_sum((dim - 1 - i..=dim - 1).zip(0...i).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                                        ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem149.rs:30:67
[INFO] [stdout]    |
[INFO] [stdout] 30 |         diag2_max = max(diag2_max, max_sum((dim - 1 - i...dim - 1).zip(0...i).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                                                         ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 30 |         diag2_max = max(diag2_max, max_sum((dim - 1 - i...dim - 1).zip(0..i).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                                                         ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 30 |         diag2_max = max(diag2_max, max_sum((dim - 1 - i...dim - 1).zip(0..=i).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                                                         ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem149.rs:34:40
[INFO] [stdout]    |
[INFO] [stdout] 34 |         diag1_max = max(diag1_max, max_sum((i...dim - 1).zip((i...dim - 1).rev()).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                              ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 34 |         diag1_max = max(diag1_max, max_sum((i..dim - 1).zip((i...dim - 1).rev()).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                              ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 34 |         diag1_max = max(diag1_max, max_sum((i..=dim - 1).zip((i...dim - 1).rev()).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                              ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem149.rs:34:58
[INFO] [stdout]    |
[INFO] [stdout] 34 |         diag1_max = max(diag1_max, max_sum((i...dim - 1).zip((i...dim - 1).rev()).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                                                ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 34 |         diag1_max = max(diag1_max, max_sum((i...dim - 1).zip((i..dim - 1).rev()).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                                                ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 34 |         diag1_max = max(diag1_max, max_sum((i...dim - 1).zip((i..=dim - 1).rev()).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                                                ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem149.rs:35:40
[INFO] [stdout]    |
[INFO] [stdout] 35 |         diag2_max = max(diag2_max, max_sum((0...i).zip(i...dim - 1).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                              ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 35 |         diag2_max = max(diag2_max, max_sum((0..i).zip(i...dim - 1).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                              ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 35 |         diag2_max = max(diag2_max, max_sum((0..=i).zip(i...dim - 1).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                              ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem149.rs:35:51
[INFO] [stdout]    |
[INFO] [stdout] 35 |         diag2_max = max(diag2_max, max_sum((0...i).zip(i...dim - 1).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                                         ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 35 |         diag2_max = max(diag2_max, max_sum((0...i).zip(i..dim - 1).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                                         ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 35 |         diag2_max = max(diag2_max, max_sum((0...i).zip(i..=dim - 1).map(|(i, j)| &arr[[i, j]])));
[INFO] [stdout]    |                                                         ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem185.rs:74:16
[INFO] [stdout]    |
[INFO] [stdout] 74 |     for digit in 1...size {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 74 |     for digit in 1..size {
[INFO] [stdout]    |                   ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 74 |     for digit in 1..=size {
[INFO] [stdout]    |                   ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem185.rs:80:14
[INFO] [stdout]    |
[INFO] [stdout] 80 |     for pos in 1...size {
[INFO] [stdout]    |                 ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 80 |     for pos in 1..size {
[INFO] [stdout]    |                 ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 80 |     for pos in 1..=size {
[INFO] [stdout]    |                 ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem185.rs:81:17
[INFO] [stdout]    |
[INFO] [stdout] 81 |         for digit in 0...9 {
[INFO] [stdout]    |                       ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 81 |         for digit in 0..9 {
[INFO] [stdout]    |                       ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 81 |         for digit in 0..=9 {
[INFO] [stdout]    |                       ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]  --> src/main.rs:3:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[macro_use]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]   --> src/main.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[macro_use]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]  --> src/problem60.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 |         0...10 => 10,
[INFO] [stdout]   |          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]   = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]  --> src/problem60.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |         10...100 => 100,
[INFO] [stdout]   |           ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]  --> src/problem60.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 |         100...1000 => 1000,
[INFO] [stdout]   |            ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]  --> src/problem60.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 |         1000...10000 => 10000,
[INFO] [stdout]   |             ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/problem60.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 |         10000...100000 => 100000,
[INFO] [stdout]    |              ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/problem60.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |         100000...1000000 => 1000000,
[INFO] [stdout]    |               ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/problem60.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 |         1000000...10000000 => 10000000,
[INFO] [stdout]    |                ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/problem60.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 |         10000000...100000000 => 100000000,
[INFO] [stdout]    |                 ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/problem60.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 |         100000000...1000000000 => 1000000000,
[INFO] [stdout]    |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/problem162.rs:10:20
[INFO] [stdout]    |
[INFO] [stdout] 10 |     format!("{:X}", (1...16).map(|n| count(n)).sum::<i64>())
[INFO] [stdout]    |                       ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 10 |     format!("{:X}", (1..16).map(|n| count(n)).sum::<i64>())
[INFO] [stdout]    |                       ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 10 |     format!("{:X}", (1..=16).map(|n| count(n)).sum::<i64>())
[INFO] [stdout]    |                       ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/problem60.rs:15:13
[INFO] [stdout]    |
[INFO] [stdout] 15 |         1000000000...10000000000 => 10000000000,
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/problem60.rs:16:14
[INFO] [stdout]    |
[INFO] [stdout] 16 |         10000000000...100000000000 => 100000000000,
[INFO] [stdout]    |                    ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/problem60.rs:17:15
[INFO] [stdout]    |
[INFO] [stdout] 17 |         100000000000...1000000000000 => 1000000000000,
[INFO] [stdout]    |                     ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/problem91.rs:22:45
[INFO] [stdout]    |
[INFO] [stdout] 22 |             let min = cmp::max(-frac!(y / xp), frac!((x - bound) / yp));
[INFO] [stdout]    |                                                      ^         ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 22 -             let min = cmp::max(-frac!(y / xp), frac!((x - bound) / yp));
[INFO] [stdout] 22 +             let min = cmp::max(-frac!(y / xp), frac!(x - bound / yp));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/problem91.rs:23:44
[INFO] [stdout]    |
[INFO] [stdout] 23 |             let max = cmp::min(frac!(x / yp), frac!((bound - y) / xp));
[INFO] [stdout]    |                                                     ^         ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 23 -             let max = cmp::min(frac!(x / yp), frac!((bound - y) / xp));
[INFO] [stdout] 23 +             let max = cmp::min(frac!(x / yp), frac!(bound - y / xp));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/problem149.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 |         1...55 => (100_003 - 200_003 * (n as i64) + 300_007 * (n as i64).pow(3)) % 1_000_000 - 500_000,
[INFO] [stdout]    |          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/problem186.rs:49:4
[INFO] [stdout]    |
[INFO] [stdout] 49 |         1...55 => (100_003 - 200_003 * (n as i64) + 300_007 * (n as i64).pow(3)) % 1_000_000,
[INFO] [stdout]    |          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `inclusive_range_syntax` has been stable since 1.26.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/main.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(inclusive_range_syntax, step_by, conservative_impl_trait, ptr_eq)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `conservative_impl_trait` has been stable since 1.26.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/main.rs:1:45
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(inclusive_range_syntax, step_by, conservative_impl_trait, ptr_eq)]
[INFO] [stdout]   |                                             ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `ptr_eq` has been stable since 1.17.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/main.rs:1:70
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(inclusive_range_syntax, step_by, conservative_impl_trait, ptr_eq)]
[INFO] [stdout]   |                                                                      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0635]: unknown feature `step_by`
[INFO] [stdout]  --> src/main.rs:1:36
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(inclusive_range_syntax, step_by, conservative_impl_trait, ptr_eq)]
[INFO] [stdout]   |                                    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]  --> src/main.rs:3:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[macro_use]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]   --> src/main.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[macro_use]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/problem186.rs:11:19
[INFO] [stdout]    |
[INFO] [stdout] 11 |     select_root: Box<Fn(&DisjointSet, usize, usize) -> usize>
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 11 |     select_root: Box<dyn Fn(&DisjointSet, usize, usize) -> usize>
[INFO] [stdout]    |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]  --> src/problem60.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 |         0...10 => 10,
[INFO] [stdout]   |          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]   = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]  --> src/problem60.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |         10...100 => 100,
[INFO] [stdout]   |           ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]  --> src/problem60.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 |         100...1000 => 1000,
[INFO] [stdout]   |            ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]  --> src/problem60.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 |         1000...10000 => 10000,
[INFO] [stdout]   |             ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/problem60.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 |         10000...100000 => 100000,
[INFO] [stdout]    |              ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/problem60.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |         100000...1000000 => 1000000,
[INFO] [stdout]    |               ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/problem60.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 |         1000000...10000000 => 10000000,
[INFO] [stdout]    |                ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/problem60.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 |         10000000...100000000 => 100000000,
[INFO] [stdout]    |                 ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/problem93.rs:39:72
[INFO] [stdout]    |
[INFO] [stdout] 39 | fn add_leaf<V: Num + Copy + 'static>(tree: Rc<Node<V>>, val: V) -> Box<Iterator<Item=Node<V>>> {
[INFO] [stdout]    |                                                                        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 39 | fn add_leaf<V: Num + Copy + 'static>(tree: Rc<Node<V>>, val: V) -> Box<dyn Iterator<Item=Node<V>>> {
[INFO] [stdout]    |                                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/problem60.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 |         100000000...1000000000 => 1000000000,
[INFO] [stdout]    |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/problem93.rs:63:60
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn expr_trees<V: Num + Copy + 'static>(terms: &[V]) -> Box<Iterator<Item=Node<V>>> {
[INFO] [stdout]    |                                                            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn expr_trees<V: Num + Copy + 'static>(terms: &[V]) -> Box<dyn Iterator<Item=Node<V>>> {
[INFO] [stdout]    |                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/problem60.rs:15:13
[INFO] [stdout]    |
[INFO] [stdout] 15 |         1000000000...10000000000 => 10000000000,
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/problem60.rs:16:14
[INFO] [stdout]    |
[INFO] [stdout] 16 |         10000000000...100000000000 => 100000000000,
[INFO] [stdout]    |                    ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/problem60.rs:17:15
[INFO] [stdout]    |
[INFO] [stdout] 17 |         100000000000...1000000000000 => 1000000000000,
[INFO] [stdout]    |                     ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/problem91.rs:22:45
[INFO] [stdout]    |
[INFO] [stdout] 22 |             let min = cmp::max(-frac!(y / xp), frac!((x - bound) / yp));
[INFO] [stdout]    |                                                      ^         ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 22 -             let min = cmp::max(-frac!(y / xp), frac!((x - bound) / yp));
[INFO] [stdout] 22 +             let min = cmp::max(-frac!(y / xp), frac!(x - bound / yp));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/problem91.rs:23:44
[INFO] [stdout]    |
[INFO] [stdout] 23 |             let max = cmp::min(frac!(x / yp), frac!((bound - y) / xp));
[INFO] [stdout]    |                                                     ^         ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 23 -             let max = cmp::min(frac!(x / yp), frac!((bound - y) / xp));
[INFO] [stdout] 23 +             let max = cmp::min(frac!(x / yp), frac!(bound - y / xp));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/problem149.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 |         1...55 => (100_003 - 200_003 * (n as i64) + 300_007 * (n as i64).pow(3)) % 1_000_000 - 500_000,
[INFO] [stdout]    |          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/problem305.rs:54:54
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn superstrings(n: usize, d: usize, k: usize) -> Box<Iterator<Item=usize>> {
[INFO] [stdout]    |                                                      ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn superstrings(n: usize, d: usize, k: usize) -> Box<dyn Iterator<Item=usize>> {
[INFO] [stdout]    |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/problem186.rs:49:4
[INFO] [stdout]    |
[INFO] [stdout] 49 |         1...55 => (100_003 - 200_003 * (n as i64) + 300_007 * (n as i64).pow(3)) % 1_000_000,
[INFO] [stdout]    |          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `inclusive_range_syntax` has been stable since 1.26.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/main.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(inclusive_range_syntax, step_by, conservative_impl_trait, ptr_eq)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `conservative_impl_trait` has been stable since 1.26.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/main.rs:1:45
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(inclusive_range_syntax, step_by, conservative_impl_trait, ptr_eq)]
[INFO] [stdout]   |                                             ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `ptr_eq` has been stable since 1.17.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/main.rs:1:70
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(inclusive_range_syntax, step_by, conservative_impl_trait, ptr_eq)]
[INFO] [stdout]   |                                                                      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0635]: unknown feature `step_by`
[INFO] [stdout]  --> src/main.rs:1:36
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(inclusive_range_syntax, step_by, conservative_impl_trait, ptr_eq)]
[INFO] [stdout]   |                                    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/problem186.rs:11:19
[INFO] [stdout]    |
[INFO] [stdout] 11 |     select_root: Box<Fn(&DisjointSet, usize, usize) -> usize>
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 11 |     select_root: Box<dyn Fn(&DisjointSet, usize, usize) -> usize>
[INFO] [stdout]    |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/problem93.rs:39:72
[INFO] [stdout]    |
[INFO] [stdout] 39 | fn add_leaf<V: Num + Copy + 'static>(tree: Rc<Node<V>>, val: V) -> Box<Iterator<Item=Node<V>>> {
[INFO] [stdout]    |                                                                        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 39 | fn add_leaf<V: Num + Copy + 'static>(tree: Rc<Node<V>>, val: V) -> Box<dyn Iterator<Item=Node<V>>> {
[INFO] [stdout]    |                                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/problem93.rs:63:60
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn expr_trees<V: Num + Copy + 'static>(terms: &[V]) -> Box<Iterator<Item=Node<V>>> {
[INFO] [stdout]    |                                                            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn expr_trees<V: Num + Copy + 'static>(terms: &[V]) -> Box<dyn Iterator<Item=Node<V>>> {
[INFO] [stdout]    |                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/problem305.rs:54:54
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn superstrings(n: usize, d: usize, k: usize) -> Box<Iterator<Item=usize>> {
[INFO] [stdout]    |                                                      ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn superstrings(n: usize, d: usize, k: usize) -> Box<dyn Iterator<Item=usize>> {
[INFO] [stdout]    |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/problem75.rs:41:38
[INFO] [stdout]    |
[INFO] [stdout] 41 |         for total in (sum...limit).step_by(sum) {
[INFO] [stdout]    |                                    ------- ^^^ expected `usize`, found `u64`
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    arguments to this method are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> /rustc/785364c7e5e0804473a3fddfb579798ea14e3493/library/core/src/iter/traits/iterator.rs:449:8
[INFO] [stdout] help: you can convert a `u64` to a `usize` and panic if the converted value doesn't fit
[INFO] [stdout]    |
[INFO] [stdout] 41 |         for total in (sum...limit).step_by(sum.try_into().unwrap()) {
[INFO] [stdout]    |                                               ++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/problem75.rs:41:38
[INFO] [stdout]    |
[INFO] [stdout] 41 |         for total in (sum...limit).step_by(sum) {
[INFO] [stdout]    |                                    ------- ^^^ expected `usize`, found `u64`
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    arguments to this method are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> /rustc/785364c7e5e0804473a3fddfb579798ea14e3493/library/core/src/iter/traits/iterator.rs:449:8
[INFO] [stdout] help: you can convert a `u64` to a `usize` and panic if the converted value doesn't fit
[INFO] [stdout]    |
[INFO] [stdout] 41 |         for total in (sum...limit).step_by(sum.try_into().unwrap()) {
[INFO] [stdout]    |                                               ++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 24 previous errors; 25 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0308, E0635.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `euler` (bin "euler") due to 25 previous errors; 25 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: aborting due to 24 previous errors; 25 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0308, E0635.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `euler` (bin "euler" test) due to 25 previous errors; 25 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "afbb99f05854399233e980a434e6036347d4c2fe52679196af3af7bef70f07d9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "afbb99f05854399233e980a434e6036347d4c2fe52679196af3af7bef70f07d9", kill_on_drop: false }`
[INFO] [stdout] afbb99f05854399233e980a434e6036347d4c2fe52679196af3af7bef70f07d9
