[INFO] cloning repository https://github.com/K-C-DaCosta/Software-Rasterizer
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/K-C-DaCosta/Software-Rasterizer" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FK-C-DaCosta%2FSoftware-Rasterizer", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FK-C-DaCosta%2FSoftware-Rasterizer'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 0e3f299dd3a7da299781133d87eaea23f150bb27
[INFO] testing K-C-DaCosta/Software-Rasterizer against 1.76.0 for beta-1.77-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FK-C-DaCosta%2FSoftware-Rasterizer" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/K-C-DaCosta/Software-Rasterizer on toolchain 1.76.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.76.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] removed /workspace/builds/worker-6-tc1/source/.cargo/config
[INFO] started tweaking git repo https://github.com/K-C-DaCosta/Software-Rasterizer
[INFO] finished tweaking git repo https://github.com/K-C-DaCosta/Software-Rasterizer
[INFO] tweaked toml for git repo https://github.com/K-C-DaCosta/Software-Rasterizer written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/K-C-DaCosta/Software-Rasterizer 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" "+1.76.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded nalgebra v0.21.0
[INFO] [stderr]   Downloaded sdl2 v0.33.0
[INFO] [stderr]   Downloaded paste v0.1.10
[INFO] [stderr]   Downloaded paste-impl v0.1.10
[INFO] [stderr]   Downloaded simba v0.1.2
[INFO] [stderr]   Downloaded sdl2-sys v0.33.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.76.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f1fefb5e26aafa33731b7cacf55d7cd40bf0dd6e746c7b5bf6ea8b7d65eadbfe
[INFO] running `Command { std: "docker" "start" "-a" "f1fefb5e26aafa33731b7cacf55d7cd40bf0dd6e746c7b5bf6ea8b7d65eadbfe", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f1fefb5e26aafa33731b7cacf55d7cd40bf0dd6e746c7b5bf6ea8b7d65eadbfe", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f1fefb5e26aafa33731b7cacf55d7cd40bf0dd6e746c7b5bf6ea8b7d65eadbfe", kill_on_drop: false }`
[INFO] [stdout] f1fefb5e26aafa33731b7cacf55d7cd40bf0dd6e746c7b5bf6ea8b7d65eadbfe
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.76.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7771d6e24f8a319f1bdd680ed8c9ab712eb153bf4c05d0a3c1849f3bd9dd5dea
[INFO] running `Command { std: "docker" "start" "-a" "7771d6e24f8a319f1bdd680ed8c9ab712eb153bf4c05d0a3c1849f3bd9dd5dea", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v1.0.0
[INFO] [stderr]    Compiling cfg-if v0.1.10
[INFO] [stderr]    Compiling libc v0.2.68
[INFO] [stderr]    Compiling libm v0.2.1
[INFO] [stderr]    Compiling proc-macro2 v1.0.10
[INFO] [stderr]    Compiling unicode-xid v0.2.0
[INFO] [stderr]    Compiling getrandom v0.1.14
[INFO] [stderr]    Compiling syn v1.0.17
[INFO] [stderr]    Compiling proc-macro-hack v0.5.15
[INFO] [stderr]    Compiling ppv-lite86 v0.2.6
[INFO] [stderr]    Compiling bitflags v1.2.1
[INFO] [stderr]    Compiling typenum v1.11.2
[INFO] [stderr]    Compiling byteorder v1.3.4
[INFO] [stderr]    Compiling adler32 v1.0.4
[INFO] [stderr]    Compiling crc32fast v1.2.0
[INFO] [stderr]    Compiling sdl2 v0.33.0
[INFO] [stderr]    Compiling sdl2-sys v0.33.0
[INFO] [stderr]    Compiling rawpointer v0.2.1
[INFO] [stderr]    Compiling inflate v0.4.5
[INFO] [stderr]    Compiling matrixmultiply v0.2.3
[INFO] [stderr]    Compiling lazy_static v1.4.0
[INFO] [stderr]    Compiling num-traits v0.2.11
[INFO] [stderr]    Compiling num-complex v0.2.4
[INFO] [stderr]    Compiling num-integer v0.1.42
[INFO] [stderr]    Compiling num-rational v0.2.4
[INFO] [stderr]    Compiling quote v1.0.3
[INFO] [stderr]    Compiling deflate v0.7.20
[INFO] [stderr]    Compiling rand_core v0.5.1
[INFO] [stderr]    Compiling rand_chacha v0.2.2
[INFO] [stderr]    Compiling png v0.15.3
[INFO] [stderr]    Compiling generic-array v0.13.2
[INFO] [stderr]    Compiling rand v0.7.3
[INFO] [stderr]    Compiling approx v0.3.2
[INFO] [stderr]    Compiling rand_distr v0.2.2
[INFO] [stderr]    Compiling paste-impl v0.1.10
[INFO] [stderr]    Compiling paste v0.1.10
[INFO] [stderr]    Compiling simba v0.1.2
[INFO] [stderr]    Compiling nalgebra v0.21.0
[INFO] [stderr]    Compiling software_rasterizer v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `super::super::math_util::fixed_point::*`
[INFO] [stdout]  --> src/image/sampler.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use super::super::math_util::fixed_point::*; 
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `png::Transformations`
[INFO] [stdout]    --> src/image.rs:121:9
[INFO] [stdout]     |
[INFO] [stdout] 121 |     use png::Transformations;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LinearSampler2D`, `sampler`
[INFO] [stdout]   --> src/graphics.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |         sampler,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 14 |         sampler::{LinearSampler2D, NearestSampler2D, Sampler2D},
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp`
[INFO] [stdout]  --> src/math_util/geometry.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::cmp;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::event::*`
[INFO] [stdout]  --> src/system/video.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use sdl2::event::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::keyboard::Keycode`
[INFO] [stdout]  --> src/system/video.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use sdl2::keyboard::Keycode;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Color`
[INFO] [stdout]  --> src/system/video.rs:8:20
[INFO] [stdout]   |
[INFO] [stdout] 8 | use sdl2::pixels::{Color, PixelFormatEnum};
[INFO] [stdout]   |                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::rect::Rect`
[INFO] [stdout]   --> src/system/video.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use sdl2::rect::Rect;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Canvas`, `TextureAccess`, `Texture`
[INFO] [stdout]   --> src/system/video.rs:12:20
[INFO] [stdout]    |
[INFO] [stdout] 12 | use sdl2::render::{Canvas, Texture, TextureAccess};
[INFO] [stdout]    |                    ^^^^^^  ^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]   --> src/system/video.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::cell::RefCell;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]   --> src/system/video.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::rc::Rc;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::slice`
[INFO] [stdout]   --> src/system/video.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use std::slice;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem`
[INFO] [stdout]   --> src/system/video.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::mem;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::marker`
[INFO] [stdout]   --> src/system/video.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use std::marker; 
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TiledBuffer2D`
[INFO] [stdout]  --> src/model.rs:5:31
[INFO] [stdout]   |
[INFO] [stdout] 5 |         buffer::{RowBuffer2D, TiledBuffer2D},
[INFO] [stdout]   |                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vector2`
[INFO] [stdout]   --> src/model.rs:11:31
[INFO] [stdout]    |
[INFO] [stdout] 11 | use nalgebra::{Matrix4, Unit, Vector2, Vector3, Vector4};
[INFO] [stdout]    |                               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: attribute should be applied to a free function, impl method or static
[INFO] [stdout]    --> src/graphics.rs:566:5
[INFO] [stdout]     |
[INFO] [stdout] 566 |       #[no_mangle]
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 567 | /     fn draw_triangle<F>(
[INFO] [stdout] 568 | |         &mut self,
[INFO] [stdout] 569 | |         attribs: &TriangleData,
[INFO] [stdout] 570 | |         globals: &ShaderGlobals,
[INFO] [stdout] ...   |
[INFO] [stdout] 687 | |         }
[INFO] [stdout] 688 | |     }
[INFO] [stdout]     | |_____- not a free function, impl method or static
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: `#[warn(unused_attributes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: attribute should be applied to a free function, impl method or static
[INFO] [stdout]    --> src/graphics.rs:690:5
[INFO] [stdout]     |
[INFO] [stdout] 690 |       #[no_mangle]
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 691 | /     fn fill_triangle_tile<F>(
[INFO] [stdout] 692 | |         points: &mut [Vector4<f32>; 3],
[INFO] [stdout] 693 | |         depths: &Vector4<f32>,
[INFO] [stdout] 694 | |         tile_dim: Rect2D<i32>,
[INFO] [stdout] ...   |
[INFO] [stdout] 869 | |         }
[INFO] [stdout] 870 | |     }
[INFO] [stdout]     | |_____- not a free function, impl method or static
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[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/model.rs:319:43
[INFO] [stdout]     |
[INFO] [stdout] 319 |                 println!("Error: {}", err.description());
[INFO] [stdout]     |                                           ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Read`
[INFO] [stdout]   --> src/model.rs:14:24
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::io::{BufRead, Read};
[INFO] [stdout]    |                        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Buffer2D`
[INFO] [stdout]  --> src/model.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |         Buffer2D,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w`
[INFO] [stdout]    --> src/image/buffer.rs:192:26
[INFO] [stdout]     |
[INFO] [stdout] 192 |     fn resize(&mut self, w:i32,h:i32){
[INFO] [stdout]     |                          ^ help: if this is intentional, prefix it with an underscore: `_w`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `h`
[INFO] [stdout]    --> src/image/buffer.rs:192:32
[INFO] [stdout]     |
[INFO] [stdout] 192 |     fn resize(&mut self, w:i32,h:i32){
[INFO] [stdout]     |                                ^ help: if this is intentional, prefix it with an underscore: `_h`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/image.rs:183:17
[INFO] [stdout]     |
[INFO] [stdout] 183 |     if let Some(mut texture) = result{
[INFO] [stdout]     |                 ----^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/graphics.rs:670:25
[INFO] [stdout]     |
[INFO] [stdout] 670 |                     let mut tl_tile_bary = fr + delta_x * (off_x as f32) + delta_y * (off_y as f32);
[INFO] [stdout]     |                         ----^^^^^^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `f` is never read
[INFO] [stdout]    --> src/graphics.rs:721:18
[INFO] [stdout]     |
[INFO] [stdout] 721 |         let (mut f, mut fr) = (Vector4::zeros(), *fr);
[INFO] [stdout]     |                  ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `grid_table`
[INFO] [stdout]    --> src/graphics.rs:734:13
[INFO] [stdout]     |
[INFO] [stdout] 734 |         let grid_table = [world_z_tl, world_z_tr, world_z_bl, world_z_br];
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_grid_table`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `points`
[INFO] [stdout]    --> src/graphics.rs:692:9
[INFO] [stdout]     |
[INFO] [stdout] 692 |         points: &mut [Vector4<f32>; 3],
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_points`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `glbs`
[INFO] [stdout]    --> src/graphics.rs:895:5
[INFO] [stdout]     |
[INFO] [stdout] 895 |     glbs: &ShaderGlobals,
[INFO] [stdout]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_glbs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TILE_RAD_SQRD` is never used
[INFO] [stdout]    --> src/graphics.rs:586:15
[INFO] [stdout]     |
[INFO] [stdout] 586 |         const TILE_RAD_SQRD: i32 = TILE_W * TILE_W / 4 + TILE_H * TILE_H / 4;
[INFO] [stdout]     |               ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `custom_frag_shader` is never used
[INFO] [stdout]    --> src/graphics.rs:891:4
[INFO] [stdout]     |
[INFO] [stdout] 891 | fn custom_frag_shader<BUF: Buffer2D<u32>>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 31 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::mem;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time`
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::time;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `software_rasterizer::containers::*`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use software_rasterizer::containers::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Matrix4`, `Translation3`, `Vector2`
[INFO] [stdout]   --> src/main.rs:11:16
[INFO] [stdout]    |
[INFO] [stdout] 11 | use nalgebra::{Matrix4, Rotation3, Translation3, Unit, Vector2, Vector3, Vector4};
[INFO] [stdout]    |                ^^^^^^^             ^^^^^^^^^^^^        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `software_rasterizer::math_util::fixed_point::*`
[INFO] [stdout]   --> src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use software_rasterizer::math_util::fixed_point::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LinearSampler2D`, `TiledBuffer2D`
[INFO] [stdout]   --> src/main.rs:20:31
[INFO] [stdout]    |
[INFO] [stdout] 20 |         buffer::{RowBuffer2D, TiledBuffer2D},
[INFO] [stdout]    |                               ^^^^^^^^^^^^^
[INFO] [stdout] 21 |         sampler::{LinearSampler2D, NearestSampler2D, Sampler2D},
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bounding`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     bounding::*,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `x_pos` is never read
[INFO] [stdout]    --> src/main.rs:217:9
[INFO] [stdout]     |
[INFO] [stdout] 217 |         x_pos = _mouse_state.x() as f32;
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `y_pos` is never read
[INFO] [stdout]    --> src/main.rs:218:9
[INFO] [stdout]     |
[INFO] [stdout] 218 |         y_pos = _mouse_state.y() as f32;
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/main.rs:272:39
[INFO] [stdout]     |
[INFO] [stdout] 272 |                     Keycode::Space => unsafe {
[INFO] [stdout]     |                                       ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 11 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 17.47s
[INFO] running `Command { std: "docker" "inspect" "7771d6e24f8a319f1bdd680ed8c9ab712eb153bf4c05d0a3c1849f3bd9dd5dea", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7771d6e24f8a319f1bdd680ed8c9ab712eb153bf4c05d0a3c1849f3bd9dd5dea", kill_on_drop: false }`
[INFO] [stdout] 7771d6e24f8a319f1bdd680ed8c9ab712eb153bf4c05d0a3c1849f3bd9dd5dea
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.76.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4541dee2f12fba7964ecfca91af3617f6cfbf53897fb0a4071211f8a65063b1d
[INFO] running `Command { std: "docker" "start" "-a" "4541dee2f12fba7964ecfca91af3617f6cfbf53897fb0a4071211f8a65063b1d", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `super::super::math_util::fixed_point::*`
[INFO] [stdout]  --> src/image/sampler.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use super::super::math_util::fixed_point::*; 
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `png::Transformations`
[INFO] [stdout]    --> src/image.rs:121:9
[INFO] [stdout]     |
[INFO] [stdout] 121 |     use png::Transformations;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LinearSampler2D`, `sampler`
[INFO] [stdout]   --> src/graphics.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |         sampler,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 14 |         sampler::{LinearSampler2D, NearestSampler2D, Sampler2D},
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp`
[INFO] [stdout]  --> src/math_util/geometry.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::cmp;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::event::*`
[INFO] [stdout]  --> src/system/video.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use sdl2::event::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::keyboard::Keycode`
[INFO] [stdout]  --> src/system/video.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use sdl2::keyboard::Keycode;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Color`
[INFO] [stdout]  --> src/system/video.rs:8:20
[INFO] [stdout]   |
[INFO] [stdout] 8 | use sdl2::pixels::{Color, PixelFormatEnum};
[INFO] [stdout]   |                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::rect::Rect`
[INFO] [stdout]   --> src/system/video.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use sdl2::rect::Rect;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Canvas`, `TextureAccess`, `Texture`
[INFO] [stdout]   --> src/system/video.rs:12:20
[INFO] [stdout]    |
[INFO] [stdout] 12 | use sdl2::render::{Canvas, Texture, TextureAccess};
[INFO] [stdout]    |                    ^^^^^^  ^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]   --> src/system/video.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::cell::RefCell;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]   --> src/system/video.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::rc::Rc;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::slice`
[INFO] [stdout]   --> src/system/video.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use std::slice;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem`
[INFO] [stdout]   --> src/system/video.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::mem;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::marker`
[INFO] [stdout]   --> src/system/video.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use std::marker; 
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TiledBuffer2D`
[INFO] [stdout]  --> src/model.rs:5:31
[INFO] [stdout]   |
[INFO] [stdout] 5 |         buffer::{RowBuffer2D, TiledBuffer2D},
[INFO] [stdout]   |                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vector2`
[INFO] [stdout]   --> src/model.rs:11:31
[INFO] [stdout]    |
[INFO] [stdout] 11 | use nalgebra::{Matrix4, Unit, Vector2, Vector3, Vector4};
[INFO] [stdout]    |                               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: attribute should be applied to a free function, impl method or static
[INFO] [stdout]    --> src/graphics.rs:566:5
[INFO] [stdout]     |
[INFO] [stdout] 566 |       #[no_mangle]
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 567 | /     fn draw_triangle<F>(
[INFO] [stdout] 568 | |         &mut self,
[INFO] [stdout] 569 | |         attribs: &TriangleData,
[INFO] [stdout] 570 | |         globals: &ShaderGlobals,
[INFO] [stdout] ...   |
[INFO] [stdout] 687 | |         }
[INFO] [stdout] 688 | |     }
[INFO] [stdout]     | |_____- not a free function, impl method or static
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: `#[warn(unused_attributes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling software_rasterizer v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: attribute should be applied to a free function, impl method or static
[INFO] [stdout]    --> src/graphics.rs:690:5
[INFO] [stdout]     |
[INFO] [stdout] 690 |       #[no_mangle]
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 691 | /     fn fill_triangle_tile<F>(
[INFO] [stdout] 692 | |         points: &mut [Vector4<f32>; 3],
[INFO] [stdout] 693 | |         depths: &Vector4<f32>,
[INFO] [stdout] 694 | |         tile_dim: Rect2D<i32>,
[INFO] [stdout] ...   |
[INFO] [stdout] 869 | |         }
[INFO] [stdout] 870 | |     }
[INFO] [stdout]     | |_____- not a free function, impl method or static
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[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/model.rs:319:43
[INFO] [stdout]     |
[INFO] [stdout] 319 |                 println!("Error: {}", err.description());
[INFO] [stdout]     |                                           ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Read`
[INFO] [stdout]   --> src/model.rs:14:24
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::io::{BufRead, Read};
[INFO] [stdout]    |                        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Buffer2D`
[INFO] [stdout]  --> src/model.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |         Buffer2D,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w`
[INFO] [stdout]    --> src/image/buffer.rs:192:26
[INFO] [stdout]     |
[INFO] [stdout] 192 |     fn resize(&mut self, w:i32,h:i32){
[INFO] [stdout]     |                          ^ help: if this is intentional, prefix it with an underscore: `_w`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `h`
[INFO] [stdout]    --> src/image/buffer.rs:192:32
[INFO] [stdout]     |
[INFO] [stdout] 192 |     fn resize(&mut self, w:i32,h:i32){
[INFO] [stdout]     |                                ^ help: if this is intentional, prefix it with an underscore: `_h`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/image.rs:183:17
[INFO] [stdout]     |
[INFO] [stdout] 183 |     if let Some(mut texture) = result{
[INFO] [stdout]     |                 ----^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/graphics.rs:670:25
[INFO] [stdout]     |
[INFO] [stdout] 670 |                     let mut tl_tile_bary = fr + delta_x * (off_x as f32) + delta_y * (off_y as f32);
[INFO] [stdout]     |                         ----^^^^^^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `f` is never read
[INFO] [stdout]    --> src/graphics.rs:721:18
[INFO] [stdout]     |
[INFO] [stdout] 721 |         let (mut f, mut fr) = (Vector4::zeros(), *fr);
[INFO] [stdout]     |                  ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `grid_table`
[INFO] [stdout]    --> src/graphics.rs:734:13
[INFO] [stdout]     |
[INFO] [stdout] 734 |         let grid_table = [world_z_tl, world_z_tr, world_z_bl, world_z_br];
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_grid_table`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `points`
[INFO] [stdout]    --> src/graphics.rs:692:9
[INFO] [stdout]     |
[INFO] [stdout] 692 |         points: &mut [Vector4<f32>; 3],
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_points`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `glbs`
[INFO] [stdout]    --> src/graphics.rs:895:5
[INFO] [stdout]     |
[INFO] [stdout] 895 |     glbs: &ShaderGlobals,
[INFO] [stdout]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_glbs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TILE_RAD_SQRD` is never used
[INFO] [stdout]    --> src/graphics.rs:586:15
[INFO] [stdout]     |
[INFO] [stdout] 586 |         const TILE_RAD_SQRD: i32 = TILE_W * TILE_W / 4 + TILE_H * TILE_H / 4;
[INFO] [stdout]     |               ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `custom_frag_shader` is never used
[INFO] [stdout]    --> src/graphics.rs:891:4
[INFO] [stdout]     |
[INFO] [stdout] 891 | fn custom_frag_shader<BUF: Buffer2D<u32>>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 31 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::mem;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time`
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::time;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `software_rasterizer::containers::*`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use software_rasterizer::containers::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Matrix4`, `Translation3`, `Vector2`
[INFO] [stdout]   --> src/main.rs:11:16
[INFO] [stdout]    |
[INFO] [stdout] 11 | use nalgebra::{Matrix4, Rotation3, Translation3, Unit, Vector2, Vector3, Vector4};
[INFO] [stdout]    |                ^^^^^^^             ^^^^^^^^^^^^        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `software_rasterizer::math_util::fixed_point::*`
[INFO] [stdout]   --> src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use software_rasterizer::math_util::fixed_point::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LinearSampler2D`, `TiledBuffer2D`
[INFO] [stdout]   --> src/main.rs:20:31
[INFO] [stdout]    |
[INFO] [stdout] 20 |         buffer::{RowBuffer2D, TiledBuffer2D},
[INFO] [stdout]    |                               ^^^^^^^^^^^^^
[INFO] [stdout] 21 |         sampler::{LinearSampler2D, NearestSampler2D, Sampler2D},
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bounding`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     bounding::*,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `x_pos` is never read
[INFO] [stdout]    --> src/main.rs:217:9
[INFO] [stdout]     |
[INFO] [stdout] 217 |         x_pos = _mouse_state.x() as f32;
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `y_pos` is never read
[INFO] [stdout]    --> src/main.rs:218:9
[INFO] [stdout]     |
[INFO] [stdout] 218 |         y_pos = _mouse_state.y() as f32;
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::super::math_util::fixed_point::*`
[INFO] [stdout]  --> src/image/sampler.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use super::super::math_util::fixed_point::*; 
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `png::Transformations`
[INFO] [stdout]    --> src/image.rs:121:9
[INFO] [stdout]     |
[INFO] [stdout] 121 |     use png::Transformations;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LinearSampler2D`, `sampler`
[INFO] [stdout]   --> src/graphics.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |         sampler,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 14 |         sampler::{LinearSampler2D, NearestSampler2D, Sampler2D},
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/main.rs:272:39
[INFO] [stdout]     |
[INFO] [stdout] 272 |                     Keycode::Space => unsafe {
[INFO] [stdout]     |                                       ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp`
[INFO] [stdout]  --> src/math_util/geometry.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::cmp;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::event::*`
[INFO] [stdout]  --> src/system/video.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use sdl2::event::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::keyboard::Keycode`
[INFO] [stdout]  --> src/system/video.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use sdl2::keyboard::Keycode;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Color`
[INFO] [stdout]  --> src/system/video.rs:8:20
[INFO] [stdout]   |
[INFO] [stdout] 8 | use sdl2::pixels::{Color, PixelFormatEnum};
[INFO] [stdout]   |                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::rect::Rect`
[INFO] [stdout]   --> src/system/video.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use sdl2::rect::Rect;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Canvas`, `TextureAccess`, `Texture`
[INFO] [stdout]   --> src/system/video.rs:12:20
[INFO] [stdout]    |
[INFO] [stdout] 12 | use sdl2::render::{Canvas, Texture, TextureAccess};
[INFO] [stdout]    |                    ^^^^^^  ^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]   --> src/system/video.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::cell::RefCell;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]   --> src/system/video.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::rc::Rc;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::slice`
[INFO] [stdout]   --> src/system/video.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use std::slice;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem`
[INFO] [stdout]   --> src/system/video.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::mem;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::marker`
[INFO] [stdout]   --> src/system/video.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use std::marker; 
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TiledBuffer2D`
[INFO] [stdout]  --> src/model.rs:5:31
[INFO] [stdout]   |
[INFO] [stdout] 5 |         buffer::{RowBuffer2D, TiledBuffer2D},
[INFO] [stdout]   |                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vector2`
[INFO] [stdout]   --> src/model.rs:11:31
[INFO] [stdout]    |
[INFO] [stdout] 11 | use nalgebra::{Matrix4, Unit, Vector2, Vector3, Vector4};
[INFO] [stdout]    |                               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: attribute should be applied to a free function, impl method or static
[INFO] [stdout]    --> src/graphics.rs:566:5
[INFO] [stdout]     |
[INFO] [stdout] 566 |       #[no_mangle]
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 567 | /     fn draw_triangle<F>(
[INFO] [stdout] 568 | |         &mut self,
[INFO] [stdout] 569 | |         attribs: &TriangleData,
[INFO] [stdout] 570 | |         globals: &ShaderGlobals,
[INFO] [stdout] ...   |
[INFO] [stdout] 687 | |         }
[INFO] [stdout] 688 | |     }
[INFO] [stdout]     | |_____- not a free function, impl method or static
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: `#[warn(unused_attributes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: attribute should be applied to a free function, impl method or static
[INFO] [stdout]    --> src/graphics.rs:690:5
[INFO] [stdout]     |
[INFO] [stdout] 690 |       #[no_mangle]
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 691 | /     fn fill_triangle_tile<F>(
[INFO] [stdout] 692 | |         points: &mut [Vector4<f32>; 3],
[INFO] [stdout] 693 | |         depths: &Vector4<f32>,
[INFO] [stdout] 694 | |         tile_dim: Rect2D<i32>,
[INFO] [stdout] ...   |
[INFO] [stdout] 869 | |         }
[INFO] [stdout] 870 | |     }
[INFO] [stdout]     | |_____- not a free function, impl method or static
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[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/model.rs:319:43
[INFO] [stdout]     |
[INFO] [stdout] 319 |                 println!("Error: {}", err.description());
[INFO] [stdout]     |                                           ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Read`
[INFO] [stdout]   --> src/model.rs:14:24
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::io::{BufRead, Read};
[INFO] [stdout]    |                        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Buffer2D`
[INFO] [stdout]  --> src/model.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |         Buffer2D,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w`
[INFO] [stdout]    --> src/image/buffer.rs:192:26
[INFO] [stdout]     |
[INFO] [stdout] 192 |     fn resize(&mut self, w:i32,h:i32){
[INFO] [stdout]     |                          ^ help: if this is intentional, prefix it with an underscore: `_w`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `h`
[INFO] [stdout]    --> src/image/buffer.rs:192:32
[INFO] [stdout]     |
[INFO] [stdout] 192 |     fn resize(&mut self, w:i32,h:i32){
[INFO] [stdout]     |                                ^ help: if this is intentional, prefix it with an underscore: `_h`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/image.rs:183:17
[INFO] [stdout]     |
[INFO] [stdout] 183 |     if let Some(mut texture) = result{
[INFO] [stdout]     |                 ----^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/graphics.rs:670:25
[INFO] [stdout]     |
[INFO] [stdout] 670 |                     let mut tl_tile_bary = fr + delta_x * (off_x as f32) + delta_y * (off_y as f32);
[INFO] [stdout]     |                         ----^^^^^^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `f` is never read
[INFO] [stdout]    --> src/graphics.rs:721:18
[INFO] [stdout]     |
[INFO] [stdout] 721 |         let (mut f, mut fr) = (Vector4::zeros(), *fr);
[INFO] [stdout]     |                  ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `grid_table`
[INFO] [stdout]    --> src/graphics.rs:734:13
[INFO] [stdout]     |
[INFO] [stdout] 734 |         let grid_table = [world_z_tl, world_z_tr, world_z_bl, world_z_br];
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_grid_table`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `points`
[INFO] [stdout]    --> src/graphics.rs:692:9
[INFO] [stdout]     |
[INFO] [stdout] 692 |         points: &mut [Vector4<f32>; 3],
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_points`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `glbs`
[INFO] [stdout]    --> src/graphics.rs:895:5
[INFO] [stdout]     |
[INFO] [stdout] 895 |     glbs: &ShaderGlobals,
[INFO] [stdout]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_glbs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TILE_RAD_SQRD` is never used
[INFO] [stdout]    --> src/graphics.rs:586:15
[INFO] [stdout]     |
[INFO] [stdout] 586 |         const TILE_RAD_SQRD: i32 = TILE_W * TILE_W / 4 + TILE_H * TILE_H / 4;
[INFO] [stdout]     |               ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `custom_frag_shader` is never used
[INFO] [stdout]    --> src/graphics.rs:891:4
[INFO] [stdout]     |
[INFO] [stdout] 891 | fn custom_frag_shader<BUF: Buffer2D<u32>>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 11 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 31 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 1.72s
[INFO] running `Command { std: "docker" "inspect" "4541dee2f12fba7964ecfca91af3617f6cfbf53897fb0a4071211f8a65063b1d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4541dee2f12fba7964ecfca91af3617f6cfbf53897fb0a4071211f8a65063b1d", kill_on_drop: false }`
[INFO] [stdout] 4541dee2f12fba7964ecfca91af3617f6cfbf53897fb0a4071211f8a65063b1d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.76.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 90e702eb34a5b52d4436029f51d0b8a80a4f8b01d7e5accf83aee87719d261a7
[INFO] running `Command { std: "docker" "start" "-a" "90e702eb34a5b52d4436029f51d0b8a80a4f8b01d7e5accf83aee87719d261a7", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `super::super::math_util::fixed_point::*`
[INFO] [stderr]  --> src/image/sampler.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use super::super::math_util::fixed_point::*; 
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `png::Transformations`
[INFO] [stderr]    --> src/image.rs:121:9
[INFO] [stderr]     |
[INFO] [stderr] 121 |     use png::Transformations;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `LinearSampler2D`, `sampler`
[INFO] [stderr]   --> src/graphics.rs:13:9
[INFO] [stderr]    |
[INFO] [stderr] 13 |         sampler,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 14 |         sampler::{LinearSampler2D, NearestSampler2D, Sampler2D},
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::cmp`
[INFO] [stderr]  --> src/math_util/geometry.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use std::cmp;
[INFO] [stderr]   |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `sdl2::event::*`
[INFO] [stderr]  --> src/system/video.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use sdl2::event::*;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `sdl2::keyboard::Keycode`
[INFO] [stderr]  --> src/system/video.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use sdl2::keyboard::Keycode;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Color`
[INFO] [stderr]  --> src/system/video.rs:8:20
[INFO] [stderr]   |
[INFO] [stderr] 8 | use sdl2::pixels::{Color, PixelFormatEnum};
[INFO] [stderr]   |                    ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `sdl2::rect::Rect`
[INFO] [stderr]   --> src/system/video.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use sdl2::rect::Rect;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Canvas`, `TextureAccess`, `Texture`
[INFO] [stderr]   --> src/system/video.rs:12:20
[INFO] [stderr]    |
[INFO] [stderr] 12 | use sdl2::render::{Canvas, Texture, TextureAccess};
[INFO] [stderr]    |                    ^^^^^^  ^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::cell::RefCell`
[INFO] [stderr]   --> src/system/video.rs:16:5
[INFO] [stderr]    |
[INFO] [stderr] 16 | use std::cell::RefCell;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::rc::Rc`
[INFO] [stderr]   --> src/system/video.rs:17:5
[INFO] [stderr]    |
[INFO] [stderr] 17 | use std::rc::Rc;
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::slice`
[INFO] [stderr]   --> src/system/video.rs:19:5
[INFO] [stderr]    |
[INFO] [stderr] 19 | use std::slice;
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::mem`
[INFO] [stderr]   --> src/system/video.rs:21:5
[INFO] [stderr]    |
[INFO] [stderr] 21 | use std::mem;
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::marker`
[INFO] [stderr]   --> src/system/video.rs:22:5
[INFO] [stderr]    |
[INFO] [stderr] 22 | use std::marker; 
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `TiledBuffer2D`
[INFO] [stderr]  --> src/model.rs:5:31
[INFO] [stderr]   |
[INFO] [stderr] 5 |         buffer::{RowBuffer2D, TiledBuffer2D},
[INFO] [stderr]   |                               ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Vector2`
[INFO] [stderr]   --> src/model.rs:11:31
[INFO] [stderr]    |
[INFO] [stderr] 11 | use nalgebra::{Matrix4, Unit, Vector2, Vector3, Vector4};
[INFO] [stderr]    |                               ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: attribute should be applied to a free function, impl method or static
[INFO] [stderr]    --> src/graphics.rs:566:5
[INFO] [stderr]     |
[INFO] [stderr] 566 |       #[no_mangle]
[INFO] [stderr]     |       ^^^^^^^^^^^^
[INFO] [stderr] 567 | /     fn draw_triangle<F>(
[INFO] [stderr] 568 | |         &mut self,
[INFO] [stderr] 569 | |         attribs: &TriangleData,
[INFO] [stderr] 570 | |         globals: &ShaderGlobals,
[INFO] [stderr] ...   |
[INFO] [stderr] 687 | |         }
[INFO] [stderr] 688 | |     }
[INFO] [stderr]     | |_____- not a free function, impl method or static
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: `#[warn(unused_attributes)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: attribute should be applied to a free function, impl method or static
[INFO] [stderr]    --> src/graphics.rs:690:5
[INFO] [stderr]     |
[INFO] [stderr] 690 |       #[no_mangle]
[INFO] [stderr]     |       ^^^^^^^^^^^^
[INFO] [stderr] 691 | /     fn fill_triangle_tile<F>(
[INFO] [stderr] 692 | |         points: &mut [Vector4<f32>; 3],
[INFO] [stderr] 693 | |         depths: &Vector4<f32>,
[INFO] [stderr] 694 | |         tile_dim: Rect2D<i32>,
[INFO] [stderr] ...   |
[INFO] [stderr] 869 | |         }
[INFO] [stderr] 870 | |     }
[INFO] [stderr]     | |_____- not a free function, impl method or static
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]    --> src/model.rs:319:43
[INFO] [stderr]     |
[INFO] [stderr] 319 |                 println!("Error: {}", err.description());
[INFO] [stderr]     |                                           ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Read`
[INFO] [stderr]   --> src/model.rs:14:24
[INFO] [stderr]    |
[INFO] [stderr] 14 | use std::io::{BufRead, Read};
[INFO] [stderr]    |                        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Buffer2D`
[INFO] [stderr]  --> src/model.rs:6:9
[INFO] [stderr]   |
[INFO] [stderr] 6 |         Buffer2D,
[INFO] [stderr]   |         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `w`
[INFO] [stderr]    --> src/image/buffer.rs:192:26
[INFO] [stderr]     |
[INFO] [stderr] 192 |     fn resize(&mut self, w:i32,h:i32){
[INFO] [stderr]     |                          ^ help: if this is intentional, prefix it with an underscore: `_w`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `h`
[INFO] [stderr]    --> src/image/buffer.rs:192:32
[INFO] [stderr]     |
[INFO] [stderr] 192 |     fn resize(&mut self, w:i32,h:i32){
[INFO] [stderr]     |                                ^ help: if this is intentional, prefix it with an underscore: `_h`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/image.rs:183:17
[INFO] [stderr]     |
[INFO] [stderr] 183 |     if let Some(mut texture) = result{
[INFO] [stderr]     |                 ----^^^^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/graphics.rs:670:25
[INFO] [stderr]     |
[INFO] [stderr] 670 |                     let mut tl_tile_bary = fr + delta_x * (off_x as f32) + delta_y * (off_y as f32);
[INFO] [stderr]     |                         ----^^^^^^^^^^^^
[INFO] [stderr]     |                         |
[INFO] [stderr]     |                         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `f` is never read
[INFO] [stderr]    --> src/graphics.rs:721:18
[INFO] [stderr]     |
[INFO] [stderr] 721 |         let (mut f, mut fr) = (Vector4::zeros(), *fr);
[INFO] [stderr]     |                  ^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `grid_table`
[INFO] [stderr]    --> src/graphics.rs:734:13
[INFO] [stderr]     |
[INFO] [stderr] 734 |         let grid_table = [world_z_tl, world_z_tr, world_z_bl, world_z_br];
[INFO] [stderr]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_grid_table`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `points`
[INFO] [stderr]    --> src/graphics.rs:692:9
[INFO] [stderr]     |
[INFO] [stderr] 692 |         points: &mut [Vector4<f32>; 3],
[INFO] [stderr]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_points`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `glbs`
[INFO] [stderr]    --> src/graphics.rs:895:5
[INFO] [stderr]     |
[INFO] [stderr] 895 |     glbs: &ShaderGlobals,
[INFO] [stderr]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_glbs`
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TILE_RAD_SQRD` is never used
[INFO] [stderr]    --> src/graphics.rs:586:15
[INFO] [stderr]     |
[INFO] [stderr] 586 |         const TILE_RAD_SQRD: i32 = TILE_W * TILE_W / 4 + TILE_H * TILE_H / 4;
[INFO] [stderr]     |               ^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `custom_frag_shader` is never used
[INFO] [stderr]    --> src/graphics.rs:891:4
[INFO] [stderr]     |
[INFO] [stderr] 891 | fn custom_frag_shader<BUF: Buffer2D<u32>>(
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `software_rasterizer` (lib) generated 31 warnings (run `cargo fix --lib -p software_rasterizer` to apply 23 suggestions)
[INFO] [stderr] warning: `software_rasterizer` (lib test) generated 31 warnings (31 duplicates)
[INFO] [stderr] warning: unused import: `std::mem`
[INFO] [stderr]  --> src/main.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use std::mem;
[INFO] [stderr]   |     ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::thread`
[INFO] [stderr]  --> src/main.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use std::thread;
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::time`
[INFO] [stderr]  --> src/main.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use std::time;
[INFO] [stderr]   |     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `software_rasterizer::containers::*`
[INFO] [stderr]  --> src/main.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use software_rasterizer::containers::*;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Matrix4`, `Translation3`, `Vector2`
[INFO] [stderr]   --> src/main.rs:11:16
[INFO] [stderr]    |
[INFO] [stderr] 11 | use nalgebra::{Matrix4, Rotation3, Translation3, Unit, Vector2, Vector3, Vector4};
[INFO] [stderr]    |                ^^^^^^^             ^^^^^^^^^^^^        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `software_rasterizer::math_util::fixed_point::*`
[INFO] [stderr]   --> src/main.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 13 | use software_rasterizer::math_util::fixed_point::*;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `LinearSampler2D`, `TiledBuffer2D`
[INFO] [stderr]   --> src/main.rs:20:31
[INFO] [stderr]    |
[INFO] [stderr] 20 |         buffer::{RowBuffer2D, TiledBuffer2D},
[INFO] [stderr]    |                               ^^^^^^^^^^^^^
[INFO] [stderr] 21 |         sampler::{LinearSampler2D, NearestSampler2D, Sampler2D},
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `bounding`
[INFO] [stderr]   --> src/main.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 15 |     bounding::*,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `x_pos` is never read
[INFO] [stderr]    --> src/main.rs:217:9
[INFO] [stderr]     |
[INFO] [stderr] 217 |         x_pos = _mouse_state.x() as f32;
[INFO] [stderr]     |         ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `y_pos` is never read
[INFO] [stderr]    --> src/main.rs:218:9
[INFO] [stderr]     |
[INFO] [stderr] 218 |         y_pos = _mouse_state.y() as f32;
[INFO] [stderr]     |         ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]    --> src/main.rs:272:39
[INFO] [stderr]     |
[INFO] [stderr] 272 |                     Keycode::Space => unsafe {
[INFO] [stderr]     |                                       ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_unsafe)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `software_rasterizer` (bin "software_rasterizer" test) generated 11 warnings (run `cargo fix --bin "software_rasterizer" --tests` to apply 7 suggestions)
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.05s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/software_rasterizer-083a93e74c9af212)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test containers::dll_test1 ... ok
[INFO] [stdout] test math_util::math_tests::fixed_point_tests::convertion_test ... FAILED
[INFO] [stdout] test image::buffer::buffer_tests::tile2d_test ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- math_util::math_tests::fixed_point_tests::convertion_test stdout ----
[INFO] [stdout] 
[INFO] [stdout]   ┌              ┐
[INFO] [stdout]   │ 0.0000000000 │
[INFO] [stdout]   │ 7.0000000000 │
[INFO] [stdout]   │ 0.0000000000 │
[INFO] [stdout]   │ 0.8999999762 │
[INFO] [stdout]   └              ┘
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] thread 'math_util::math_tests::fixed_point_tests::convertion_test' panicked at src/math_util/math_tests/fixed_point_tests.rs:29:5:
[INFO] [stdout] test not implemented
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x56033d0bd146 - std::backtrace_rs::backtrace::libunwind::trace::hbee8a7973eeb6c93
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5
[INFO] [stdout]    1:     0x56033d0bd146 - std::backtrace_rs::backtrace::trace_unsynchronized::hc8ac75eea3aa6899
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x56033d0bd146 - std::sys_common::backtrace::_print_fmt::hc7f3e3b5298b1083
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/sys_common/backtrace.rs:68:5
[INFO] [stdout]    3:     0x56033d0bd146 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hbb235daedd7c6190
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/sys_common/backtrace.rs:44:22
[INFO] [stdout]    4:     0x56033d0e65d0 - core::fmt::rt::Argument::fmt::h76c38a80d925a410
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/fmt/rt.rs:142:9
[INFO] [stdout]    5:     0x56033d0e65d0 - core::fmt::write::h3ed6aeaa977c8e45
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/fmt/mod.rs:1120:17
[INFO] [stdout]    6:     0x56033d0babaf - std::io::Write::write_fmt::h1299aa7741865f2b
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/io/mod.rs:1810:15
[INFO] [stdout]    7:     0x56033d0bcf24 - std::sys_common::backtrace::_print::h5d645a07e0fcfdbb
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/sys_common/backtrace.rs:47:5
[INFO] [stdout]    8:     0x56033d0bcf24 - std::sys_common::backtrace::print::h85035a511aafe7a8
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/sys_common/backtrace.rs:34:9
[INFO] [stdout]    9:     0x56033d0bec97 - std::panicking::default_hook::{{closure}}::hcce8cea212785a25
[INFO] [stdout]   10:     0x56033d0be97d - std::panicking::default_hook::hf5fcb0f213fe709a
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/panicking.rs:289:9
[INFO] [stdout]   11:     0x56033d08a0f7 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h60265c2dfa87ee34
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/alloc/src/boxed.rs:2029:9
[INFO] [stdout]   12:     0x56033d08a0f7 - test::test_main::{{closure}}::h77865bd3127078c6
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/test/src/lib.rs:138:21
[INFO] [stdout]   13:     0x56033d0bf2b6 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hbc5ccf4eb663e1e5
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/alloc/src/boxed.rs:2029:9
[INFO] [stdout]   14:     0x56033d0bf2b6 - std::panicking::rust_panic_with_hook::h095fccf1dc9379ee
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/panicking.rs:783:13
[INFO] [stdout]   15:     0x56033d096028 - std::panicking::begin_panic::{{closure}}::h5722d3fc78d5a522
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/panicking.rs:687:9
[INFO] [stdout]   16:     0x56033d095f6a - std::sys_common::backtrace::__rust_end_short_backtrace::h4967afcd0028205f
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/sys_common/backtrace.rs:171:18
[INFO] [stdout]   17:     0x56033d095fa7 - std::panicking::begin_panic::h6dfd6463e91e7a1c
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/panicking.rs:686:12
[INFO] [stdout]   18:     0x56033d05550f - software_rasterizer::math_util::math_tests::fixed_point_tests::convertion_test::h889fec7dd93b5e36
[INFO] [stdout]                                at /opt/rustwide/workdir/src/math_util/math_tests/fixed_point_tests.rs:29:5
[INFO] [stdout]   19:     0x56033d055127 - software_rasterizer::math_util::math_tests::fixed_point_tests::convertion_test::{{closure}}::hbe001a86b5bd4527
[INFO] [stdout]                                at /opt/rustwide/workdir/src/math_util/math_tests/fixed_point_tests.rs:3:21
[INFO] [stdout]   20:     0x56033d0516f6 - core::ops::function::FnOnce::call_once::he0bf2869aa3aefaf
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   21:     0x56033d08f9cf - core::ops::function::FnOnce::call_once::h8dc6907944022cf6
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x56033d08f9cf - test::__rust_begin_short_backtrace::haae1a87433f1efb3
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/test/src/lib.rs:627:18
[INFO] [stdout]   23:     0x56033d08e751 - test::run_test_in_process::{{closure}}::h8c7decfa7c14e152
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/test/src/lib.rs:650:60
[INFO] [stdout]   24:     0x56033d08e751 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h19e6ff056d9d21e9
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   25:     0x56033d08e751 - std::panicking::try::do_call::h89c848fcaa37c035
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/panicking.rs:552:40
[INFO] [stdout]   26:     0x56033d08e751 - std::panicking::try::h57ab3dc74e2839b8
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/panicking.rs:516:19
[INFO] [stdout]   27:     0x56033d08e751 - std::panic::catch_unwind::hfb6a1b1abc120fb9
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/panic.rs:142:14
[INFO] [stdout]   28:     0x56033d08e751 - test::run_test_in_process::h5ae2f9875edd562d
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/test/src/lib.rs:650:27
[INFO] [stdout]   29:     0x56033d08e751 - test::run_test::{{closure}}::h35d7300d8928a067
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/test/src/lib.rs:573:43
[INFO] [stdout]   30:     0x56033d055a86 - test::run_test::{{closure}}::h7525ced405d23d1b
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/test/src/lib.rs:601:41
[INFO] [stdout]   31:     0x56033d055a86 - std::sys_common::backtrace::__rust_begin_short_backtrace::h4e7db78ce05afad8
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/sys_common/backtrace.rs:155:18
[INFO] [stdout]   32:     0x56033d05aae7 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hcfbcb64f1a1b3482
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/thread/mod.rs:529:17
[INFO] [stdout]   33:     0x56033d05aae7 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h9d89c5c4108bd689
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   34:     0x56033d05aae7 - std::panicking::try::do_call::h8a4869bc94ec50c9
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/panicking.rs:552:40
[INFO] [stdout]   35:     0x56033d05aae7 - std::panicking::try::h9a576f20ff81ac30
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/panicking.rs:516:19
[INFO] [stdout]   36:     0x56033d05aae7 - std::panic::catch_unwind::hbcb4e3f860ef9830
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/panic.rs:142:14
[INFO] [stdout]   37:     0x56033d05aae7 - std::thread::Builder::spawn_unchecked_::{{closure}}::h93c79a6be1505948
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/thread/mod.rs:528:30
[INFO] [stdout]   38:     0x56033d05aae7 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h426d96740c81bdaf
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   39:     0x56033d0c3d65 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h12de4fc57affb195
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/alloc/src/boxed.rs:2015:9
[INFO] [stdout]   40:     0x56033d0c3d65 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h3c619f45059d5cf1
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/alloc/src/boxed.rs:2015:9
[INFO] [stdout]   41:     0x56033d0c3d65 - std::sys::unix::thread::Thread::new::thread_start::hbac657605e4b7389
[INFO] [stdout]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/sys/unix/thread.rs:108:17
[INFO] [stdout]   42:     0x7f2030c81ac3 - <unknown>
[INFO] [stdout]   43:     0x7f2030d12bf4 - __clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     math_util::math_tests::fixed_point_tests::convertion_test
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 2 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "90e702eb34a5b52d4436029f51d0b8a80a4f8b01d7e5accf83aee87719d261a7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "90e702eb34a5b52d4436029f51d0b8a80a4f8b01d7e5accf83aee87719d261a7", kill_on_drop: false }`
[INFO] [stdout] 90e702eb34a5b52d4436029f51d0b8a80a4f8b01d7e5accf83aee87719d261a7
[INFO] testing K-C-DaCosta/Software-Rasterizer against beta-2024-02-10 for beta-1.77-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FK-C-DaCosta%2FSoftware-Rasterizer" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/K-C-DaCosta/Software-Rasterizer on toolchain beta-2024-02-10
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2024-02-10" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] removed /workspace/builds/worker-6-tc2/source/.cargo/config
[INFO] started tweaking git repo https://github.com/K-C-DaCosta/Software-Rasterizer
[INFO] finished tweaking git repo https://github.com/K-C-DaCosta/Software-Rasterizer
[INFO] tweaked toml for git repo https://github.com/K-C-DaCosta/Software-Rasterizer written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/K-C-DaCosta/Software-Rasterizer 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" "+beta-2024-02-10" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2024-02-10" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 340de45cb0c4f0ebd51755bf77a87c1623b43fbf9e3584c87f91a2951ab39583
[INFO] running `Command { std: "docker" "start" "-a" "340de45cb0c4f0ebd51755bf77a87c1623b43fbf9e3584c87f91a2951ab39583", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "340de45cb0c4f0ebd51755bf77a87c1623b43fbf9e3584c87f91a2951ab39583", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "340de45cb0c4f0ebd51755bf77a87c1623b43fbf9e3584c87f91a2951ab39583", kill_on_drop: false }`
[INFO] [stdout] 340de45cb0c4f0ebd51755bf77a87c1623b43fbf9e3584c87f91a2951ab39583
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2024-02-10" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4ced8f3300aeaa2e2d718cc3d6d394045fa1bded9dd621f976246cb1fee75035
[INFO] running `Command { std: "docker" "start" "-a" "4ced8f3300aeaa2e2d718cc3d6d394045fa1bded9dd621f976246cb1fee75035", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v1.0.0
[INFO] [stderr]    Compiling cfg-if v0.1.10
[INFO] [stderr]    Compiling libc v0.2.68
[INFO] [stderr]    Compiling libm v0.2.1
[INFO] [stderr]    Compiling proc-macro2 v1.0.10
[INFO] [stderr]    Compiling getrandom v0.1.14
[INFO] [stderr]    Compiling unicode-xid v0.2.0
[INFO] [stderr]    Compiling syn v1.0.17
[INFO] [stderr]    Compiling typenum v1.11.2
[INFO] [stderr]    Compiling ppv-lite86 v0.2.6
[INFO] [stderr]    Compiling byteorder v1.3.4
[INFO] [stderr]    Compiling proc-macro-hack v0.5.15
[INFO] [stderr]    Compiling bitflags v1.2.1
[INFO] [stderr]    Compiling crc32fast v1.2.0
[INFO] [stderr]    Compiling adler32 v1.0.4
[INFO] [stderr]    Compiling sdl2 v0.33.0
[INFO] [stderr]    Compiling sdl2-sys v0.33.0
[INFO] [stderr]    Compiling rawpointer v0.2.1
[INFO] [stderr]    Compiling matrixmultiply v0.2.3
[INFO] [stderr]    Compiling inflate v0.4.5
[INFO] [stderr]    Compiling lazy_static v1.4.0
[INFO] [stderr]    Compiling num-traits v0.2.11
[INFO] [stderr]    Compiling num-complex v0.2.4
[INFO] [stderr]    Compiling num-integer v0.1.42
[INFO] [stderr]    Compiling num-rational v0.2.4
[INFO] [stderr]    Compiling deflate v0.7.20
[INFO] [stderr]    Compiling quote v1.0.3
[INFO] [stderr]    Compiling rand_core v0.5.1
[INFO] [stderr]    Compiling rand_chacha v0.2.2
[INFO] [stderr]    Compiling png v0.15.3
[INFO] [stderr]    Compiling rand v0.7.3
[INFO] [stderr]    Compiling generic-array v0.13.2
[INFO] [stderr]    Compiling approx v0.3.2
[INFO] [stderr]    Compiling rand_distr v0.2.2
[INFO] [stderr]    Compiling paste-impl v0.1.10
[INFO] [stderr]    Compiling paste v0.1.10
[INFO] [stderr]    Compiling simba v0.1.2
[INFO] [stderr]    Compiling nalgebra v0.21.0
[INFO] [stderr]    Compiling software_rasterizer v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `super::super::math_util::fixed_point::*`
[INFO] [stdout]  --> src/image/sampler.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use super::super::math_util::fixed_point::*; 
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `png::Transformations`
[INFO] [stdout]    --> src/image.rs:121:9
[INFO] [stdout]     |
[INFO] [stdout] 121 |     use png::Transformations;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LinearSampler2D`, `sampler`
[INFO] [stdout]   --> src/graphics.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |         sampler,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 14 |         sampler::{LinearSampler2D, NearestSampler2D, Sampler2D},
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp`
[INFO] [stdout]  --> src/math_util/geometry.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::cmp;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::event::*`
[INFO] [stdout]  --> src/system/video.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use sdl2::event::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::keyboard::Keycode`
[INFO] [stdout]  --> src/system/video.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use sdl2::keyboard::Keycode;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Color`
[INFO] [stdout]  --> src/system/video.rs:8:20
[INFO] [stdout]   |
[INFO] [stdout] 8 | use sdl2::pixels::{Color, PixelFormatEnum};
[INFO] [stdout]   |                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::rect::Rect`
[INFO] [stdout]   --> src/system/video.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use sdl2::rect::Rect;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Canvas`, `TextureAccess`, `Texture`
[INFO] [stdout]   --> src/system/video.rs:12:20
[INFO] [stdout]    |
[INFO] [stdout] 12 | use sdl2::render::{Canvas, Texture, TextureAccess};
[INFO] [stdout]    |                    ^^^^^^  ^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]   --> src/system/video.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::cell::RefCell;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]   --> src/system/video.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::rc::Rc;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::slice`
[INFO] [stdout]   --> src/system/video.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use std::slice;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem`
[INFO] [stdout]   --> src/system/video.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::mem;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::marker`
[INFO] [stdout]   --> src/system/video.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use std::marker; 
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TiledBuffer2D`
[INFO] [stdout]  --> src/model.rs:5:31
[INFO] [stdout]   |
[INFO] [stdout] 5 |         buffer::{RowBuffer2D, TiledBuffer2D},
[INFO] [stdout]   |                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vector2`
[INFO] [stdout]   --> src/model.rs:11:31
[INFO] [stdout]    |
[INFO] [stdout] 11 | use nalgebra::{Matrix4, Unit, Vector2, Vector3, Vector4};
[INFO] [stdout]    |                               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: attribute should be applied to a free function, impl method or static
[INFO] [stdout]    --> src/graphics.rs:566:5
[INFO] [stdout]     |
[INFO] [stdout] 566 |       #[no_mangle]
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 567 | /     fn draw_triangle<F>(
[INFO] [stdout] 568 | |         &mut self,
[INFO] [stdout] 569 | |         attribs: &TriangleData,
[INFO] [stdout] 570 | |         globals: &ShaderGlobals,
[INFO] [stdout] ...   |
[INFO] [stdout] 687 | |         }
[INFO] [stdout] 688 | |     }
[INFO] [stdout]     | |_____- not a free function, impl method or static
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: `#[warn(unused_attributes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: attribute should be applied to a free function, impl method or static
[INFO] [stdout]    --> src/graphics.rs:690:5
[INFO] [stdout]     |
[INFO] [stdout] 690 |       #[no_mangle]
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 691 | /     fn fill_triangle_tile<F>(
[INFO] [stdout] 692 | |         points: &mut [Vector4<f32>; 3],
[INFO] [stdout] 693 | |         depths: &Vector4<f32>,
[INFO] [stdout] 694 | |         tile_dim: Rect2D<i32>,
[INFO] [stdout] ...   |
[INFO] [stdout] 869 | |         }
[INFO] [stdout] 870 | |     }
[INFO] [stdout]     | |_____- not a free function, impl method or static
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[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/model.rs:319:43
[INFO] [stdout]     |
[INFO] [stdout] 319 |                 println!("Error: {}", err.description());
[INFO] [stdout]     |                                           ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Read`
[INFO] [stdout]   --> src/model.rs:14:24
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::io::{BufRead, Read};
[INFO] [stdout]    |                        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Buffer2D`
[INFO] [stdout]  --> src/model.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |         Buffer2D,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w`
[INFO] [stdout]    --> src/image/buffer.rs:192:26
[INFO] [stdout]     |
[INFO] [stdout] 192 |     fn resize(&mut self, w:i32,h:i32){
[INFO] [stdout]     |                          ^ help: if this is intentional, prefix it with an underscore: `_w`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `h`
[INFO] [stdout]    --> src/image/buffer.rs:192:32
[INFO] [stdout]     |
[INFO] [stdout] 192 |     fn resize(&mut self, w:i32,h:i32){
[INFO] [stdout]     |                                ^ help: if this is intentional, prefix it with an underscore: `_h`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/image.rs:183:17
[INFO] [stdout]     |
[INFO] [stdout] 183 |     if let Some(mut texture) = result{
[INFO] [stdout]     |                 ----^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/graphics.rs:670:25
[INFO] [stdout]     |
[INFO] [stdout] 670 |                     let mut tl_tile_bary = fr + delta_x * (off_x as f32) + delta_y * (off_y as f32);
[INFO] [stdout]     |                         ----^^^^^^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `f` is never read
[INFO] [stdout]    --> src/graphics.rs:721:18
[INFO] [stdout]     |
[INFO] [stdout] 721 |         let (mut f, mut fr) = (Vector4::zeros(), *fr);
[INFO] [stdout]     |                  ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `grid_table`
[INFO] [stdout]    --> src/graphics.rs:734:13
[INFO] [stdout]     |
[INFO] [stdout] 734 |         let grid_table = [world_z_tl, world_z_tr, world_z_bl, world_z_br];
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_grid_table`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `points`
[INFO] [stdout]    --> src/graphics.rs:692:9
[INFO] [stdout]     |
[INFO] [stdout] 692 |         points: &mut [Vector4<f32>; 3],
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_points`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `glbs`
[INFO] [stdout]    --> src/graphics.rs:895:5
[INFO] [stdout]     |
[INFO] [stdout] 895 |     glbs: &ShaderGlobals,
[INFO] [stdout]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_glbs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TILE_RAD_SQRD` is never used
[INFO] [stdout]    --> src/graphics.rs:586:15
[INFO] [stdout]     |
[INFO] [stdout] 586 |         const TILE_RAD_SQRD: i32 = TILE_W * TILE_W / 4 + TILE_H * TILE_H / 4;
[INFO] [stdout]     |               ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `custom_frag_shader` is never used
[INFO] [stdout]    --> src/graphics.rs:891:4
[INFO] [stdout]     |
[INFO] [stdout] 891 | fn custom_frag_shader<BUF: Buffer2D<u32>>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 31 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::mem;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time`
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::time;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `software_rasterizer::containers::*`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use software_rasterizer::containers::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Matrix4`, `Translation3`, `Vector2`
[INFO] [stdout]   --> src/main.rs:11:16
[INFO] [stdout]    |
[INFO] [stdout] 11 | use nalgebra::{Matrix4, Rotation3, Translation3, Unit, Vector2, Vector3, Vector4};
[INFO] [stdout]    |                ^^^^^^^             ^^^^^^^^^^^^        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `software_rasterizer::math_util::fixed_point::*`
[INFO] [stdout]   --> src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use software_rasterizer::math_util::fixed_point::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LinearSampler2D`, `TiledBuffer2D`
[INFO] [stdout]   --> src/main.rs:20:31
[INFO] [stdout]    |
[INFO] [stdout] 20 |         buffer::{RowBuffer2D, TiledBuffer2D},
[INFO] [stdout]    |                               ^^^^^^^^^^^^^
[INFO] [stdout] 21 |         sampler::{LinearSampler2D, NearestSampler2D, Sampler2D},
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bounding`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     bounding::*,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `x_pos` is never read
[INFO] [stdout]    --> src/main.rs:217:9
[INFO] [stdout]     |
[INFO] [stdout] 217 |         x_pos = _mouse_state.x() as f32;
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `y_pos` is never read
[INFO] [stdout]    --> src/main.rs:218:9
[INFO] [stdout]     |
[INFO] [stdout] 218 |         y_pos = _mouse_state.y() as f32;
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/main.rs:272:39
[INFO] [stdout]     |
[INFO] [stdout] 272 |                     Keycode::Space => unsafe {
[INFO] [stdout]     |                                       ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 11 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 17.90s
[INFO] running `Command { std: "docker" "inspect" "4ced8f3300aeaa2e2d718cc3d6d394045fa1bded9dd621f976246cb1fee75035", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4ced8f3300aeaa2e2d718cc3d6d394045fa1bded9dd621f976246cb1fee75035", kill_on_drop: false }`
[INFO] [stdout] 4ced8f3300aeaa2e2d718cc3d6d394045fa1bded9dd621f976246cb1fee75035
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2024-02-10" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8627a6ed46438823a1ac981344bce9a0e735fd2293b61acf4a447cc05b00593e
[INFO] running `Command { std: "docker" "start" "-a" "8627a6ed46438823a1ac981344bce9a0e735fd2293b61acf4a447cc05b00593e", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `super::super::math_util::fixed_point::*`
[INFO] [stdout]  --> src/image/sampler.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use super::super::math_util::fixed_point::*; 
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `png::Transformations`
[INFO] [stdout]    --> src/image.rs:121:9
[INFO] [stdout]     |
[INFO] [stdout] 121 |     use png::Transformations;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LinearSampler2D`, `sampler`
[INFO] [stdout]   --> src/graphics.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |         sampler,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 14 |         sampler::{LinearSampler2D, NearestSampler2D, Sampler2D},
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp`
[INFO] [stdout]  --> src/math_util/geometry.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::cmp;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::event::*`
[INFO] [stdout]  --> src/system/video.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use sdl2::event::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::keyboard::Keycode`
[INFO] [stdout]  --> src/system/video.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use sdl2::keyboard::Keycode;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Color`
[INFO] [stdout]  --> src/system/video.rs:8:20
[INFO] [stdout]   |
[INFO] [stdout] 8 | use sdl2::pixels::{Color, PixelFormatEnum};
[INFO] [stdout]   |                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::rect::Rect`
[INFO] [stdout]   --> src/system/video.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use sdl2::rect::Rect;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Canvas`, `TextureAccess`, `Texture`
[INFO] [stdout]   --> src/system/video.rs:12:20
[INFO] [stdout]    |
[INFO] [stdout] 12 | use sdl2::render::{Canvas, Texture, TextureAccess};
[INFO] [stdout]    |                    ^^^^^^  ^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]   --> src/system/video.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::cell::RefCell;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]   --> src/system/video.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::rc::Rc;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::slice`
[INFO] [stdout]   --> src/system/video.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use std::slice;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem`
[INFO] [stdout]   --> src/system/video.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::mem;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::marker`
[INFO] [stdout]   --> src/system/video.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use std::marker; 
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TiledBuffer2D`
[INFO] [stdout]  --> src/model.rs:5:31
[INFO] [stdout]   |
[INFO] [stdout] 5 |         buffer::{RowBuffer2D, TiledBuffer2D},
[INFO] [stdout]   |                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vector2`
[INFO] [stdout]   --> src/model.rs:11:31
[INFO] [stdout]    |
[INFO] [stdout] 11 | use nalgebra::{Matrix4, Unit, Vector2, Vector3, Vector4};
[INFO] [stdout]    |                               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: attribute should be applied to a free function, impl method or static
[INFO] [stdout]    --> src/graphics.rs:566:5
[INFO] [stdout]     |
[INFO] [stdout] 566 |       #[no_mangle]
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 567 | /     fn draw_triangle<F>(
[INFO] [stdout] 568 | |         &mut self,
[INFO] [stdout] 569 | |         attribs: &TriangleData,
[INFO] [stdout] 570 | |         globals: &ShaderGlobals,
[INFO] [stdout] ...   |
[INFO] [stdout] 687 | |         }
[INFO] [stdout] 688 | |     }
[INFO] [stdout]     | |_____- not a free function, impl method or static
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: `#[warn(unused_attributes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: attribute should be applied to a free function, impl method or static
[INFO] [stdout]    --> src/graphics.rs:690:5
[INFO] [stdout]     |
[INFO] [stdout] 690 |       #[no_mangle]
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 691 | /     fn fill_triangle_tile<F>(
[INFO] [stdout] 692 | |         points: &mut [Vector4<f32>; 3],
[INFO] [stdout] 693 | |         depths: &Vector4<f32>,
[INFO] [stdout] 694 | |         tile_dim: Rect2D<i32>,
[INFO] [stdout] ...   |
[INFO] [stdout] 869 | |         }
[INFO] [stdout] 870 | |     }
[INFO] [stdout]     | |_____- not a free function, impl method or static
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[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/model.rs:319:43
[INFO] [stdout]     |
[INFO] [stdout] 319 |                 println!("Error: {}", err.description());
[INFO] [stdout]     |                                           ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Read`
[INFO] [stdout]   --> src/model.rs:14:24
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::io::{BufRead, Read};
[INFO] [stdout]    |                        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Buffer2D`
[INFO] [stdout]  --> src/model.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |         Buffer2D,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w`
[INFO] [stdout]    --> src/image/buffer.rs:192:26
[INFO] [stdout]     |
[INFO] [stdout] 192 |     fn resize(&mut self, w:i32,h:i32){
[INFO] [stdout]     |                          ^ help: if this is intentional, prefix it with an underscore: `_w`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `h`
[INFO] [stdout]    --> src/image/buffer.rs:192:32
[INFO] [stdout]     |
[INFO] [stdout] 192 |     fn resize(&mut self, w:i32,h:i32){
[INFO] [stdout]     |                                ^ help: if this is intentional, prefix it with an underscore: `_h`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/image.rs:183:17
[INFO] [stdout]     |
[INFO] [stdout] 183 |     if let Some(mut texture) = result{
[INFO] [stdout]     |                 ----^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/graphics.rs:670:25
[INFO] [stdout]     |
[INFO] [stdout] 670 |                     let mut tl_tile_bary = fr + delta_x * (off_x as f32) + delta_y * (off_y as f32);
[INFO] [stdout]     |                         ----^^^^^^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `f` is never read
[INFO] [stdout]    --> src/graphics.rs:721:18
[INFO] [stdout]     |
[INFO] [stdout] 721 |         let (mut f, mut fr) = (Vector4::zeros(), *fr);
[INFO] [stdout]     |                  ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `grid_table`
[INFO] [stdout]    --> src/graphics.rs:734:13
[INFO] [stdout]     |
[INFO] [stdout] 734 |         let grid_table = [world_z_tl, world_z_tr, world_z_bl, world_z_br];
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_grid_table`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `points`
[INFO] [stdout]    --> src/graphics.rs:692:9
[INFO] [stdout]     |
[INFO] [stdout] 692 |         points: &mut [Vector4<f32>; 3],
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_points`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `glbs`
[INFO] [stdout]    --> src/graphics.rs:895:5
[INFO] [stdout]     |
[INFO] [stdout] 895 |     glbs: &ShaderGlobals,
[INFO] [stdout]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_glbs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TILE_RAD_SQRD` is never used
[INFO] [stdout]    --> src/graphics.rs:586:15
[INFO] [stdout]     |
[INFO] [stdout] 586 |         const TILE_RAD_SQRD: i32 = TILE_W * TILE_W / 4 + TILE_H * TILE_H / 4;
[INFO] [stdout]     |               ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `custom_frag_shader` is never used
[INFO] [stdout]    --> src/graphics.rs:891:4
[INFO] [stdout]     |
[INFO] [stdout] 891 | fn custom_frag_shader<BUF: Buffer2D<u32>>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 31 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling software_rasterizer v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::mem`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::mem;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time`
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::time;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `software_rasterizer::containers::*`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use software_rasterizer::containers::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Matrix4`, `Translation3`, `Vector2`
[INFO] [stdout]   --> src/main.rs:11:16
[INFO] [stdout]    |
[INFO] [stdout] 11 | use nalgebra::{Matrix4, Rotation3, Translation3, Unit, Vector2, Vector3, Vector4};
[INFO] [stdout]    |                ^^^^^^^             ^^^^^^^^^^^^        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `software_rasterizer::math_util::fixed_point::*`
[INFO] [stdout]   --> src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use software_rasterizer::math_util::fixed_point::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LinearSampler2D`, `TiledBuffer2D`
[INFO] [stdout]   --> src/main.rs:20:31
[INFO] [stdout]    |
[INFO] [stdout] 20 |         buffer::{RowBuffer2D, TiledBuffer2D},
[INFO] [stdout]    |                               ^^^^^^^^^^^^^
[INFO] [stdout] 21 |         sampler::{LinearSampler2D, NearestSampler2D, Sampler2D},
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bounding`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     bounding::*,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `x_pos` is never read
[INFO] [stdout]    --> src/main.rs:217:9
[INFO] [stdout]     |
[INFO] [stdout] 217 |         x_pos = _mouse_state.x() as f32;
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `y_pos` is never read
[INFO] [stdout]    --> src/main.rs:218:9
[INFO] [stdout]     |
[INFO] [stdout] 218 |         y_pos = _mouse_state.y() as f32;
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::super::math_util::fixed_point::*`
[INFO] [stdout]  --> src/image/sampler.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use super::super::math_util::fixed_point::*; 
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `png::Transformations`
[INFO] [stdout]    --> src/image.rs:121:9
[INFO] [stdout]     |
[INFO] [stdout] 121 |     use png::Transformations;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LinearSampler2D`, `sampler`
[INFO] [stdout]   --> src/graphics.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |         sampler,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 14 |         sampler::{LinearSampler2D, NearestSampler2D, Sampler2D},
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp`
[INFO] [stdout]  --> src/math_util/geometry.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::cmp;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::event::*`
[INFO] [stdout]  --> src/system/video.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use sdl2::event::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::keyboard::Keycode`
[INFO] [stdout]  --> src/system/video.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use sdl2::keyboard::Keycode;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Color`
[INFO] [stdout]  --> src/system/video.rs:8:20
[INFO] [stdout]   |
[INFO] [stdout] 8 | use sdl2::pixels::{Color, PixelFormatEnum};
[INFO] [stdout]   |                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/main.rs:272:39
[INFO] [stdout]     |
[INFO] [stdout] 272 |                     Keycode::Space => unsafe {
[INFO] [stdout]     |                                       ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::rect::Rect`
[INFO] [stdout]   --> src/system/video.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use sdl2::rect::Rect;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Canvas`, `TextureAccess`, `Texture`
[INFO] [stdout]   --> src/system/video.rs:12:20
[INFO] [stdout]    |
[INFO] [stdout] 12 | use sdl2::render::{Canvas, Texture, TextureAccess};
[INFO] [stdout]    |                    ^^^^^^  ^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]   --> src/system/video.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::cell::RefCell;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]   --> src/system/video.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::rc::Rc;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::slice`
[INFO] [stdout]   --> src/system/video.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use std::slice;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem`
[INFO] [stdout]   --> src/system/video.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::mem;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::marker`
[INFO] [stdout]   --> src/system/video.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use std::marker; 
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TiledBuffer2D`
[INFO] [stdout]  --> src/model.rs:5:31
[INFO] [stdout]   |
[INFO] [stdout] 5 |         buffer::{RowBuffer2D, TiledBuffer2D},
[INFO] [stdout]   |                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vector2`
[INFO] [stdout]   --> src/model.rs:11:31
[INFO] [stdout]    |
[INFO] [stdout] 11 | use nalgebra::{Matrix4, Unit, Vector2, Vector3, Vector4};
[INFO] [stdout]    |                               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: attribute should be applied to a free function, impl method or static
[INFO] [stdout]    --> src/graphics.rs:566:5
[INFO] [stdout]     |
[INFO] [stdout] 566 |       #[no_mangle]
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 567 | /     fn draw_triangle<F>(
[INFO] [stdout] 568 | |         &mut self,
[INFO] [stdout] 569 | |         attribs: &TriangleData,
[INFO] [stdout] 570 | |         globals: &ShaderGlobals,
[INFO] [stdout] ...   |
[INFO] [stdout] 687 | |         }
[INFO] [stdout] 688 | |     }
[INFO] [stdout]     | |_____- not a free function, impl method or static
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: `#[warn(unused_attributes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: attribute should be applied to a free function, impl method or static
[INFO] [stdout]    --> src/graphics.rs:690:5
[INFO] [stdout]     |
[INFO] [stdout] 690 |       #[no_mangle]
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 691 | /     fn fill_triangle_tile<F>(
[INFO] [stdout] 692 | |         points: &mut [Vector4<f32>; 3],
[INFO] [stdout] 693 | |         depths: &Vector4<f32>,
[INFO] [stdout] 694 | |         tile_dim: Rect2D<i32>,
[INFO] [stdout] ...   |
[INFO] [stdout] 869 | |         }
[INFO] [stdout] 870 | |     }
[INFO] [stdout]     | |_____- not a free function, impl method or static
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[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/model.rs:319:43
[INFO] [stdout]     |
[INFO] [stdout] 319 |                 println!("Error: {}", err.description());
[INFO] [stdout]     |                                           ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Read`
[INFO] [stdout]   --> src/model.rs:14:24
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::io::{BufRead, Read};
[INFO] [stdout]    |                        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Buffer2D`
[INFO] [stdout]  --> src/model.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |         Buffer2D,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w`
[INFO] [stdout]    --> src/image/buffer.rs:192:26
[INFO] [stdout]     |
[INFO] [stdout] 192 |     fn resize(&mut self, w:i32,h:i32){
[INFO] [stdout]     |                          ^ help: if this is intentional, prefix it with an underscore: `_w`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `h`
[INFO] [stdout]    --> src/image/buffer.rs:192:32
[INFO] [stdout]     |
[INFO] [stdout] 192 |     fn resize(&mut self, w:i32,h:i32){
[INFO] [stdout]     |                                ^ help: if this is intentional, prefix it with an underscore: `_h`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/image.rs:183:17
[INFO] [stdout]     |
[INFO] [stdout] 183 |     if let Some(mut texture) = result{
[INFO] [stdout]     |                 ----^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/graphics.rs:670:25
[INFO] [stdout]     |
[INFO] [stdout] 670 |                     let mut tl_tile_bary = fr + delta_x * (off_x as f32) + delta_y * (off_y as f32);
[INFO] [stdout]     |                         ----^^^^^^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `f` is never read
[INFO] [stdout]    --> src/graphics.rs:721:18
[INFO] [stdout]     |
[INFO] [stdout] 721 |         let (mut f, mut fr) = (Vector4::zeros(), *fr);
[INFO] [stdout]     |                  ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `grid_table`
[INFO] [stdout]    --> src/graphics.rs:734:13
[INFO] [stdout]     |
[INFO] [stdout] 734 |         let grid_table = [world_z_tl, world_z_tr, world_z_bl, world_z_br];
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_grid_table`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `points`
[INFO] [stdout]    --> src/graphics.rs:692:9
[INFO] [stdout]     |
[INFO] [stdout] 692 |         points: &mut [Vector4<f32>; 3],
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_points`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `glbs`
[INFO] [stdout]    --> src/graphics.rs:895:5
[INFO] [stdout]     |
[INFO] [stdout] 895 |     glbs: &ShaderGlobals,
[INFO] [stdout]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_glbs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 11 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TILE_RAD_SQRD` is never used
[INFO] [stdout]    --> src/graphics.rs:586:15
[INFO] [stdout]     |
[INFO] [stdout] 586 |         const TILE_RAD_SQRD: i32 = TILE_W * TILE_W / 4 + TILE_H * TILE_H / 4;
[INFO] [stdout]     |               ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `custom_frag_shader` is never used
[INFO] [stdout]    --> src/graphics.rs:891:4
[INFO] [stdout]     |
[INFO] [stdout] 891 | fn custom_frag_shader<BUF: Buffer2D<u32>>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 31 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 1.67s
[INFO] running `Command { std: "docker" "inspect" "8627a6ed46438823a1ac981344bce9a0e735fd2293b61acf4a447cc05b00593e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8627a6ed46438823a1ac981344bce9a0e735fd2293b61acf4a447cc05b00593e", kill_on_drop: false }`
[INFO] [stdout] 8627a6ed46438823a1ac981344bce9a0e735fd2293b61acf4a447cc05b00593e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2024-02-10" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] bc8343da46b1fcff53930bee2c377c6e06904a1b2b64b82105286143852f83ec
[INFO] running `Command { std: "docker" "start" "-a" "bc8343da46b1fcff53930bee2c377c6e06904a1b2b64b82105286143852f83ec", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `super::super::math_util::fixed_point::*`
[INFO] [stderr]  --> src/image/sampler.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use super::super::math_util::fixed_point::*; 
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `png::Transformations`
[INFO] [stderr]    --> src/image.rs:121:9
[INFO] [stderr]     |
[INFO] [stderr] 121 |     use png::Transformations;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `LinearSampler2D`, `sampler`
[INFO] [stderr]   --> src/graphics.rs:13:9
[INFO] [stderr]    |
[INFO] [stderr] 13 |         sampler,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 14 |         sampler::{LinearSampler2D, NearestSampler2D, Sampler2D},
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::cmp`
[INFO] [stderr]  --> src/math_util/geometry.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use std::cmp;
[INFO] [stderr]   |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `sdl2::event::*`
[INFO] [stderr]  --> src/system/video.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use sdl2::event::*;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `sdl2::keyboard::Keycode`
[INFO] [stderr]  --> src/system/video.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use sdl2::keyboard::Keycode;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Color`
[INFO] [stderr]  --> src/system/video.rs:8:20
[INFO] [stderr]   |
[INFO] [stderr] 8 | use sdl2::pixels::{Color, PixelFormatEnum};
[INFO] [stderr]   |                    ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `sdl2::rect::Rect`
[INFO] [stderr]   --> src/system/video.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use sdl2::rect::Rect;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Canvas`, `TextureAccess`, `Texture`
[INFO] [stderr]   --> src/system/video.rs:12:20
[INFO] [stderr]    |
[INFO] [stderr] 12 | use sdl2::render::{Canvas, Texture, TextureAccess};
[INFO] [stderr]    |                    ^^^^^^  ^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::cell::RefCell`
[INFO] [stderr]   --> src/system/video.rs:16:5
[INFO] [stderr]    |
[INFO] [stderr] 16 | use std::cell::RefCell;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::rc::Rc`
[INFO] [stderr]   --> src/system/video.rs:17:5
[INFO] [stderr]    |
[INFO] [stderr] 17 | use std::rc::Rc;
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::slice`
[INFO] [stderr]   --> src/system/video.rs:19:5
[INFO] [stderr]    |
[INFO] [stderr] 19 | use std::slice;
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::mem`
[INFO] [stderr]   --> src/system/video.rs:21:5
[INFO] [stderr]    |
[INFO] [stderr] 21 | use std::mem;
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::marker`
[INFO] [stderr]   --> src/system/video.rs:22:5
[INFO] [stderr]    |
[INFO] [stderr] 22 | use std::marker; 
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `TiledBuffer2D`
[INFO] [stderr]  --> src/model.rs:5:31
[INFO] [stderr]   |
[INFO] [stderr] 5 |         buffer::{RowBuffer2D, TiledBuffer2D},
[INFO] [stderr]   |                               ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Vector2`
[INFO] [stderr]   --> src/model.rs:11:31
[INFO] [stderr]    |
[INFO] [stderr] 11 | use nalgebra::{Matrix4, Unit, Vector2, Vector3, Vector4};
[INFO] [stderr]    |                               ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: attribute should be applied to a free function, impl method or static
[INFO] [stderr]    --> src/graphics.rs:566:5
[INFO] [stderr]     |
[INFO] [stderr] 566 |       #[no_mangle]
[INFO] [stderr]     |       ^^^^^^^^^^^^
[INFO] [stderr] 567 | /     fn draw_triangle<F>(
[INFO] [stderr] 568 | |         &mut self,
[INFO] [stderr] 569 | |         attribs: &TriangleData,
[INFO] [stderr] 570 | |         globals: &ShaderGlobals,
[INFO] [stderr] ...   |
[INFO] [stderr] 687 | |         }
[INFO] [stderr] 688 | |     }
[INFO] [stderr]     | |_____- not a free function, impl method or static
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: `#[warn(unused_attributes)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: attribute should be applied to a free function, impl method or static
[INFO] [stderr]    --> src/graphics.rs:690:5
[INFO] [stderr]     |
[INFO] [stderr] 690 |       #[no_mangle]
[INFO] [stderr]     |       ^^^^^^^^^^^^
[INFO] [stderr] 691 | /     fn fill_triangle_tile<F>(
[INFO] [stderr] 692 | |         points: &mut [Vector4<f32>; 3],
[INFO] [stderr] 693 | |         depths: &Vector4<f32>,
[INFO] [stderr] 694 | |         tile_dim: Rect2D<i32>,
[INFO] [stderr] ...   |
[INFO] [stderr] 869 | |         }
[INFO] [stderr] 870 | |     }
[INFO] [stderr]     | |_____- not a free function, impl method or static
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]    --> src/model.rs:319:43
[INFO] [stderr]     |
[INFO] [stderr] 319 |                 println!("Error: {}", err.description());
[INFO] [stderr]     |                                           ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Read`
[INFO] [stderr]   --> src/model.rs:14:24
[INFO] [stderr]    |
[INFO] [stderr] 14 | use std::io::{BufRead, Read};
[INFO] [stderr]    |                        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Buffer2D`
[INFO] [stderr]  --> src/model.rs:6:9
[INFO] [stderr]   |
[INFO] [stderr] 6 |         Buffer2D,
[INFO] [stderr]   |         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `w`
[INFO] [stderr]    --> src/image/buffer.rs:192:26
[INFO] [stderr]     |
[INFO] [stderr] 192 |     fn resize(&mut self, w:i32,h:i32){
[INFO] [stderr]     |                          ^ help: if this is intentional, prefix it with an underscore: `_w`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `h`
[INFO] [stderr]    --> src/image/buffer.rs:192:32
[INFO] [stderr]     |
[INFO] [stderr] 192 |     fn resize(&mut self, w:i32,h:i32){
[INFO] [stderr]     |                                ^ help: if this is intentional, prefix it with an underscore: `_h`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/image.rs:183:17
[INFO] [stderr]     |
[INFO] [stderr] 183 |     if let Some(mut texture) = result{
[INFO] [stderr]     |                 ----^^^^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/graphics.rs:670:25
[INFO] [stderr]     |
[INFO] [stderr] 670 |                     let mut tl_tile_bary = fr + delta_x * (off_x as f32) + delta_y * (off_y as f32);
[INFO] [stderr]     |                         ----^^^^^^^^^^^^
[INFO] [stderr]     |                         |
[INFO] [stderr]     |                         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `f` is never read
[INFO] [stderr]    --> src/graphics.rs:721:18
[INFO] [stderr]     |
[INFO] [stderr] 721 |         let (mut f, mut fr) = (Vector4::zeros(), *fr);
[INFO] [stderr]     |                  ^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `grid_table`
[INFO] [stderr]    --> src/graphics.rs:734:13
[INFO] [stderr]     |
[INFO] [stderr] 734 |         let grid_table = [world_z_tl, world_z_tr, world_z_bl, world_z_br];
[INFO] [stderr]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_grid_table`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `points`
[INFO] [stderr]    --> src/graphics.rs:692:9
[INFO] [stderr]     |
[INFO] [stderr] 692 |         points: &mut [Vector4<f32>; 3],
[INFO] [stderr]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_points`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `glbs`
[INFO] [stderr]    --> src/graphics.rs:895:5
[INFO] [stderr]     |
[INFO] [stderr] 895 |     glbs: &ShaderGlobals,
[INFO] [stderr]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_glbs`
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TILE_RAD_SQRD` is never used
[INFO] [stderr]    --> src/graphics.rs:586:15
[INFO] [stderr]     |
[INFO] [stderr] 586 |         const TILE_RAD_SQRD: i32 = TILE_W * TILE_W / 4 + TILE_H * TILE_H / 4;
[INFO] [stderr]     |               ^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `custom_frag_shader` is never used
[INFO] [stderr]    --> src/graphics.rs:891:4
[INFO] [stderr]     |
[INFO] [stderr] 891 | fn custom_frag_shader<BUF: Buffer2D<u32>>(
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `software_rasterizer` (lib) generated 31 warnings (run `cargo fix --lib -p software_rasterizer` to apply 23 suggestions)
[INFO] [stderr] warning: `software_rasterizer` (lib test) generated 31 warnings (31 duplicates)
[INFO] [stderr] warning: unused import: `std::mem`
[INFO] [stderr]  --> src/main.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use std::mem;
[INFO] [stderr]   |     ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::thread`
[INFO] [stderr]  --> src/main.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use std::thread;
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::time`
[INFO] [stderr]  --> src/main.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use std::time;
[INFO] [stderr]   |     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `software_rasterizer::containers::*`
[INFO] [stderr]  --> src/main.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use software_rasterizer::containers::*;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Matrix4`, `Translation3`, `Vector2`
[INFO] [stderr]   --> src/main.rs:11:16
[INFO] [stderr]    |
[INFO] [stderr] 11 | use nalgebra::{Matrix4, Rotation3, Translation3, Unit, Vector2, Vector3, Vector4};
[INFO] [stderr]    |                ^^^^^^^             ^^^^^^^^^^^^        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `software_rasterizer::math_util::fixed_point::*`
[INFO] [stderr]   --> src/main.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 13 | use software_rasterizer::math_util::fixed_point::*;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `LinearSampler2D`, `TiledBuffer2D`
[INFO] [stderr]   --> src/main.rs:20:31
[INFO] [stderr]    |
[INFO] [stderr] 20 |         buffer::{RowBuffer2D, TiledBuffer2D},
[INFO] [stderr]    |                               ^^^^^^^^^^^^^
[INFO] [stderr] 21 |         sampler::{LinearSampler2D, NearestSampler2D, Sampler2D},
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `bounding`
[INFO] [stderr]   --> src/main.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 15 |     bounding::*,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `x_pos` is never read
[INFO] [stderr]    --> src/main.rs:217:9
[INFO] [stderr]     |
[INFO] [stderr] 217 |         x_pos = _mouse_state.x() as f32;
[INFO] [stderr]     |         ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `y_pos` is never read
[INFO] [stderr]    --> src/main.rs:218:9
[INFO] [stderr]     |
[INFO] [stderr] 218 |         y_pos = _mouse_state.y() as f32;
[INFO] [stderr]     |         ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]    --> src/main.rs:272:39
[INFO] [stderr]     |
[INFO] [stderr] 272 |                     Keycode::Space => unsafe {
[INFO] [stderr]     |                                       ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_unsafe)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `software_rasterizer` (bin "software_rasterizer" test) generated 11 warnings (run `cargo fix --bin "software_rasterizer" --tests` to apply 7 suggestions)
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.06s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/software_rasterizer-2cecc5dffdb18287)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test containers::dll_test1 ... ok
[INFO] [stdout] test math_util::math_tests::fixed_point_tests::convertion_test ... FAILED
[INFO] [stdout] test image::buffer::buffer_tests::tile2d_test ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- math_util::math_tests::fixed_point_tests::convertion_test stdout ----
[INFO] [stdout] 
[INFO] [stdout]   ┌              ┐
[INFO] [stdout]   │ 0.0000000000 │
[INFO] [stdout]   │ 7.0000000000 │
[INFO] [stdout]   │ 0.0000000000 │
[INFO] [stdout]   │ 0.8999999762 │
[INFO] [stdout]   └              ┘
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] thread 'math_util::math_tests::fixed_point_tests::convertion_test' panicked at src/math_util/math_tests/fixed_point_tests.rs:29:5:
[INFO] [stdout] test not implemented
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x56425bc24506 - std::backtrace_rs::backtrace::libunwind::trace::h140b6deb6a45c671
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5
[INFO] [stdout]    1:     0x56425bc24506 - std::backtrace_rs::backtrace::trace_unsynchronized::h8450d7e4e9219aed
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x56425bc24506 - std::sys_common::backtrace::_print_fmt::hbd28e5e6c6fc3a3f
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/std/src/sys_common/backtrace.rs:68:5
[INFO] [stdout]    3:     0x56425bc24506 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hb058f285768cf98e
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/std/src/sys_common/backtrace.rs:44:22
[INFO] [stdout]    4:     0x56425bc4d7c0 - core::fmt::rt::Argument::fmt::h87dec7a95127da24
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/core/src/fmt/rt.rs:142:9
[INFO] [stdout]    5:     0x56425bc4d7c0 - core::fmt::write::h873f89a91a4832db
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/core/src/fmt/mod.rs:1120:17
[INFO] [stdout]    6:     0x56425bc21d5f - std::io::Write::write_fmt::h90f651e9e694a4bb
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/std/src/io/mod.rs:1846:15
[INFO] [stdout]    7:     0x56425bc242e4 - std::sys_common::backtrace::_print::h7719d1529d9a9e13
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/std/src/sys_common/backtrace.rs:47:5
[INFO] [stdout]    8:     0x56425bc242e4 - std::sys_common::backtrace::print::haa3afbd0e7947108
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/std/src/sys_common/backtrace.rs:34:9
[INFO] [stdout]    9:     0x56425bc26057 - std::panicking::default_hook::{{closure}}::h10e3de2ec0eaff22
[INFO] [stdout]   10:     0x56425bc25d3d - std::panicking::default_hook::hbdc1b1b7fe073dab
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/std/src/panicking.rs:289:9
[INFO] [stdout]   11:     0x56425bbf2847 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h20f7887d7cd0a330
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/alloc/src/boxed.rs:2029:9
[INFO] [stdout]   12:     0x56425bbf2847 - test::test_main::{{closure}}::hc125a615957b5cb1
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/test/src/lib.rs:138:21
[INFO] [stdout]   13:     0x56425bc26676 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h8c19e0590f8443c4
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/alloc/src/boxed.rs:2029:9
[INFO] [stdout]   14:     0x56425bc26676 - std::panicking::rust_panic_with_hook::hb81692602460473d
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/std/src/panicking.rs:785:13
[INFO] [stdout]   15:     0x56425bbfe0f8 - std::panicking::begin_panic::{{closure}}::hef2604210e24ff15
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/std/src/panicking.rs:689:9
[INFO] [stdout]   16:     0x56425bbfe40a - std::sys_common::backtrace::__rust_end_short_backtrace::h6894f01116b206cc
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/std/src/sys_common/backtrace.rs:171:18
[INFO] [stdout]   17:     0x56425bbfe097 - std::panicking::begin_panic::hc87a5c4ccb8c559e
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/std/src/panicking.rs:688:12
[INFO] [stdout]   18:     0x56425bbb600f - software_rasterizer::math_util::math_tests::fixed_point_tests::convertion_test::h48ca5705486a1fae
[INFO] [stdout]                                at /opt/rustwide/workdir/src/math_util/math_tests/fixed_point_tests.rs:29:5
[INFO] [stdout]   19:     0x56425bbb5c27 - software_rasterizer::math_util::math_tests::fixed_point_tests::convertion_test::{{closure}}::ha3b63bc25da3a274
[INFO] [stdout]                                at /opt/rustwide/workdir/src/math_util/math_tests/fixed_point_tests.rs:3:21
[INFO] [stdout]   20:     0x56425bbaeec6 - core::ops::function::FnOnce::call_once::heecd7e58d74757d4
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   21:     0x56425bbf843f - core::ops::function::FnOnce::call_once::h692fe6f34484199f
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x56425bbf843f - test::__rust_begin_short_backtrace::h48b62e76bd60e2de
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/test/src/lib.rs:621:18
[INFO] [stdout]   23:     0x56425bbf7261 - test::run_test_in_process::{{closure}}::h1c68597526ef43db
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/test/src/lib.rs:644:60
[INFO] [stdout]   24:     0x56425bbf7261 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hcae98092997f976b
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   25:     0x56425bbf7261 - std::panicking::try::do_call::h8d1548c2f5bb535a
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/std/src/panicking.rs:554:40
[INFO] [stdout]   26:     0x56425bbf7261 - std::panicking::try::hbb7a2054f484688e
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/std/src/panicking.rs:518:19
[INFO] [stdout]   27:     0x56425bbf7261 - std::panic::catch_unwind::h696d12d9d80497c2
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/std/src/panic.rs:142:14
[INFO] [stdout]   28:     0x56425bbf7261 - test::run_test_in_process::h053367a7217c825b
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/test/src/lib.rs:644:27
[INFO] [stdout]   29:     0x56425bbf7261 - test::run_test::{{closure}}::hfa524e9fabcba78e
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/test/src/lib.rs:567:43
[INFO] [stdout]   30:     0x56425bbbe6c6 - test::run_test::{{closure}}::h2c4d0bb741ef7f9f
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/test/src/lib.rs:595:41
[INFO] [stdout]   31:     0x56425bbbe6c6 - std::sys_common::backtrace::__rust_begin_short_backtrace::h0d2c708415550075
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/std/src/sys_common/backtrace.rs:155:18
[INFO] [stdout]   32:     0x56425bbc3687 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::h76e2635840d7293f
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/std/src/thread/mod.rs:529:17
[INFO] [stdout]   33:     0x56425bbc3687 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::haa640b67a810a214
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   34:     0x56425bbc3687 - std::panicking::try::do_call::h41892e3bc2807ab5
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/std/src/panicking.rs:554:40
[INFO] [stdout]   35:     0x56425bbc3687 - std::panicking::try::h861a16d180681c80
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/std/src/panicking.rs:518:19
[INFO] [stdout]   36:     0x56425bbc3687 - std::panic::catch_unwind::h8195f9064b1509fa
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/std/src/panic.rs:142:14
[INFO] [stdout]   37:     0x56425bbc3687 - std::thread::Builder::spawn_unchecked_::{{closure}}::h73cc419da1217371
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/std/src/thread/mod.rs:528:30
[INFO] [stdout]   38:     0x56425bbc3687 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h79dc6499ff073b09
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   39:     0x56425bc2aa15 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::ha718e8cdc51a5182
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/alloc/src/boxed.rs:2015:9
[INFO] [stdout]   40:     0x56425bc2aa15 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h86072abc877c5474
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/alloc/src/boxed.rs:2015:9
[INFO] [stdout]   41:     0x56425bc2aa15 - std::sys::pal::unix::thread::Thread::new::thread_start::hac4056197c365894
[INFO] [stdout]                                at /rustc/f2048098a1ca42a520e7bed68e321a66edc0a1b1/library/std/src/sys/pal/unix/thread.rs:108:17
[INFO] [stdout]   42:     0x7f605efcfac3 - <unknown>
[INFO] [stdout]   43:     0x7f605f060bf4 - __clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     math_util::math_tests::fixed_point_tests::convertion_test
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 2 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.16s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "bc8343da46b1fcff53930bee2c377c6e06904a1b2b64b82105286143852f83ec", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bc8343da46b1fcff53930bee2c377c6e06904a1b2b64b82105286143852f83ec", kill_on_drop: false }`
[INFO] [stdout] bc8343da46b1fcff53930bee2c377c6e06904a1b2b64b82105286143852f83ec
