[INFO] fetching crate raster-retrace 0.1.2...
[INFO] testing raster-retrace-0.1.2 against 1.99.0-beta.8+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate raster-retrace 0.1.2 into /workspace/builds/worker-6-tc1/source
[INFO] started tweaking crates.io crate raster-retrace 0.1.2
[INFO] finished tweaking crates.io crate raster-retrace 0.1.2
[INFO] tweaked toml for crates.io crate raster-retrace 0.1.2 written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate raster-retrace 0.1.2 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `raster-retrace` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] b9852e74f0d60c7b415d2a11b5c9022f402c669214bf6a6750aa7f9a7cab080b
[INFO] running `Command { std: "docker" "start" "b9852e74f0d60c7b415d2a11b5c9022f402c669214bf6a6750aa7f9a7cab080b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b9852e74f0d60c7b415d2a11b5c9022f402c669214bf6a6750aa7f9a7cab080b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b9852e74f0d60c7b415d2a11b5c9022f402c669214bf6a6750aa7f9a7cab080b" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b9852e74f0d60c7b415d2a11b5c9022f402c669214bf6a6750aa7f9a7cab080b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b9852e74f0d60c7b415d2a11b5c9022f402c669214bf6a6750aa7f9a7cab080b" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `raster-retrace` (manifest) generated 1 warning
[INFO] [stderr]    Compiling raster-retrace v0.1.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]  --> src/intern/argparse/mod.rs:5:34
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub const ARGDEF_REQUIRED: u32 = (1 << 0);
[INFO] [stdout]   |                                  ^      ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]   |
[INFO] [stdout] 5 - pub const ARGDEF_REQUIRED: u32 = (1 << 0);
[INFO] [stdout] 5 + pub const ARGDEF_REQUIRED: u32 = 1 << 0;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]  --> src/intern/argparse/mod.rs:6:34
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const ARGDEF_VARARGS: u32 =  (1 << 1);
[INFO] [stdout]   |                                  ^      ^
[INFO] [stdout]   |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]   |
[INFO] [stdout] 6 - pub const ARGDEF_VARARGS: u32 =  (1 << 1);
[INFO] [stdout] 6 + pub const ARGDEF_VARARGS: u32 =  1 << 1;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `::intern::math_vector`
[INFO] [stdout]  --> src/intern/curve_fit_nd/mod.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use ::intern::math_vector;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fit_poly_single`
[INFO] [stdout]   --> src/intern/curve_fit_nd/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fit_poly_single,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]   --> src/intern/min_heap/mod.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 76 |     ((i - 1) >> 1)
[INFO] [stdout]    |     ^            ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 76 -     ((i - 1) >> 1)
[INFO] [stdout] 76 +     (i - 1) >> 1
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]   --> src/intern/min_heap/mod.rs:79:5
[INFO] [stdout]    |
[INFO] [stdout] 79 |     ((i << 1) + 1)
[INFO] [stdout]    |     ^            ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 79 -     ((i << 1) + 1)
[INFO] [stdout] 79 +     (i << 1) + 1
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]   --> src/intern/min_heap/mod.rs:82:5
[INFO] [stdout]    |
[INFO] [stdout] 82 |     ((i << 1) + 2)
[INFO] [stdout]    |     ^            ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 82 -     ((i << 1) + 2)
[INFO] [stdout] 82 +     (i << 1) + 2
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]   --> src/intern/min_heap/mod.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 96 |         (a.value < b.value)
[INFO] [stdout]    |         ^                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 96 -         (a.value < b.value)
[INFO] [stdout] 96 +         a.value < b.value
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/polys_from_raster_outline.rs:45:27
[INFO] [stdout]    |
[INFO] [stdout] 45 |         pub const L: u8 = (1 << 0);
[INFO] [stdout]    |                           ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 45 -         pub const L: u8 = (1 << 0);
[INFO] [stdout] 45 +         pub const L: u8 = 1 << 0;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/polys_from_raster_outline.rs:46:27
[INFO] [stdout]    |
[INFO] [stdout] 46 |         pub const R: u8 = (1 << 1);
[INFO] [stdout]    |                           ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 46 -         pub const R: u8 = (1 << 1);
[INFO] [stdout] 46 +         pub const R: u8 = 1 << 1;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/polys_from_raster_outline.rs:47:27
[INFO] [stdout]    |
[INFO] [stdout] 47 |         pub const D: u8 = (1 << 2);
[INFO] [stdout]    |                           ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 47 -         pub const D: u8 = (1 << 2);
[INFO] [stdout] 47 +         pub const D: u8 = 1 << 2;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/polys_from_raster_outline.rs:48:27
[INFO] [stdout]    |
[INFO] [stdout] 48 |         pub const U: u8 = (1 << 3);
[INFO] [stdout]    |                           ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 48 -         pub const U: u8 = (1 << 3);
[INFO] [stdout] 48 +         pub const U: u8 = 1 << 3;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/polys_from_raster_outline.rs:149:29
[INFO] [stdout]     |
[INFO] [stdout] 149 | ...                   ((x == xy_a[0] && x == xy_b[0]) ||
[INFO] [stdout]     |                       ^
[INFO] [stdout] 150 | ...                    (y == xy_a[1] && y == xy_b[1]))
[INFO] [stdout]     |                                                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 149 ~                             (x == xy_a[0] && x == xy_b[0]) ||
[INFO] [stdout] 150 ~                              (y == xy_a[1] && y == xy_b[1])
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/polys_from_raster_centerline.rs:21:27
[INFO] [stdout]    |
[INFO] [stdout] 21 |         pub const L: u8 = (1 << 0);
[INFO] [stdout]    |                           ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 21 -         pub const L: u8 = (1 << 0);
[INFO] [stdout] 21 +         pub const L: u8 = 1 << 0;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/polys_from_raster_centerline.rs:22:27
[INFO] [stdout]    |
[INFO] [stdout] 22 |         pub const R: u8 = (1 << 1);
[INFO] [stdout]    |                           ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 22 -         pub const R: u8 = (1 << 1);
[INFO] [stdout] 22 +         pub const R: u8 = 1 << 1;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/polys_from_raster_centerline.rs:23:27
[INFO] [stdout]    |
[INFO] [stdout] 23 |         pub const D: u8 = (1 << 2);
[INFO] [stdout]    |                           ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 23 -         pub const D: u8 = (1 << 2);
[INFO] [stdout] 23 +         pub const D: u8 = 1 << 2;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/polys_from_raster_centerline.rs:24:27
[INFO] [stdout]    |
[INFO] [stdout] 24 |         pub const U: u8 = (1 << 3);
[INFO] [stdout]    |                           ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 24 -         pub const U: u8 = (1 << 3);
[INFO] [stdout] 24 +         pub const U: u8 = 1 << 3;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/polys_from_raster_centerline.rs:26:28
[INFO] [stdout]    |
[INFO] [stdout] 26 |         pub const LD: u8 = (1 << 4);
[INFO] [stdout]    |                            ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 26 -         pub const LD: u8 = (1 << 4);
[INFO] [stdout] 26 +         pub const LD: u8 = 1 << 4;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/polys_from_raster_centerline.rs:27:28
[INFO] [stdout]    |
[INFO] [stdout] 27 |         pub const LU: u8 = (1 << 5);
[INFO] [stdout]    |                            ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 27 -         pub const LU: u8 = (1 << 5);
[INFO] [stdout] 27 +         pub const LU: u8 = 1 << 5;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/polys_from_raster_centerline.rs:28:28
[INFO] [stdout]    |
[INFO] [stdout] 28 |         pub const RD: u8 = (1 << 6);
[INFO] [stdout]    |                            ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 28 -         pub const RD: u8 = (1 << 6);
[INFO] [stdout] 28 +         pub const RD: u8 = 1 << 6;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/polys_from_raster_centerline.rs:29:28
[INFO] [stdout]    |
[INFO] [stdout] 29 |         pub const RU: u8 = (1 << 7);
[INFO] [stdout]    |                            ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 29 -         pub const RU: u8 = (1 << 7);
[INFO] [stdout] 29 +         pub const RU: u8 = 1 << 7;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/polys_from_raster_centerline.rs:192:29
[INFO] [stdout]     |
[INFO] [stdout] 192 | / ...                   (
[INFO] [stdout] 193 | | ...                       // axis aligned
[INFO] [stdout] 194 | | ...                       (x == xy_a[0] && x == xy_b[0]) ||
[INFO] [stdout]     | |__________________________^
[INFO] [stdout] ...
[INFO] [stdout] 212 |   ...                       }
[INFO] [stdout]     |  ____________________________^
[INFO] [stdout] 213 | | ...                    )
[INFO] [stdout]     | |________________________^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 192 ~                             (x == xy_a[0] && x == xy_b[0]) ||
[INFO] [stdout] 193 |                                 (y == xy_a[1] && y == xy_b[1]) ||
[INFO] [stdout] ...
[INFO] [stdout] 209 |                                      y_a_delta.signum() == y_b_delta.signum())
[INFO] [stdout] 210 ~                                 }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/polys_from_raster_centerline.rs:203:37
[INFO] [stdout]     |
[INFO] [stdout] 203 | ...                   (x_a_delta != 0 && y_a_delta != 0 &&
[INFO] [stdout]     |                       ^
[INFO] [stdout] ...
[INFO] [stdout] 211 | ...                    y_a_delta.signum() == y_b_delta.signum())
[INFO] [stdout]     |                                                                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 203 ~                                     x_a_delta != 0 && y_a_delta != 0 &&
[INFO] [stdout] 204 |                                      // no need to check 'b', signum accounts for that case.
[INFO] [stdout] ...
[INFO] [stdout] 210 |                                      x_a_delta.signum() == x_b_delta.signum() &&
[INFO] [stdout] 211 ~                                      y_a_delta.signum() == y_b_delta.signum()
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/image_skeletonize.rs:218:37
[INFO] [stdout]     |
[INFO] [stdout] 218 |         if neighbors & DIR_S != 0 { (1 << 4) } else { 0 } |
[INFO] [stdout]     |                                     ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 218 -         if neighbors & DIR_S != 0 { (1 << 4) } else { 0 } |
[INFO] [stdout] 218 +         if neighbors & DIR_S != 0 { 1 << 4 } else { 0 } |
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/image_skeletonize.rs:219:37
[INFO] [stdout]     |
[INFO] [stdout] 219 |         if neighbors & DIR_E != 0 { (1 << 1) } else { 0 } |
[INFO] [stdout]     |                                     ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 219 -         if neighbors & DIR_E != 0 { (1 << 1) } else { 0 } |
[INFO] [stdout] 219 +         if neighbors & DIR_E != 0 { 1 << 1 } else { 0 } |
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/image_skeletonize.rs:226:37
[INFO] [stdout]     |
[INFO] [stdout] 226 |         if neighbors & DIR_W != 0 { (1 << 4) } else { 0 } |
[INFO] [stdout]     |                                     ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 226 -         if neighbors & DIR_W != 0 { (1 << 4) } else { 0 } |
[INFO] [stdout] 226 +         if neighbors & DIR_W != 0 { 1 << 4 } else { 0 } |
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/image_skeletonize.rs:227:37
[INFO] [stdout]     |
[INFO] [stdout] 227 |         if neighbors & DIR_S != 0 { (1 << 2) } else { 0 } |
[INFO] [stdout]     |                                     ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 227 -         if neighbors & DIR_S != 0 { (1 << 2) } else { 0 } |
[INFO] [stdout] 227 +         if neighbors & DIR_S != 0 { 1 << 2 } else { 0 } |
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/image_skeletonize.rs:234:37
[INFO] [stdout]     |
[INFO] [stdout] 234 |         if neighbors & DIR_N != 0 { (1 << 4) } else { 0 } |
[INFO] [stdout]     |                                     ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 234 -         if neighbors & DIR_N != 0 { (1 << 4) } else { 0 } |
[INFO] [stdout] 234 +         if neighbors & DIR_N != 0 { 1 << 4 } else { 0 } |
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/image_skeletonize.rs:235:37
[INFO] [stdout]     |
[INFO] [stdout] 235 |         if neighbors & DIR_E != 0 { (1 << 1) } else { 0 } |
[INFO] [stdout]     |                                     ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 235 -         if neighbors & DIR_E != 0 { (1 << 1) } else { 0 } |
[INFO] [stdout] 235 +         if neighbors & DIR_E != 0 { 1 << 1 } else { 0 } |
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/image_skeletonize.rs:242:37
[INFO] [stdout]     |
[INFO] [stdout] 242 |         if neighbors & DIR_N != 0 { (1 << 4) } else { 0 } |
[INFO] [stdout]     |                                     ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 242 -         if neighbors & DIR_N != 0 { (1 << 4) } else { 0 } |
[INFO] [stdout] 242 +         if neighbors & DIR_N != 0 { 1 << 4 } else { 0 } |
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/image_skeletonize.rs:243:37
[INFO] [stdout]     |
[INFO] [stdout] 243 |         if neighbors & DIR_W != 0 { (1 << 2) } else { 0 } |
[INFO] [stdout]     |                                     ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 243 -         if neighbors & DIR_W != 0 { (1 << 2) } else { 0 } |
[INFO] [stdout] 243 +         if neighbors & DIR_W != 0 { 1 << 2 } else { 0 } |
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::usize::MAX`: replaced by the `MAX` associated constant on this type
[INFO] [stdout]   --> src/intern/curve_fit_nd/curve_fit_from_polys.rs:90:38
[INFO] [stdout]    |
[INFO] [stdout] 90 | const INVALID: usize = ::std::usize::MAX;
[INFO] [stdout]    |                                      ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::MAX`: replaced by the `MAX` associated constant on `f64`
[INFO] [stdout]    --> src/intern/curve_fit_nd/curve_fit_from_polys.rs:102:55
[INFO] [stdout]     |
[INFO] [stdout] 102 |     let mut split_point_dist_best: f64 = -::std::f64::MAX;
[INFO] [stdout]     |                                                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::EPSILON`: replaced by the `EPSILON` associated constant on `f64`
[INFO] [stdout]    --> src/intern/curve_fit_nd/curve_fit_single.rs:205:31
[INFO] [stdout]     |
[INFO] [stdout] 205 |         if len_tangent > f64::EPSILON {
[INFO] [stdout]     |                               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::EPSILON`: replaced by the `EPSILON` associated constant on `f64`
[INFO] [stdout]    --> src/intern/curve_fit_nd/curve_fit_single.rs:217:68
[INFO] [stdout]     |
[INFO] [stdout] 217 |             debug_assert!(factor < (f64::consts::PI / 2.0) + (f64::EPSILON * 10.0));
[INFO] [stdout]     |                                                                    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::EPSILON`: replaced by the `EPSILON` associated constant on `f64`
[INFO] [stdout]    --> src/intern/curve_fit_nd/curve_fit_single.rs:326:26
[INFO] [stdout]     |
[INFO] [stdout] 326 |         if (div_l < f64::EPSILON) ||
[INFO] [stdout]     |                          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::EPSILON`: replaced by the `EPSILON` associated constant on `f64`
[INFO] [stdout]    --> src/intern/curve_fit_nd/curve_fit_single.rs:327:26
[INFO] [stdout]     |
[INFO] [stdout] 327 |            (div_r < f64::EPSILON)
[INFO] [stdout]     |                          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::usize::MAX`: replaced by the `MAX` associated constant on this type
[INFO] [stdout]   --> src/intern/min_heap/mod.rs:28:38
[INFO] [stdout]    |
[INFO] [stdout] 28 | const INVALID: usize = ::std::usize::MAX;
[INFO] [stdout]    |                                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::usize::MAX`: replaced by the `MAX` associated constant on this type
[INFO] [stdout]    --> src/polys_simplify_collapse.rs:140:38
[INFO] [stdout]     |
[INFO] [stdout] 140 | const INVALID: usize = ::std::usize::MAX;
[INFO] [stdout]     |                                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::EPSILON`: replaced by the `EPSILON` associated constant on `f64`
[INFO] [stdout]    --> src/polys_simplify_collapse.rs:170:82
[INFO] [stdout]     |
[INFO] [stdout] 170 |         if let Some(optimize_co) = quadric::optimize(&quadric::add(q1, q2), f64::EPSILON) {
[INFO] [stdout]     |                                                                                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::MAX`: replaced by the `MAX` associated constant on `f64`
[INFO] [stdout]    --> src/polys_simplify_collapse.rs:222:43
[INFO] [stdout]     |
[INFO] [stdout] 222 | const INVALID_CO: [f64; 2] = [::std::f64::MAX, ::std::f64::MAX];
[INFO] [stdout]     |                                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::MAX`: replaced by the `MAX` associated constant on `f64`
[INFO] [stdout]    --> src/polys_simplify_collapse.rs:222:60
[INFO] [stdout]     |
[INFO] [stdout] 222 | const INVALID_CO: [f64; 2] = [::std::f64::MAX, ::std::f64::MAX];
[INFO] [stdout]     |                                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/intern/argparse/mod.rs:29:19
[INFO] [stdout]    |
[INFO] [stdout] 29 |     callback: Box<FnMut(&mut T, &[String]) -> Result<usize, String>>,
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 29 |     callback: Box<dyn FnMut(&mut T, &[String]) -> Result<usize, String>>,
[INFO] [stdout]    |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/intern/argparse/mod.rs:87:23
[INFO] [stdout]    |
[INFO] [stdout] 87 |         callback: Box<FnMut(&mut T, &[String]) -> Result<usize, String>>,
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 87 |         callback: Box<dyn FnMut(&mut T, &[String]) -> Result<usize, String>>,
[INFO] [stdout]    |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 2.14s
[INFO] running `Command { std: "docker" "inspect" "b9852e74f0d60c7b415d2a11b5c9022f402c669214bf6a6750aa7f9a7cab080b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b9852e74f0d60c7b415d2a11b5c9022f402c669214bf6a6750aa7f9a7cab080b" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `raster-retrace` (manifest) generated 1 warning
[INFO] [stderr]    Compiling raster-retrace v0.1.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]  --> src/intern/argparse/mod.rs:5:34
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub const ARGDEF_REQUIRED: u32 = (1 << 0);
[INFO] [stdout]   |                                  ^      ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]   |
[INFO] [stdout] 5 - pub const ARGDEF_REQUIRED: u32 = (1 << 0);
[INFO] [stdout] 5 + pub const ARGDEF_REQUIRED: u32 = 1 << 0;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]  --> src/intern/argparse/mod.rs:6:34
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const ARGDEF_VARARGS: u32 =  (1 << 1);
[INFO] [stdout]   |                                  ^      ^
[INFO] [stdout]   |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]   |
[INFO] [stdout] 6 - pub const ARGDEF_VARARGS: u32 =  (1 << 1);
[INFO] [stdout] 6 + pub const ARGDEF_VARARGS: u32 =  1 << 1;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `::intern::math_vector`
[INFO] [stdout]  --> src/intern/curve_fit_nd/mod.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use ::intern::math_vector;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fit_poly_single`
[INFO] [stdout]   --> src/intern/curve_fit_nd/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fit_poly_single,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]   --> src/intern/min_heap/mod.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 76 |     ((i - 1) >> 1)
[INFO] [stdout]    |     ^            ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 76 -     ((i - 1) >> 1)
[INFO] [stdout] 76 +     (i - 1) >> 1
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]   --> src/intern/min_heap/mod.rs:79:5
[INFO] [stdout]    |
[INFO] [stdout] 79 |     ((i << 1) + 1)
[INFO] [stdout]    |     ^            ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 79 -     ((i << 1) + 1)
[INFO] [stdout] 79 +     (i << 1) + 1
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]   --> src/intern/min_heap/mod.rs:82:5
[INFO] [stdout]    |
[INFO] [stdout] 82 |     ((i << 1) + 2)
[INFO] [stdout]    |     ^            ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 82 -     ((i << 1) + 2)
[INFO] [stdout] 82 +     (i << 1) + 2
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]   --> src/intern/min_heap/mod.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 96 |         (a.value < b.value)
[INFO] [stdout]    |         ^                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 96 -         (a.value < b.value)
[INFO] [stdout] 96 +         a.value < b.value
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/polys_from_raster_outline.rs:45:27
[INFO] [stdout]    |
[INFO] [stdout] 45 |         pub const L: u8 = (1 << 0);
[INFO] [stdout]    |                           ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 45 -         pub const L: u8 = (1 << 0);
[INFO] [stdout] 45 +         pub const L: u8 = 1 << 0;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/polys_from_raster_outline.rs:46:27
[INFO] [stdout]    |
[INFO] [stdout] 46 |         pub const R: u8 = (1 << 1);
[INFO] [stdout]    |                           ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 46 -         pub const R: u8 = (1 << 1);
[INFO] [stdout] 46 +         pub const R: u8 = 1 << 1;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/polys_from_raster_outline.rs:47:27
[INFO] [stdout]    |
[INFO] [stdout] 47 |         pub const D: u8 = (1 << 2);
[INFO] [stdout]    |                           ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 47 -         pub const D: u8 = (1 << 2);
[INFO] [stdout] 47 +         pub const D: u8 = 1 << 2;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/polys_from_raster_outline.rs:48:27
[INFO] [stdout]    |
[INFO] [stdout] 48 |         pub const U: u8 = (1 << 3);
[INFO] [stdout]    |                           ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 48 -         pub const U: u8 = (1 << 3);
[INFO] [stdout] 48 +         pub const U: u8 = 1 << 3;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/polys_from_raster_outline.rs:149:29
[INFO] [stdout]     |
[INFO] [stdout] 149 | ...                   ((x == xy_a[0] && x == xy_b[0]) ||
[INFO] [stdout]     |                       ^
[INFO] [stdout] 150 | ...                    (y == xy_a[1] && y == xy_b[1]))
[INFO] [stdout]     |                                                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 149 ~                             (x == xy_a[0] && x == xy_b[0]) ||
[INFO] [stdout] 150 ~                              (y == xy_a[1] && y == xy_b[1])
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/polys_from_raster_centerline.rs:21:27
[INFO] [stdout]    |
[INFO] [stdout] 21 |         pub const L: u8 = (1 << 0);
[INFO] [stdout]    |                           ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 21 -         pub const L: u8 = (1 << 0);
[INFO] [stdout] 21 +         pub const L: u8 = 1 << 0;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/polys_from_raster_centerline.rs:22:27
[INFO] [stdout]    |
[INFO] [stdout] 22 |         pub const R: u8 = (1 << 1);
[INFO] [stdout]    |                           ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 22 -         pub const R: u8 = (1 << 1);
[INFO] [stdout] 22 +         pub const R: u8 = 1 << 1;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/polys_from_raster_centerline.rs:23:27
[INFO] [stdout]    |
[INFO] [stdout] 23 |         pub const D: u8 = (1 << 2);
[INFO] [stdout]    |                           ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 23 -         pub const D: u8 = (1 << 2);
[INFO] [stdout] 23 +         pub const D: u8 = 1 << 2;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/polys_from_raster_centerline.rs:24:27
[INFO] [stdout]    |
[INFO] [stdout] 24 |         pub const U: u8 = (1 << 3);
[INFO] [stdout]    |                           ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 24 -         pub const U: u8 = (1 << 3);
[INFO] [stdout] 24 +         pub const U: u8 = 1 << 3;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/polys_from_raster_centerline.rs:26:28
[INFO] [stdout]    |
[INFO] [stdout] 26 |         pub const LD: u8 = (1 << 4);
[INFO] [stdout]    |                            ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 26 -         pub const LD: u8 = (1 << 4);
[INFO] [stdout] 26 +         pub const LD: u8 = 1 << 4;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/polys_from_raster_centerline.rs:27:28
[INFO] [stdout]    |
[INFO] [stdout] 27 |         pub const LU: u8 = (1 << 5);
[INFO] [stdout]    |                            ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 27 -         pub const LU: u8 = (1 << 5);
[INFO] [stdout] 27 +         pub const LU: u8 = 1 << 5;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/polys_from_raster_centerline.rs:28:28
[INFO] [stdout]    |
[INFO] [stdout] 28 |         pub const RD: u8 = (1 << 6);
[INFO] [stdout]    |                            ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 28 -         pub const RD: u8 = (1 << 6);
[INFO] [stdout] 28 +         pub const RD: u8 = 1 << 6;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/polys_from_raster_centerline.rs:29:28
[INFO] [stdout]    |
[INFO] [stdout] 29 |         pub const RU: u8 = (1 << 7);
[INFO] [stdout]    |                            ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 29 -         pub const RU: u8 = (1 << 7);
[INFO] [stdout] 29 +         pub const RU: u8 = 1 << 7;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/polys_from_raster_centerline.rs:192:29
[INFO] [stdout]     |
[INFO] [stdout] 192 | / ...                   (
[INFO] [stdout] 193 | | ...                       // axis aligned
[INFO] [stdout] 194 | | ...                       (x == xy_a[0] && x == xy_b[0]) ||
[INFO] [stdout]     | |__________________________^
[INFO] [stdout] ...
[INFO] [stdout] 212 |   ...                       }
[INFO] [stdout]     |  ____________________________^
[INFO] [stdout] 213 | | ...                    )
[INFO] [stdout]     | |________________________^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 192 ~                             (x == xy_a[0] && x == xy_b[0]) ||
[INFO] [stdout] 193 |                                 (y == xy_a[1] && y == xy_b[1]) ||
[INFO] [stdout] ...
[INFO] [stdout] 209 |                                      y_a_delta.signum() == y_b_delta.signum())
[INFO] [stdout] 210 ~                                 }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/polys_from_raster_centerline.rs:203:37
[INFO] [stdout]     |
[INFO] [stdout] 203 | ...                   (x_a_delta != 0 && y_a_delta != 0 &&
[INFO] [stdout]     |                       ^
[INFO] [stdout] ...
[INFO] [stdout] 211 | ...                    y_a_delta.signum() == y_b_delta.signum())
[INFO] [stdout]     |                                                                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 203 ~                                     x_a_delta != 0 && y_a_delta != 0 &&
[INFO] [stdout] 204 |                                      // no need to check 'b', signum accounts for that case.
[INFO] [stdout] ...
[INFO] [stdout] 210 |                                      x_a_delta.signum() == x_b_delta.signum() &&
[INFO] [stdout] 211 ~                                      y_a_delta.signum() == y_b_delta.signum()
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/image_skeletonize.rs:218:37
[INFO] [stdout]     |
[INFO] [stdout] 218 |         if neighbors & DIR_S != 0 { (1 << 4) } else { 0 } |
[INFO] [stdout]     |                                     ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 218 -         if neighbors & DIR_S != 0 { (1 << 4) } else { 0 } |
[INFO] [stdout] 218 +         if neighbors & DIR_S != 0 { 1 << 4 } else { 0 } |
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/image_skeletonize.rs:219:37
[INFO] [stdout]     |
[INFO] [stdout] 219 |         if neighbors & DIR_E != 0 { (1 << 1) } else { 0 } |
[INFO] [stdout]     |                                     ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 219 -         if neighbors & DIR_E != 0 { (1 << 1) } else { 0 } |
[INFO] [stdout] 219 +         if neighbors & DIR_E != 0 { 1 << 1 } else { 0 } |
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/image_skeletonize.rs:226:37
[INFO] [stdout]     |
[INFO] [stdout] 226 |         if neighbors & DIR_W != 0 { (1 << 4) } else { 0 } |
[INFO] [stdout]     |                                     ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 226 -         if neighbors & DIR_W != 0 { (1 << 4) } else { 0 } |
[INFO] [stdout] 226 +         if neighbors & DIR_W != 0 { 1 << 4 } else { 0 } |
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/image_skeletonize.rs:227:37
[INFO] [stdout]     |
[INFO] [stdout] 227 |         if neighbors & DIR_S != 0 { (1 << 2) } else { 0 } |
[INFO] [stdout]     |                                     ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 227 -         if neighbors & DIR_S != 0 { (1 << 2) } else { 0 } |
[INFO] [stdout] 227 +         if neighbors & DIR_S != 0 { 1 << 2 } else { 0 } |
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/image_skeletonize.rs:234:37
[INFO] [stdout]     |
[INFO] [stdout] 234 |         if neighbors & DIR_N != 0 { (1 << 4) } else { 0 } |
[INFO] [stdout]     |                                     ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 234 -         if neighbors & DIR_N != 0 { (1 << 4) } else { 0 } |
[INFO] [stdout] 234 +         if neighbors & DIR_N != 0 { 1 << 4 } else { 0 } |
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/image_skeletonize.rs:235:37
[INFO] [stdout]     |
[INFO] [stdout] 235 |         if neighbors & DIR_E != 0 { (1 << 1) } else { 0 } |
[INFO] [stdout]     |                                     ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 235 -         if neighbors & DIR_E != 0 { (1 << 1) } else { 0 } |
[INFO] [stdout] 235 +         if neighbors & DIR_E != 0 { 1 << 1 } else { 0 } |
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/image_skeletonize.rs:242:37
[INFO] [stdout]     |
[INFO] [stdout] 242 |         if neighbors & DIR_N != 0 { (1 << 4) } else { 0 } |
[INFO] [stdout]     |                                     ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 242 -         if neighbors & DIR_N != 0 { (1 << 4) } else { 0 } |
[INFO] [stdout] 242 +         if neighbors & DIR_N != 0 { 1 << 4 } else { 0 } |
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/image_skeletonize.rs:243:37
[INFO] [stdout]     |
[INFO] [stdout] 243 |         if neighbors & DIR_W != 0 { (1 << 2) } else { 0 } |
[INFO] [stdout]     |                                     ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 243 -         if neighbors & DIR_W != 0 { (1 << 2) } else { 0 } |
[INFO] [stdout] 243 +         if neighbors & DIR_W != 0 { 1 << 2 } else { 0 } |
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::usize::MAX`: replaced by the `MAX` associated constant on this type
[INFO] [stdout]   --> src/intern/curve_fit_nd/curve_fit_from_polys.rs:90:38
[INFO] [stdout]    |
[INFO] [stdout] 90 | const INVALID: usize = ::std::usize::MAX;
[INFO] [stdout]    |                                      ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::MAX`: replaced by the `MAX` associated constant on `f64`
[INFO] [stdout]    --> src/intern/curve_fit_nd/curve_fit_from_polys.rs:102:55
[INFO] [stdout]     |
[INFO] [stdout] 102 |     let mut split_point_dist_best: f64 = -::std::f64::MAX;
[INFO] [stdout]     |                                                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::EPSILON`: replaced by the `EPSILON` associated constant on `f64`
[INFO] [stdout]    --> src/intern/curve_fit_nd/curve_fit_single.rs:205:31
[INFO] [stdout]     |
[INFO] [stdout] 205 |         if len_tangent > f64::EPSILON {
[INFO] [stdout]     |                               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::EPSILON`: replaced by the `EPSILON` associated constant on `f64`
[INFO] [stdout]    --> src/intern/curve_fit_nd/curve_fit_single.rs:217:68
[INFO] [stdout]     |
[INFO] [stdout] 217 |             debug_assert!(factor < (f64::consts::PI / 2.0) + (f64::EPSILON * 10.0));
[INFO] [stdout]     |                                                                    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::EPSILON`: replaced by the `EPSILON` associated constant on `f64`
[INFO] [stdout]    --> src/intern/curve_fit_nd/curve_fit_single.rs:326:26
[INFO] [stdout]     |
[INFO] [stdout] 326 |         if (div_l < f64::EPSILON) ||
[INFO] [stdout]     |                          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::EPSILON`: replaced by the `EPSILON` associated constant on `f64`
[INFO] [stdout]    --> src/intern/curve_fit_nd/curve_fit_single.rs:327:26
[INFO] [stdout]     |
[INFO] [stdout] 327 |            (div_r < f64::EPSILON)
[INFO] [stdout]     |                          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::usize::MAX`: replaced by the `MAX` associated constant on this type
[INFO] [stdout]   --> src/intern/min_heap/mod.rs:28:38
[INFO] [stdout]    |
[INFO] [stdout] 28 | const INVALID: usize = ::std::usize::MAX;
[INFO] [stdout]    |                                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::usize::MAX`: replaced by the `MAX` associated constant on this type
[INFO] [stdout]    --> src/polys_simplify_collapse.rs:140:38
[INFO] [stdout]     |
[INFO] [stdout] 140 | const INVALID: usize = ::std::usize::MAX;
[INFO] [stdout]     |                                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::EPSILON`: replaced by the `EPSILON` associated constant on `f64`
[INFO] [stdout]    --> src/polys_simplify_collapse.rs:170:82
[INFO] [stdout]     |
[INFO] [stdout] 170 |         if let Some(optimize_co) = quadric::optimize(&quadric::add(q1, q2), f64::EPSILON) {
[INFO] [stdout]     |                                                                                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::MAX`: replaced by the `MAX` associated constant on `f64`
[INFO] [stdout]    --> src/polys_simplify_collapse.rs:222:43
[INFO] [stdout]     |
[INFO] [stdout] 222 | const INVALID_CO: [f64; 2] = [::std::f64::MAX, ::std::f64::MAX];
[INFO] [stdout]     |                                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::MAX`: replaced by the `MAX` associated constant on `f64`
[INFO] [stdout]    --> src/polys_simplify_collapse.rs:222:60
[INFO] [stdout]     |
[INFO] [stdout] 222 | const INVALID_CO: [f64; 2] = [::std::f64::MAX, ::std::f64::MAX];
[INFO] [stdout]     |                                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/intern/argparse/mod.rs:29:19
[INFO] [stdout]    |
[INFO] [stdout] 29 |     callback: Box<FnMut(&mut T, &[String]) -> Result<usize, String>>,
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 29 |     callback: Box<dyn FnMut(&mut T, &[String]) -> Result<usize, String>>,
[INFO] [stdout]    |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/intern/argparse/mod.rs:87:23
[INFO] [stdout]    |
[INFO] [stdout] 87 |         callback: Box<FnMut(&mut T, &[String]) -> Result<usize, String>>,
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 87 |         callback: Box<dyn FnMut(&mut T, &[String]) -> Result<usize, String>>,
[INFO] [stdout]    |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1.82s
[INFO] running `Command { std: "docker" "inspect" "b9852e74f0d60c7b415d2a11b5c9022f402c669214bf6a6750aa7f9a7cab080b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b9852e74f0d60c7b415d2a11b5c9022f402c669214bf6a6750aa7f9a7cab080b" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `raster-retrace` (manifest) generated 1 warning
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]  --> src/intern/argparse/mod.rs:5:34
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub const ARGDEF_REQUIRED: u32 = (1 << 0);
[INFO] [stderr]   |                                  ^      ^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]   |
[INFO] [stderr] 5 - pub const ARGDEF_REQUIRED: u32 = (1 << 0);
[INFO] [stderr] 5 + pub const ARGDEF_REQUIRED: u32 = 1 << 0;
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]  --> src/intern/argparse/mod.rs:6:34
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub const ARGDEF_VARARGS: u32 =  (1 << 1);
[INFO] [stderr]   |                                  ^      ^
[INFO] [stderr]   |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]   |
[INFO] [stderr] 6 - pub const ARGDEF_VARARGS: u32 =  (1 << 1);
[INFO] [stderr] 6 + pub const ARGDEF_VARARGS: u32 =  1 << 1;
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `::intern::math_vector`
[INFO] [stderr]  --> src/intern/curve_fit_nd/mod.rs:6:9
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub use ::intern::math_vector;
[INFO] [stderr]   |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `fit_poly_single`
[INFO] [stderr]   --> src/intern/curve_fit_nd/mod.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 |     fit_poly_single,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around block return value
[INFO] [stderr]   --> src/intern/min_heap/mod.rs:76:5
[INFO] [stderr]    |
[INFO] [stderr] 76 |     ((i - 1) >> 1)
[INFO] [stderr]    |     ^            ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 76 -     ((i - 1) >> 1)
[INFO] [stderr] 76 +     (i - 1) >> 1
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around block return value
[INFO] [stderr]   --> src/intern/min_heap/mod.rs:79:5
[INFO] [stderr]    |
[INFO] [stderr] 79 |     ((i << 1) + 1)
[INFO] [stderr]    |     ^            ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 79 -     ((i << 1) + 1)
[INFO] [stderr] 79 +     (i << 1) + 1
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around block return value
[INFO] [stderr]   --> src/intern/min_heap/mod.rs:82:5
[INFO] [stderr]    |
[INFO] [stderr] 82 |     ((i << 1) + 2)
[INFO] [stderr]    |     ^            ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 82 -     ((i << 1) + 2)
[INFO] [stderr] 82 +     (i << 1) + 2
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around block return value
[INFO] [stderr]   --> src/intern/min_heap/mod.rs:96:9
[INFO] [stderr]    |
[INFO] [stderr] 96 |         (a.value < b.value)
[INFO] [stderr]    |         ^                 ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 96 -         (a.value < b.value)
[INFO] [stderr] 96 +         a.value < b.value
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]   --> src/polys_from_raster_outline.rs:45:27
[INFO] [stderr]    |
[INFO] [stderr] 45 |         pub const L: u8 = (1 << 0);
[INFO] [stderr]    |                           ^      ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 45 -         pub const L: u8 = (1 << 0);
[INFO] [stderr] 45 +         pub const L: u8 = 1 << 0;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]   --> src/polys_from_raster_outline.rs:46:27
[INFO] [stderr]    |
[INFO] [stderr] 46 |         pub const R: u8 = (1 << 1);
[INFO] [stderr]    |                           ^      ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 46 -         pub const R: u8 = (1 << 1);
[INFO] [stderr] 46 +         pub const R: u8 = 1 << 1;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]   --> src/polys_from_raster_outline.rs:47:27
[INFO] [stderr]    |
[INFO] [stderr] 47 |         pub const D: u8 = (1 << 2);
[INFO] [stderr]    |                           ^      ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 47 -         pub const D: u8 = (1 << 2);
[INFO] [stderr] 47 +         pub const D: u8 = 1 << 2;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]   --> src/polys_from_raster_outline.rs:48:27
[INFO] [stderr]    |
[INFO] [stderr] 48 |         pub const U: u8 = (1 << 3);
[INFO] [stderr]    |                           ^      ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 48 -         pub const U: u8 = (1 << 3);
[INFO] [stderr] 48 +         pub const U: u8 = 1 << 3;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around block return value
[INFO] [stderr]    --> src/polys_from_raster_outline.rs:149:29
[INFO] [stderr]     |
[INFO] [stderr] 149 | ...                   ((x == xy_a[0] && x == xy_b[0]) ||
[INFO] [stderr]     |                       ^
[INFO] [stderr] 150 | ...                    (y == xy_a[1] && y == xy_b[1]))
[INFO] [stderr]     |                                                      ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 149 ~                             (x == xy_a[0] && x == xy_b[0]) ||
[INFO] [stderr] 150 ~                              (y == xy_a[1] && y == xy_b[1])
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]   --> src/polys_from_raster_centerline.rs:21:27
[INFO] [stderr]    |
[INFO] [stderr] 21 |         pub const L: u8 = (1 << 0);
[INFO] [stderr]    |                           ^      ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 21 -         pub const L: u8 = (1 << 0);
[INFO] [stderr] 21 +         pub const L: u8 = 1 << 0;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]   --> src/polys_from_raster_centerline.rs:22:27
[INFO] [stderr]    |
[INFO] [stderr] 22 |         pub const R: u8 = (1 << 1);
[INFO] [stderr]    |                           ^      ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 22 -         pub const R: u8 = (1 << 1);
[INFO] [stderr] 22 +         pub const R: u8 = 1 << 1;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]   --> src/polys_from_raster_centerline.rs:23:27
[INFO] [stderr]    |
[INFO] [stderr] 23 |         pub const D: u8 = (1 << 2);
[INFO] [stderr]    |                           ^      ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 23 -         pub const D: u8 = (1 << 2);
[INFO] [stderr] 23 +         pub const D: u8 = 1 << 2;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]   --> src/polys_from_raster_centerline.rs:24:27
[INFO] [stderr]    |
[INFO] [stderr] 24 |         pub const U: u8 = (1 << 3);
[INFO] [stderr]    |                           ^      ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 24 -         pub const U: u8 = (1 << 3);
[INFO] [stderr] 24 +         pub const U: u8 = 1 << 3;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]   --> src/polys_from_raster_centerline.rs:26:28
[INFO] [stderr]    |
[INFO] [stderr] 26 |         pub const LD: u8 = (1 << 4);
[INFO] [stderr]    |                            ^      ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 26 -         pub const LD: u8 = (1 << 4);
[INFO] [stderr] 26 +         pub const LD: u8 = 1 << 4;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]   --> src/polys_from_raster_centerline.rs:27:28
[INFO] [stderr]    |
[INFO] [stderr] 27 |         pub const LU: u8 = (1 << 5);
[INFO] [stderr]    |                            ^      ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 27 -         pub const LU: u8 = (1 << 5);
[INFO] [stderr] 27 +         pub const LU: u8 = 1 << 5;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]   --> src/polys_from_raster_centerline.rs:28:28
[INFO] [stderr]    |
[INFO] [stderr] 28 |         pub const RD: u8 = (1 << 6);
[INFO] [stderr]    |                            ^      ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 28 -         pub const RD: u8 = (1 << 6);
[INFO] [stderr] 28 +         pub const RD: u8 = 1 << 6;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]   --> src/polys_from_raster_centerline.rs:29:28
[INFO] [stderr]    |
[INFO] [stderr] 29 |         pub const RU: u8 = (1 << 7);
[INFO] [stderr]    |                            ^      ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 29 -         pub const RU: u8 = (1 << 7);
[INFO] [stderr] 29 +         pub const RU: u8 = 1 << 7;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around block return value
[INFO] [stderr]    --> src/polys_from_raster_centerline.rs:192:29
[INFO] [stderr]     |
[INFO] [stderr] 192 | / ...                   (
[INFO] [stderr] 193 | | ...                       // axis aligned
[INFO] [stderr] 194 | | ...                       (x == xy_a[0] && x == xy_b[0]) ||
[INFO] [stderr]     | |__________________________^
[INFO] [stderr] ...
[INFO] [stderr] 212 |   ...                       }
[INFO] [stderr]     |  ____________________________^
[INFO] [stderr] 213 | | ...                    )
[INFO] [stderr]     | |________________________^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 192 ~                             (x == xy_a[0] && x == xy_b[0]) ||
[INFO] [stderr] 193 |                                 (y == xy_a[1] && y == xy_b[1]) ||
[INFO] [stderr] ...
[INFO] [stderr] 209 |                                      y_a_delta.signum() == y_b_delta.signum())
[INFO] [stderr] 210 ~                                 }
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around block return value
[INFO] [stderr]    --> src/polys_from_raster_centerline.rs:203:37
[INFO] [stderr]     |
[INFO] [stderr] 203 | ...                   (x_a_delta != 0 && y_a_delta != 0 &&
[INFO] [stderr]     |                       ^
[INFO] [stderr] ...
[INFO] [stderr] 211 | ...                    y_a_delta.signum() == y_b_delta.signum())
[INFO] [stderr]     |                                                                ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 203 ~                                     x_a_delta != 0 && y_a_delta != 0 &&
[INFO] [stderr] 204 |                                      // no need to check 'b', signum accounts for that case.
[INFO] [stderr] ...
[INFO] [stderr] 210 |                                      x_a_delta.signum() == x_b_delta.signum() &&
[INFO] [stderr] 211 ~                                      y_a_delta.signum() == y_b_delta.signum()
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around block return value
[INFO] [stderr]    --> src/image_skeletonize.rs:218:37
[INFO] [stderr]     |
[INFO] [stderr] 218 |         if neighbors & DIR_S != 0 { (1 << 4) } else { 0 } |
[INFO] [stderr]     |                                     ^      ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 218 -         if neighbors & DIR_S != 0 { (1 << 4) } else { 0 } |
[INFO] [stderr] 218 +         if neighbors & DIR_S != 0 { 1 << 4 } else { 0 } |
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around block return value
[INFO] [stderr]    --> src/image_skeletonize.rs:219:37
[INFO] [stderr]     |
[INFO] [stderr] 219 |         if neighbors & DIR_E != 0 { (1 << 1) } else { 0 } |
[INFO] [stderr]     |                                     ^      ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 219 -         if neighbors & DIR_E != 0 { (1 << 1) } else { 0 } |
[INFO] [stderr] 219 +         if neighbors & DIR_E != 0 { 1 << 1 } else { 0 } |
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around block return value
[INFO] [stderr]    --> src/image_skeletonize.rs:226:37
[INFO] [stderr]     |
[INFO] [stderr] 226 |         if neighbors & DIR_W != 0 { (1 << 4) } else { 0 } |
[INFO] [stderr]     |                                     ^      ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 226 -         if neighbors & DIR_W != 0 { (1 << 4) } else { 0 } |
[INFO] [stderr] 226 +         if neighbors & DIR_W != 0 { 1 << 4 } else { 0 } |
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around block return value
[INFO] [stderr]    --> src/image_skeletonize.rs:227:37
[INFO] [stderr]     |
[INFO] [stderr] 227 |         if neighbors & DIR_S != 0 { (1 << 2) } else { 0 } |
[INFO] [stderr]     |                                     ^      ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 227 -         if neighbors & DIR_S != 0 { (1 << 2) } else { 0 } |
[INFO] [stderr] 227 +         if neighbors & DIR_S != 0 { 1 << 2 } else { 0 } |
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around block return value
[INFO] [stderr]    --> src/image_skeletonize.rs:234:37
[INFO] [stderr]     |
[INFO] [stderr] 234 |         if neighbors & DIR_N != 0 { (1 << 4) } else { 0 } |
[INFO] [stderr]     |                                     ^      ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 234 -         if neighbors & DIR_N != 0 { (1 << 4) } else { 0 } |
[INFO] [stderr] 234 +         if neighbors & DIR_N != 0 { 1 << 4 } else { 0 } |
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around block return value
[INFO] [stderr]    --> src/image_skeletonize.rs:235:37
[INFO] [stderr]     |
[INFO] [stderr] 235 |         if neighbors & DIR_E != 0 { (1 << 1) } else { 0 } |
[INFO] [stderr]     |                                     ^      ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 235 -         if neighbors & DIR_E != 0 { (1 << 1) } else { 0 } |
[INFO] [stderr] 235 +         if neighbors & DIR_E != 0 { 1 << 1 } else { 0 } |
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around block return value
[INFO] [stderr]    --> src/image_skeletonize.rs:242:37
[INFO] [stderr]     |
[INFO] [stderr] 242 |         if neighbors & DIR_N != 0 { (1 << 4) } else { 0 } |
[INFO] [stderr]     |                                     ^      ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 242 -         if neighbors & DIR_N != 0 { (1 << 4) } else { 0 } |
[INFO] [stderr] 242 +         if neighbors & DIR_N != 0 { 1 << 4 } else { 0 } |
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around block return value
[INFO] [stderr]    --> src/image_skeletonize.rs:243:37
[INFO] [stderr]     |
[INFO] [stderr] 243 |         if neighbors & DIR_W != 0 { (1 << 2) } else { 0 } |
[INFO] [stderr]     |                                     ^      ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 243 -         if neighbors & DIR_W != 0 { (1 << 2) } else { 0 } |
[INFO] [stderr] 243 +         if neighbors & DIR_W != 0 { 1 << 2 } else { 0 } |
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::usize::MAX`: replaced by the `MAX` associated constant on this type
[INFO] [stderr]   --> src/intern/curve_fit_nd/curve_fit_from_polys.rs:90:38
[INFO] [stderr]    |
[INFO] [stderr] 90 | const INVALID: usize = ::std::usize::MAX;
[INFO] [stderr]    |                                      ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::f64::MAX`: replaced by the `MAX` associated constant on `f64`
[INFO] [stderr]    --> src/intern/curve_fit_nd/curve_fit_from_polys.rs:102:55
[INFO] [stderr]     |
[INFO] [stderr] 102 |     let mut split_point_dist_best: f64 = -::std::f64::MAX;
[INFO] [stderr]     |                                                       ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::f64::EPSILON`: replaced by the `EPSILON` associated constant on `f64`
[INFO] [stderr]    --> src/intern/curve_fit_nd/curve_fit_single.rs:205:31
[INFO] [stderr]     |
[INFO] [stderr] 205 |         if len_tangent > f64::EPSILON {
[INFO] [stderr]     |                               ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::f64::EPSILON`: replaced by the `EPSILON` associated constant on `f64`
[INFO] [stderr]    --> src/intern/curve_fit_nd/curve_fit_single.rs:217:68
[INFO] [stderr]     |
[INFO] [stderr] 217 |             debug_assert!(factor < (f64::consts::PI / 2.0) + (f64::EPSILON * 10.0));
[INFO] [stderr]     |                                                                    ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::f64::EPSILON`: replaced by the `EPSILON` associated constant on `f64`
[INFO] [stderr]    --> src/intern/curve_fit_nd/curve_fit_single.rs:326:26
[INFO] [stderr]     |
[INFO] [stderr] 326 |         if (div_l < f64::EPSILON) ||
[INFO] [stderr]     |                          ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::f64::EPSILON`: replaced by the `EPSILON` associated constant on `f64`
[INFO] [stderr]    --> src/intern/curve_fit_nd/curve_fit_single.rs:327:26
[INFO] [stderr]     |
[INFO] [stderr] 327 |            (div_r < f64::EPSILON)
[INFO] [stderr]     |                          ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::usize::MAX`: replaced by the `MAX` associated constant on this type
[INFO] [stderr]   --> src/intern/min_heap/mod.rs:28:38
[INFO] [stderr]    |
[INFO] [stderr] 28 | const INVALID: usize = ::std::usize::MAX;
[INFO] [stderr]    |                                      ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::usize::MAX`: replaced by the `MAX` associated constant on this type
[INFO] [stderr]    --> src/polys_simplify_collapse.rs:140:38
[INFO] [stderr]     |
[INFO] [stderr] 140 | const INVALID: usize = ::std::usize::MAX;
[INFO] [stderr]     |                                      ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::f64::EPSILON`: replaced by the `EPSILON` associated constant on `f64`
[INFO] [stderr]    --> src/polys_simplify_collapse.rs:170:82
[INFO] [stderr]     |
[INFO] [stderr] 170 |         if let Some(optimize_co) = quadric::optimize(&quadric::add(q1, q2), f64::EPSILON) {
[INFO] [stderr]     |                                                                                  ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::f64::MAX`: replaced by the `MAX` associated constant on `f64`
[INFO] [stderr]    --> src/polys_simplify_collapse.rs:222:43
[INFO] [stderr]     |
[INFO] [stderr] 222 | const INVALID_CO: [f64; 2] = [::std::f64::MAX, ::std::f64::MAX];
[INFO] [stderr]     |                                           ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::f64::MAX`: replaced by the `MAX` associated constant on `f64`
[INFO] [stderr]    --> src/polys_simplify_collapse.rs:222:60
[INFO] [stderr]     |
[INFO] [stderr] 222 | const INVALID_CO: [f64; 2] = [::std::f64::MAX, ::std::f64::MAX];
[INFO] [stderr]     |                                                            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/intern/argparse/mod.rs:29:19
[INFO] [stderr]    |
[INFO] [stderr] 29 |     callback: Box<FnMut(&mut T, &[String]) -> Result<usize, String>>,
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 29 |     callback: Box<dyn FnMut(&mut T, &[String]) -> Result<usize, String>>,
[INFO] [stderr]    |                   +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/intern/argparse/mod.rs:87:23
[INFO] [stderr]    |
[INFO] [stderr] 87 |         callback: Box<FnMut(&mut T, &[String]) -> Result<usize, String>>,
[INFO] [stderr]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 87 |         callback: Box<dyn FnMut(&mut T, &[String]) -> Result<usize, String>>,
[INFO] [stderr]    |                       +++
[INFO] [stderr] 
[INFO] [stderr] warning: `raster-retrace` (bin "raster-retrace" test) generated 44 warnings (run `cargo fix --bin "raster-retrace" -p raster-retrace --tests` to apply 33 suggestions)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.02s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/deps/raster_retrace-2ea56fd78aeb988e)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test test::test_image_small ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- test::test_image_small stdout ----
[INFO] [stdout] 12 -> 3
[INFO] [stdout] 68 -> 14
[INFO] [stdout] Total points: 17
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] thread 'test::test_image_small' (197) panicked at src/main.rs:151:54:
[INFO] [stdout] Create output file: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5a45243852c1 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x5a452439950a - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x5a45243897cc - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5a45243618b6 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x5a452437da29 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x5a4524319eb0 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x5a452437dbe2 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x5a4524361962 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5a452435a6e9 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5a452436255d - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x5a4524399c3c - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5a4524399a12 - core[df12db4294e9bfd3]::result::unwrap_failed
[INFO] [stdout]   12:     0x5a45242fe4ee - raster_retrace[478198ca746d2450]::trace_image
[INFO] [stdout]   13:     0x5a45242fff9e - raster_retrace[478198ca746d2450]::test::test_image_small
[INFO] [stdout]   14:     0x5a45242febe9 - <raster_retrace[478198ca746d2450]::test::test_image_small::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   15:     0x5a452430d19b - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   16:     0x5a452431a805 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   17:     0x5a45243140c4 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   18:     0x5a452431d962 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   19:     0x5a4524384b99 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   20:     0x70d1d45ffdfa - <unknown>
[INFO] [stdout]   21:     0x70d1d46933d4 - clone
[INFO] [stdout]   22:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     test::test_image_small
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--bin raster-retrace`
[INFO] running `Command { std: "docker" "inspect" "b9852e74f0d60c7b415d2a11b5c9022f402c669214bf6a6750aa7f9a7cab080b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b9852e74f0d60c7b415d2a11b5c9022f402c669214bf6a6750aa7f9a7cab080b", kill_on_drop: false }`
[INFO] [stdout] b9852e74f0d60c7b415d2a11b5c9022f402c669214bf6a6750aa7f9a7cab080b
