[INFO] cloning repository https://github.com/JarneClarysse/test_project
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/JarneClarysse/test_project" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJarneClarysse%2Ftest_project", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJarneClarysse%2Ftest_project'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 319c3f3de0df825f9286626ab6aa6bdf2d6126df
[INFO] checking JarneClarysse/test_project against eca445e5ae4a6679cc27d3a09106ce245e13a5a6 for pr-162478
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJarneClarysse%2Ftest_project" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] [stderr] Updating files:  77% (2285/2941)
Updating files:  78% (2294/2941)
Updating files:  79% (2324/2941)
Updating files:  80% (2353/2941)
Updating files:  81% (2383/2941)
Updating files:  82% (2412/2941)
Updating files:  83% (2442/2941)
Updating files:  84% (2471/2941)
Updating files:  84% (2484/2941)
Updating files:  85% (2500/2941)
Updating files:  86% (2530/2941)
Updating files:  87% (2559/2941)
Updating files:  88% (2589/2941)
Updating files:  89% (2618/2941)
Updating files:  90% (2647/2941)
Updating files:  91% (2677/2941)
Updating files:  92% (2706/2941)
Updating files:  93% (2736/2941)
Updating files:  94% (2765/2941)
Updating files:  95% (2794/2941)
Updating files:  96% (2824/2941)
Updating files:  97% (2853/2941)
Updating files:  98% (2883/2941)
Updating files:  99% (2912/2941)
Updating files: 100% (2941/2941)
Updating files: 100% (2941/2941), done.
[INFO] started tweaking git repo https://github.com/JarneClarysse/test_project
[INFO] finished tweaking git repo https://github.com/JarneClarysse/test_project
[INFO] tweaked toml for git repo https://github.com/JarneClarysse/test_project written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/JarneClarysse/test_project on toolchain eca445e5ae4a6679cc27d3a09106ce245e13a5a6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/JarneClarysse/test_project 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" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "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: binary `rust_project` should have a kebab-case name
[INFO] [stderr]    |
[INFO] [stderr]  1 | /workspace/builds/worker-4-tc1/source/target/.../rust_project
[INFO] [stderr]    |                                                  ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::non_kebab_case_bins` is set to `warn` by default
[INFO] [stderr] help: to change the binary name to `rust-project`, convert `package.name`
[INFO] [stderr]   --> Cargo.toml:13:8
[INFO] [stderr]    |
[INFO] [stderr] 13 - name = "rust_project"
[INFO] [stderr] 13 + name = "rust-project"
[INFO] [stderr]    |
[INFO] [stderr] help: to change the binary name to `rust-project`, specify `bin.name`
[INFO] [stderr]   --> Cargo.toml:14:19
[INFO] [stderr]    |
[INFO] [stderr] 14 ~ version = "0.1.0"
[INFO] [stderr] 15 + [[bin]]
[INFO] [stderr] 16 + name = "rust-project"
[INFO] [stderr] 17 + path = "src/main.rs"
[INFO] [stderr]    |
[INFO] [stderr] warning: `rust_project` (manifest) generated 2 warnings
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded cfg-if v0.1.7
[INFO] [stderr]   Downloaded simple-error v0.1.13
[INFO] [stderr]   Downloaded shuteye v0.3.3
[INFO] [stderr]   Downloaded nix v0.13.0
[INFO] [stderr]   Downloaded mmap v0.1.1
[INFO] [stderr]   Downloaded cc v1.0.35
[INFO] [stderr]   Downloaded ctrlc v3.1.1
[INFO] [stderr]   Downloaded libc v0.2.51
[INFO] [stderr]   Downloaded nix v0.11.0
[INFO] [stderr]   Downloaded libc v0.1.12
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 1080c07f57f627a9ab9359804ce9c6b0be21915dda133e31f13bcf45dd0167a7
[INFO] running `Command { std: "docker" "start" "1080c07f57f627a9ab9359804ce9c6b0be21915dda133e31f13bcf45dd0167a7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1080c07f57f627a9ab9359804ce9c6b0be21915dda133e31f13bcf45dd0167a7", 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" "1080c07f57f627a9ab9359804ce9c6b0be21915dda133e31f13bcf45dd0167a7" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1080c07f57f627a9ab9359804ce9c6b0be21915dda133e31f13bcf45dd0167a7", 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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1080c07f57f627a9ab9359804ce9c6b0be21915dda133e31f13bcf45dd0167a7" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: binary `rust_project` should have a kebab-case name
[INFO] [stderr]    |
[INFO] [stderr]  1 | /opt/rustwide/target/.../rust_project
[INFO] [stderr]    |                          ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::non_kebab_case_bins` is set to `warn` by default
[INFO] [stderr] help: to change the binary name to `rust-project`, convert `package.name`
[INFO] [stderr]   --> Cargo.toml:13:8
[INFO] [stderr]    |
[INFO] [stderr] 13 - name = "rust_project"
[INFO] [stderr] 13 + name = "rust-project"
[INFO] [stderr]    |
[INFO] [stderr] help: to change the binary name to `rust-project`, specify `bin.name`
[INFO] [stderr]   --> Cargo.toml:14:19
[INFO] [stderr]    |
[INFO] [stderr] 14 ~ version = "0.1.0"
[INFO] [stderr] 15 + [[bin]]
[INFO] [stderr] 16 + name = "rust-project"
[INFO] [stderr] 17 + path = "src/main.rs"
[INFO] [stderr]    |
[INFO] [stderr] warning: `rust_project` (manifest) generated 2 warnings
[INFO] [stderr]    Compiling libc v0.2.51
[INFO] [stderr]    Compiling nix v0.11.0
[INFO] [stderr]     Checking void v1.0.2
[INFO] [stderr]     Checking bitflags v1.0.4
[INFO] [stderr]     Checking cfg-if v0.1.7
[INFO] [stderr]    Compiling byteorder v1.3.1
[INFO] [stderr]     Checking remove_dir_all v0.5.1
[INFO] [stderr]    Compiling nix v0.13.0
[INFO] [stderr]     Checking libc v0.1.12
[INFO] [stderr]     Checking simple-error v0.1.13
[INFO] [stderr]     Checking rand v0.4.6
[INFO] [stderr]     Checking shuteye v0.3.3
[INFO] [stderr]     Checking time v0.1.42
[INFO] [stderr]     Checking tempdir v0.3.7
[INFO] [stderr]     Checking mmap v0.1.1
[INFO] [stderr]     Checking ctrlc v3.1.1
[INFO] [stderr]     Checking rust_project v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/main.rs:564:21
[INFO] [stdout]     |
[INFO] [stdout] 564 |                 b'0'...b'9' => { v.push(c[0]); }
[INFO] [stdout]     |                     ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/main.rs:732:74
[INFO] [stdout]     |
[INFO] [stdout] 732 |                 image.pixels = resize(alle_pix,w as u32,h as u32 ,32,16);;
[INFO] [stdout]     |                                                                          ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/main.rs:931:5
[INFO] [stdout]     |
[INFO] [stdout] 931 |     ;
[INFO] [stdout]     |     ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/main.rs:34:15
[INFO] [stdout]    |
[INFO] [stdout] 34 | use std::f64::INFINITY;
[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::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]    --> src/main.rs:789:20
[INFO] [stdout]     |
[INFO] [stdout] 789 |         duration = INFINITY;
[INFO] [stdout]     |                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:532:70
[INFO] [stdout]     |
[INFO] [stdout] 532 |     fn read_pixel(cursor: &mut Cursor<Vec<u8>>) -> Result<Pixel, Box<std::error::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] 532 |     fn read_pixel(cursor: &mut Cursor<Vec<u8>>) -> Result<Pixel, Box<dyn std::error::Error>> {
[INFO] [stdout]     |                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:541:68
[INFO] [stdout]     |
[INFO] [stdout] 541 |     fn read_num(cursor: &mut Cursor<Vec<u8>>) -> Result<usize, Box<std::error::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] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 541 |     fn read_num(cursor: &mut Cursor<Vec<u8>>) -> Result<usize, Box<dyn std::error::Error>> {
[INFO] [stdout]     |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:581:92
[INFO] [stdout]     |
[INFO] [stdout] 581 |     fn decode_ppm_image(cursor: &mut Cursor<Vec<u8>>, count_int: i32) -> Result<Image, Box<std::error::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] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 581 |     fn decode_ppm_image(cursor: &mut Cursor<Vec<u8>>, count_int: i32) -> Result<Image, Box<dyn std::error::Error>> {
[INFO] [stdout]     |                                                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:155:66
[INFO] [stdout]     |
[INFO] [stdout] 155 |             Err(why) => panic!("couldn't open /dev/mem: {}", why.description()),
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:554:96
[INFO] [stdout]     |
[INFO] [stdout] 554 |                         Err(why) => panic!("something happened while parsing header - {}", why.description()),
[INFO] [stdout]     |                                                                                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:568:96
[INFO] [stdout]     |
[INFO] [stdout] 568 |                         Err(why) => panic!("something happened while parsing header - {}", why.description()),
[INFO] [stdout]     |                                                                                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:590:84
[INFO] [stdout]     |
[INFO] [stdout] 590 |             Err(why) => panic!("something happened while parsing header - {}", why.description()),
[INFO] [stdout]     |                                                                                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:617:96
[INFO] [stdout]     |
[INFO] [stdout] 617 |                         Err(why) => panic!("something happened while parsing header - {}", why.description()),
[INFO] [stdout]     |                                                                                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:641:96
[INFO] [stdout]     |
[INFO] [stdout] 641 |                         Err(why) => panic!("something happened while parsing header - {}", why.description()),
[INFO] [stdout]     |                                                                                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:666:96
[INFO] [stdout]     |
[INFO] [stdout] 666 |                         Err(why) => panic!("something happened while parsing header - {}", why.description()),
[INFO] [stdout]     |                                                                                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:694:96
[INFO] [stdout]     |
[INFO] [stdout] 694 |                         Err(why) => panic!("something happened while parsing header - {}", why.description()),
[INFO] [stdout]     |                                                                                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:713:96
[INFO] [stdout]     |
[INFO] [stdout] 713 |                         Err(why) => panic!("something happened while parsing header - {}", why.description()),
[INFO] [stdout]     |                                                                                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:834:78
[INFO] [stdout]     |
[INFO] [stdout] 834 |                 Err(why) => panic!("Woops time did not elapse well: {}", why.description()),
[INFO] [stdout]     |                                                                              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:856:74
[INFO] [stdout]     |
[INFO] [stdout] 856 |             Err(why) => panic!("Woops time did not elapse well: {}", why.description()),
[INFO] [stdout]     |                                                                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:906:41
[INFO] [stdout]     |
[INFO] [stdout] 906 | ...                   display, why.description()),
[INFO] [stdout]     |                                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:918:71
[INFO] [stdout]     |
[INFO] [stdout] 918 |         Err(why) => panic!("Could not parse PPM file - Desc: {}", why.description()),
[INFO] [stdout]     |                                                                       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:959:45
[INFO] [stdout]     |
[INFO] [stdout] 959 | ...                   display, why.description()),
[INFO] [stdout]     |                                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:971:75
[INFO] [stdout]     |
[INFO] [stdout] 971 |             Err(why) => panic!("Could not parse PPM file - Desc: {}", why.description()),
[INFO] [stdout]     |                                                                           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:319:25
[INFO] [stdout]     |
[INFO] [stdout] 319 |                     let mut d = ROWS / SUB_PANELS_;
[INFO] [stdout]     |                         ----^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/main.rs:564:21
[INFO] [stdout]     |
[INFO] [stdout] 564 |                 b'0'...b'9' => { v.push(c[0]); }
[INFO] [stdout]     |                     ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/main.rs:732:74
[INFO] [stdout]     |
[INFO] [stdout] 732 |                 image.pixels = resize(alle_pix,w as u32,h as u32 ,32,16);;
[INFO] [stdout]     |                                                                          ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/main.rs:931:5
[INFO] [stdout]     |
[INFO] [stdout] 931 |     ;
[INFO] [stdout]     |     ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:805:25
[INFO] [stdout]     |
[INFO] [stdout] 805 |                     let mut top: Pixel = frame.pixels[row_loop as usize][col as usize];
[INFO] [stdout]     |                         ----^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:806:25
[INFO] [stdout]     |
[INFO] [stdout] 806 |                     let mut bot: Pixel = frame.pixels[(ROWS / 2 + row_loop) as usize][col as usize];
[INFO] [stdout]     |                         ----^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/main.rs:34:15
[INFO] [stdout]    |
[INFO] [stdout] 34 | use std::f64::INFINITY;
[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::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]    --> src/main.rs:789:20
[INFO] [stdout]     |
[INFO] [stdout] 789 |         duration = INFINITY;
[INFO] [stdout]     |                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::ptr::mut_ptr::<impl *mut T>::offset` that must be used
[INFO] [stdout]    --> src/main.rs:401:21
[INFO] [stdout]     |
[INFO] [stdout] 401 |                     timer.timereg.offset(2);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: returns a new pointer rather than modifying its argument
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 401 |                     let _ = timer.timereg.offset(2);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/main.rs:954:44
[INFO] [stdout]     |
[INFO] [stdout] 954 |         path = Path::new(image_names[index].clone());
[INFO] [stdout]     |                                            ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout]     = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:532:70
[INFO] [stdout]     |
[INFO] [stdout] 532 |     fn read_pixel(cursor: &mut Cursor<Vec<u8>>) -> Result<Pixel, Box<std::error::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] 532 |     fn read_pixel(cursor: &mut Cursor<Vec<u8>>) -> Result<Pixel, Box<dyn std::error::Error>> {
[INFO] [stdout]     |                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:541:68
[INFO] [stdout]     |
[INFO] [stdout] 541 |     fn read_num(cursor: &mut Cursor<Vec<u8>>) -> Result<usize, Box<std::error::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] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 541 |     fn read_num(cursor: &mut Cursor<Vec<u8>>) -> Result<usize, Box<dyn std::error::Error>> {
[INFO] [stdout]     |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:581:92
[INFO] [stdout]     |
[INFO] [stdout] 581 |     fn decode_ppm_image(cursor: &mut Cursor<Vec<u8>>, count_int: i32) -> Result<Image, Box<std::error::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] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 581 |     fn decode_ppm_image(cursor: &mut Cursor<Vec<u8>>, count_int: i32) -> Result<Image, Box<dyn std::error::Error>> {
[INFO] [stdout]     |                                                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:155:66
[INFO] [stdout]     |
[INFO] [stdout] 155 |             Err(why) => panic!("couldn't open /dev/mem: {}", why.description()),
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:554:96
[INFO] [stdout]     |
[INFO] [stdout] 554 |                         Err(why) => panic!("something happened while parsing header - {}", why.description()),
[INFO] [stdout]     |                                                                                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:568:96
[INFO] [stdout]     |
[INFO] [stdout] 568 |                         Err(why) => panic!("something happened while parsing header - {}", why.description()),
[INFO] [stdout]     |                                                                                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:590:84
[INFO] [stdout]     |
[INFO] [stdout] 590 |             Err(why) => panic!("something happened while parsing header - {}", why.description()),
[INFO] [stdout]     |                                                                                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:617:96
[INFO] [stdout]     |
[INFO] [stdout] 617 |                         Err(why) => panic!("something happened while parsing header - {}", why.description()),
[INFO] [stdout]     |                                                                                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:641:96
[INFO] [stdout]     |
[INFO] [stdout] 641 |                         Err(why) => panic!("something happened while parsing header - {}", why.description()),
[INFO] [stdout]     |                                                                                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:666:96
[INFO] [stdout]     |
[INFO] [stdout] 666 |                         Err(why) => panic!("something happened while parsing header - {}", why.description()),
[INFO] [stdout]     |                                                                                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:694:96
[INFO] [stdout]     |
[INFO] [stdout] 694 |                         Err(why) => panic!("something happened while parsing header - {}", why.description()),
[INFO] [stdout]     |                                                                                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:713:96
[INFO] [stdout]     |
[INFO] [stdout] 713 |                         Err(why) => panic!("something happened while parsing header - {}", why.description()),
[INFO] [stdout]     |                                                                                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:834:78
[INFO] [stdout]     |
[INFO] [stdout] 834 |                 Err(why) => panic!("Woops time did not elapse well: {}", why.description()),
[INFO] [stdout]     |                                                                              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:856:74
[INFO] [stdout]     |
[INFO] [stdout] 856 |             Err(why) => panic!("Woops time did not elapse well: {}", why.description()),
[INFO] [stdout]     |                                                                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:906:41
[INFO] [stdout]     |
[INFO] [stdout] 906 | ...                   display, why.description()),
[INFO] [stdout]     |                                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:918:71
[INFO] [stdout]     |
[INFO] [stdout] 918 |         Err(why) => panic!("Could not parse PPM file - Desc: {}", why.description()),
[INFO] [stdout]     |                                                                       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:959:45
[INFO] [stdout]     |
[INFO] [stdout] 959 | ...                   display, why.description()),
[INFO] [stdout]     |                                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:971:75
[INFO] [stdout]     |
[INFO] [stdout] 971 |             Err(why) => panic!("Could not parse PPM file - Desc: {}", why.description()),
[INFO] [stdout]     |                                                                           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:319:25
[INFO] [stdout]     |
[INFO] [stdout] 319 |                     let mut d = ROWS / SUB_PANELS_;
[INFO] [stdout]     |                         ----^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:805:25
[INFO] [stdout]     |
[INFO] [stdout] 805 |                     let mut top: Pixel = frame.pixels[row_loop as usize][col as usize];
[INFO] [stdout]     |                         ----^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:806:25
[INFO] [stdout]     |
[INFO] [stdout] 806 |                     let mut bot: Pixel = frame.pixels[(ROWS / 2 + row_loop) as usize][col as usize];
[INFO] [stdout]     |                         ----^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::ptr::mut_ptr::<impl *mut T>::offset` that must be used
[INFO] [stdout]    --> src/main.rs:401:21
[INFO] [stdout]     |
[INFO] [stdout] 401 |                     timer.timereg.offset(2);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: returns a new pointer rather than modifying its argument
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 401 |                     let _ = timer.timereg.offset(2);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/main.rs:954:44
[INFO] [stdout]     |
[INFO] [stdout] 954 |         path = Path::new(image_names[index].clone());
[INFO] [stdout]     |                                            ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout]     = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.15s
[INFO] running `Command { std: "docker" "inspect" "1080c07f57f627a9ab9359804ce9c6b0be21915dda133e31f13bcf45dd0167a7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1080c07f57f627a9ab9359804ce9c6b0be21915dda133e31f13bcf45dd0167a7", kill_on_drop: false }`
[INFO] [stdout] 1080c07f57f627a9ab9359804ce9c6b0be21915dda133e31f13bcf45dd0167a7
