[INFO] cloning repository https://github.com/performance/IDP_Tool
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/performance/IDP_Tool" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fperformance%2FIDP_Tool", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fperformance%2FIDP_Tool'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] aa70ccca5b9868b46a43247a6d36fe262c2cff92
[INFO] checking performance/IDP_Tool/aa70ccca5b9868b46a43247a6d36fe262c2cff92 against master#42f4793e5a514858221b07ac379029d90353913e for pr-148952
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fperformance%2FIDP_Tool" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] [stderr] Updating files:  51% (46/90)
Updating files:  52% (47/90)
Updating files:  53% (48/90)
Updating files:  54% (49/90)
Updating files:  55% (50/90)
Updating files:  56% (51/90)
Updating files:  57% (52/90)
Updating files:  58% (53/90)
Updating files:  60% (54/90)
Updating files:  61% (55/90)
Updating files:  62% (56/90)
Updating files:  63% (57/90)
Updating files:  64% (58/90)
Updating files:  65% (59/90)
Updating files:  66% (60/90)
Updating files:  67% (61/90)
Updating files:  68% (62/90)
Updating files:  70% (63/90)
Updating files:  71% (64/90)
Updating files:  72% (65/90)
Updating files:  73% (66/90)
Updating files:  74% (67/90)
Updating files:  75% (68/90)
Updating files:  76% (69/90)
Updating files:  77% (70/90)
Updating files:  78% (71/90)
Updating files:  80% (72/90)
Updating files:  81% (73/90)
Updating files:  82% (74/90)
Updating files:  83% (75/90)
Updating files:  84% (76/90)
Updating files:  85% (77/90)
Updating files:  86% (78/90)
Updating files:  87% (79/90)
Updating files:  88% (80/90)
Updating files:  90% (81/90)
Updating files:  91% (82/90)
Updating files:  92% (83/90)
Updating files:  93% (84/90)
Updating files:  94% (85/90)
Updating files:  95% (86/90)
Updating files:  96% (87/90)
Updating files:  97% (88/90)
Updating files:  98% (89/90)
Updating files: 100% (90/90)
Updating files: 100% (90/90), done.
[INFO] started tweaking git repo https://github.com/performance/IDP_Tool
[INFO] finished tweaking git repo https://github.com/performance/IDP_Tool
[INFO] tweaked toml for git repo https://github.com/performance/IDP_Tool written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/performance/IDP_Tool on toolchain 42f4793e5a514858221b07ac379029d90353913e
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+42f4793e5a514858221b07ac379029d90353913e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/performance/IDP_Tool 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" "+42f4793e5a514858221b07ac379029d90353913e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded strsim v0.4.0
[INFO] [stderr]   Downloaded ansi_term v0.6.3
[INFO] [stderr]   Downloaded aho-corasick v0.3.0
[INFO] [stderr]   Downloaded byteorder v0.3.11
[INFO] [stderr]   Downloaded libc v0.1.8
[INFO] [stderr]   Downloaded memchr v0.1.3
[INFO] [stderr]   Downloaded regex v0.1.41
[INFO] [stderr]   Downloaded regex-syntax v0.2.1
[INFO] [stderr]   Downloaded clap v1.1.4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+42f4793e5a514858221b07ac379029d90353913e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 0eb5e49c6695971ac132a3d4902e124077678c6b217921f8d4d33f4bb49de2db
[INFO] running `Command { std: "docker" "start" "-a" "0eb5e49c6695971ac132a3d4902e124077678c6b217921f8d4d33f4bb49de2db", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0eb5e49c6695971ac132a3d4902e124077678c6b217921f8d4d33f4bb49de2db", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0eb5e49c6695971ac132a3d4902e124077678c6b217921f8d4d33f4bb49de2db", kill_on_drop: false }`
[INFO] [stdout] 0eb5e49c6695971ac132a3d4902e124077678c6b217921f8d4d33f4bb49de2db
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+42f4793e5a514858221b07ac379029d90353913e" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 37fe51f5a408ef281eeb341593ab54eaa24e373d0e7c2818b5e017e6b908e280
[INFO] running `Command { std: "docker" "start" "-a" "37fe51f5a408ef281eeb341593ab54eaa24e373d0e7c2818b5e017e6b908e280", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]     Checking libc v0.1.8
[INFO] [stderr]     Checking regex-syntax v0.2.1
[INFO] [stderr]     Checking strsim v0.4.0
[INFO] [stderr]     Checking ansi_term v0.6.3
[INFO] [stderr]     Checking byteorder v0.3.11
[INFO] [stderr]     Checking memchr v0.1.3
[INFO] [stderr]     Checking aho-corasick v0.3.0
[INFO] [stderr]     Checking clap v1.1.4
[INFO] [stderr]     Checking regex v0.1.41
[INFO] [stderr]     Checking idp_tool v0.0.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/decoder.rs:72:20
[INFO] [stdout]    |
[INFO] [stdout] 72 |         let fmt1 = try!(self.reader.read_u32() );
[INFO] [stdout]    |                    ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/decoder.rs:73:20
[INFO] [stdout]    |
[INFO] [stdout] 73 |         let fmt2 = try!(self.reader.read_u32() );
[INFO] [stdout]    |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/decoder.rs:79:23
[INFO] [stdout]    |
[INFO] [stdout] 79 |         self.width  = try!(self.reader.read_u32() );
[INFO] [stdout]    |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/decoder.rs:80:23
[INFO] [stdout]    |
[INFO] [stdout] 80 |         self.height = try!(self.reader.read_u32() );
[INFO] [stdout]    |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/decoder.rs:93:9
[INFO] [stdout]    |
[INFO] [stdout] 93 |         try!(self.read_header());
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/decoder.rs:100:38
[INFO] [stdout]     |
[INFO] [stdout] 100 |         let pixel_type : PixelType = try!(self.pixel_type() );
[INFO] [stdout]     |                                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/decoder.rs:111:30
[INFO] [stdout]     |
[INFO] [stdout] 111 |                     *datum = try!(reader.read_u16());
[INFO] [stdout]     |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/decoder.rs:116:30
[INFO] [stdout]     |
[INFO] [stdout] 116 |                     *datum = try!(reader.read_f32());
[INFO] [stdout]     |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/decoder.rs:162:17
[INFO] [stdout]     |
[INFO] [stdout] 162 |                 try!(
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/decoder.rs:169:17
[INFO] [stdout]     |
[INFO] [stdout] 169 |                 try!(
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]   --> src/utils/file.rs:75:16
[INFO] [stdout]    |
[INFO] [stdout] 75 |     for row in (0..number_of_rows ) {
[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] 75 -     for row in (0..number_of_rows ) {
[INFO] [stdout] 75 +     for row in 0..number_of_rows  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]   --> src/utils/file.rs:76:20
[INFO] [stdout]    |
[INFO] [stdout] 76 |         for col in ( 0..number_of_columns ) {
[INFO] [stdout]    |                    ^^                    ^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 76 -         for col in ( 0..number_of_columns ) {
[INFO] [stdout] 76 +         for col in 0..number_of_columns  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/utils/file.rs:130:23
[INFO] [stdout]     |
[INFO] [stdout] 130 |         let entries = try!(fs::read_dir(dir)); // Result<ReadDir>
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/utils/file.rs:177:22
[INFO] [stdout]     |
[INFO] [stdout] 177 |         for entry in try!(fs::read_dir(dir)) {
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/utils/file.rs:178:30
[INFO] [stdout]     |
[INFO] [stdout] 178 |             let this_entry = try!(entry);
[INFO] [stdout]     |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/utils/file.rs:181:17
[INFO] [stdout]     |
[INFO] [stdout] 181 |                 try!(process_tail_dirs(this_entry_path, cb));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/utils/imageops.rs:72:56
[INFO] [stdout]    |
[INFO] [stdout] 72 | fn apply_mask( ms: &Vec<Pixel>, ps: &Vec<Pixel> )  ->  ( Option<Vec<Pixel> > ) {
[INFO] [stdout]    |                                                        ^^                   ^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 72 - fn apply_mask( ms: &Vec<Pixel>, ps: &Vec<Pixel> )  ->  ( Option<Vec<Pixel> > ) {
[INFO] [stdout] 72 + fn apply_mask( ms: &Vec<Pixel>, ps: &Vec<Pixel> )  ->  Option<Vec<Pixel> >  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/image/error.rs:36:33
[INFO] [stdout]    |
[INFO] [stdout] 36 |     fn cause (&self) -> Option<&Error> {
[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] 36 |     fn cause (&self) -> Option<&dyn Error> {
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/decoder.rs:72:20
[INFO] [stdout]    |
[INFO] [stdout] 72 |         let fmt1 = try!(self.reader.read_u32() );
[INFO] [stdout]    |                    ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/decoder.rs:73:20
[INFO] [stdout]    |
[INFO] [stdout] 73 |         let fmt2 = try!(self.reader.read_u32() );
[INFO] [stdout]    |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/decoder.rs:79:23
[INFO] [stdout]    |
[INFO] [stdout] 79 |         self.width  = try!(self.reader.read_u32() );
[INFO] [stdout]    |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/decoder.rs:80:23
[INFO] [stdout]    |
[INFO] [stdout] 80 |         self.height = try!(self.reader.read_u32() );
[INFO] [stdout]    |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/decoder.rs:93:9
[INFO] [stdout]    |
[INFO] [stdout] 93 |         try!(self.read_header());
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/decoder.rs:100:38
[INFO] [stdout]     |
[INFO] [stdout] 100 |         let pixel_type : PixelType = try!(self.pixel_type() );
[INFO] [stdout]     |                                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/decoder.rs:111:30
[INFO] [stdout]     |
[INFO] [stdout] 111 |                     *datum = try!(reader.read_u16());
[INFO] [stdout]     |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/decoder.rs:116:30
[INFO] [stdout]     |
[INFO] [stdout] 116 |                     *datum = try!(reader.read_f32());
[INFO] [stdout]     |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/decoder.rs:162:17
[INFO] [stdout]     |
[INFO] [stdout] 162 |                 try!(
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/decoder.rs:169:17
[INFO] [stdout]     |
[INFO] [stdout] 169 |                 try!(
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]   --> src/utils/file.rs:75:16
[INFO] [stdout]    |
[INFO] [stdout] 75 |     for row in (0..number_of_rows ) {
[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] 75 -     for row in (0..number_of_rows ) {
[INFO] [stdout] 75 +     for row in 0..number_of_rows  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]   --> src/utils/file.rs:76:20
[INFO] [stdout]    |
[INFO] [stdout] 76 |         for col in ( 0..number_of_columns ) {
[INFO] [stdout]    |                    ^^                    ^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 76 -         for col in ( 0..number_of_columns ) {
[INFO] [stdout] 76 +         for col in 0..number_of_columns  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/utils/file.rs:130:23
[INFO] [stdout]     |
[INFO] [stdout] 130 |         let entries = try!(fs::read_dir(dir)); // Result<ReadDir>
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/utils/file.rs:177:22
[INFO] [stdout]     |
[INFO] [stdout] 177 |         for entry in try!(fs::read_dir(dir)) {
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/utils/file.rs:178:30
[INFO] [stdout]     |
[INFO] [stdout] 178 |             let this_entry = try!(entry);
[INFO] [stdout]     |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/utils/file.rs:181:17
[INFO] [stdout]     |
[INFO] [stdout] 181 |                 try!(process_tail_dirs(this_entry_path, cb));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/utils/imageops.rs:72:56
[INFO] [stdout]    |
[INFO] [stdout] 72 | fn apply_mask( ms: &Vec<Pixel>, ps: &Vec<Pixel> )  ->  ( Option<Vec<Pixel> > ) {
[INFO] [stdout]    |                                                        ^^                   ^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 72 - fn apply_mask( ms: &Vec<Pixel>, ps: &Vec<Pixel> )  ->  ( Option<Vec<Pixel> > ) {
[INFO] [stdout] 72 + fn apply_mask( ms: &Vec<Pixel>, ps: &Vec<Pixel> )  ->  Option<Vec<Pixel> >  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/image/error.rs:36:33
[INFO] [stdout]    |
[INFO] [stdout] 36 |     fn cause (&self) -> Option<&Error> {
[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] 36 |     fn cause (&self) -> Option<&dyn Error> {
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `BigEndian` is never constructed
[INFO] [stdout]   --> src/stream.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub enum ByteOrder {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 13 |     BigEndian
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ByteOrder` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `write_u16` is never used
[INFO] [stdout]   --> src/stream.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub trait EndianWriter: Write {
[INFO] [stdout]    |           ------------ method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 60 |     fn write_u16(&mut self, n: u16) -> Result<(), byteorder::Error> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `dimensions` is never used
[INFO] [stdout]   --> src/decoder.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub trait ImageDecoder: Sized {
[INFO] [stdout]    |           ------------ method in this trait
[INFO] [stdout] 32 |     /// Returns a tuple containing the width and height of the image
[INFO] [stdout] 33 |     fn dimensions(&mut self) -> ImageResult<(u32, u32)>;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/utils/file.rs:59:54
[INFO] [stdout]    |
[INFO] [stdout] 59 |         Err( msg ) => { println!("{}", msg); panic!( format!("Panic! unable to create file at : {:?}", input_path ) ); }
[INFO] [stdout]    |                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout]    = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]    |
[INFO] [stdout] 59 -         Err( msg ) => { println!("{}", msg); panic!( format!("Panic! unable to create file at : {:?}", input_path ) ); }
[INFO] [stdout] 59 +         Err( msg ) => { println!("{}", msg); panic!( "Panic! unable to create file at : {:?}", input_path  ); }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `BigEndian` is never constructed
[INFO] [stdout]   --> src/stream.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub enum ByteOrder {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 13 |     BigEndian
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ByteOrder` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `write_u16` is never used
[INFO] [stdout]   --> src/stream.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub trait EndianWriter: Write {
[INFO] [stdout]    |           ------------ method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 60 |     fn write_u16(&mut self, n: u16) -> Result<(), byteorder::Error> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `dimensions` is never used
[INFO] [stdout]   --> src/decoder.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub trait ImageDecoder: Sized {
[INFO] [stdout]    |           ------------ method in this trait
[INFO] [stdout] 32 |     /// Returns a tuple containing the width and height of the image
[INFO] [stdout] 33 |     fn dimensions(&mut self) -> ImageResult<(u32, u32)>;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/utils/file.rs:59:54
[INFO] [stdout]    |
[INFO] [stdout] 59 |         Err( msg ) => { println!("{}", msg); panic!( format!("Panic! unable to create file at : {:?}", input_path ) ); }
[INFO] [stdout]    |                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout]    = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]    |
[INFO] [stdout] 59 -         Err( msg ) => { println!("{}", msg); panic!( format!("Panic! unable to create file at : {:?}", input_path ) ); }
[INFO] [stdout] 59 +         Err( msg ) => { println!("{}", msg); panic!( "Panic! unable to create file at : {:?}", input_path  ); }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.26s
[INFO] running `Command { std: "docker" "inspect" "37fe51f5a408ef281eeb341593ab54eaa24e373d0e7c2818b5e017e6b908e280", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "37fe51f5a408ef281eeb341593ab54eaa24e373d0e7c2818b5e017e6b908e280", kill_on_drop: false }`
[INFO] [stdout] 37fe51f5a408ef281eeb341593ab54eaa24e373d0e7c2818b5e017e6b908e280
