[INFO] cloning repository https://github.com/santiberna/RusterizerS
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/santiberna/RusterizerS" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsantiberna%2FRusterizerS", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsantiberna%2FRusterizerS'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 1f65506906a41d48f57fd757defe1647b4298641
[INFO] checking santiberna/RusterizerS against master#bca37a20bd376ce3fd138e7cdee7fe704e0f8814 for pr-139493-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsantiberna%2FRusterizerS" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/santiberna/RusterizerS
[INFO] finished tweaking git repo https://github.com/santiberna/RusterizerS
[INFO] tweaked toml for git repo https://github.com/santiberna/RusterizerS written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/santiberna/RusterizerS on toolchain bca37a20bd376ce3fd138e7cdee7fe704e0f8814
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/santiberna/RusterizerS 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" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded stb_image v0.3.0
[INFO] [stderr]   Downloaded errno v0.3.6
[INFO] [stderr]   Downloaded cc v1.0.84
[INFO] [stderr]   Downloaded minifb v0.25.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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 859090d1d198a29f2885419bd98eba1f580d1d2aeacacfc3e33864680550c636
[INFO] running `Command { std: "docker" "start" "-a" "859090d1d198a29f2885419bd98eba1f580d1d2aeacacfc3e33864680550c636", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "859090d1d198a29f2885419bd98eba1f580d1d2aeacacfc3e33864680550c636", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "859090d1d198a29f2885419bd98eba1f580d1d2aeacacfc3e33864680550c636", kill_on_drop: false }`
[INFO] [stdout] 859090d1d198a29f2885419bd98eba1f580d1d2aeacacfc3e33864680550c636
[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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 63439803230a0a16208b56fd149fae629b00ce18fde73c1d470df438b70b3007
[INFO] running `Command { std: "docker" "start" "-a" "63439803230a0a16208b56fd149fae629b00ce18fde73c1d470df438b70b3007", kill_on_drop: false }`
[INFO] [stderr]     Checking memchr v2.6.4
[INFO] [stderr]    Compiling wayland-sys v0.29.5
[INFO] [stderr]    Compiling rustix v0.38.21
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]     Checking cty v0.2.2
[INFO] [stderr]     Checking fastrand v2.0.1
[INFO] [stderr]     Checking glam v0.24.2
[INFO] [stderr]    Compiling wayland-scanner v0.29.5
[INFO] [stderr]    Compiling cc v1.0.84
[INFO] [stderr]     Checking nix v0.24.3
[INFO] [stderr]     Checking raw-window-handle v0.4.3
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]    Compiling minifb v0.25.0
[INFO] [stderr]    Compiling stb_image v0.3.0
[INFO] [stderr]    Compiling wayland-client v0.29.5
[INFO] [stderr]    Compiling wayland-protocols v0.29.5
[INFO] [stderr]     Checking wayland-commons v0.29.5
[INFO] [stderr]     Checking tempfile v3.8.1
[INFO] [stderr]     Checking xcursor v0.3.4
[INFO] [stderr]     Checking wayland-cursor v0.29.5
[INFO] [stderr]     Checking rusterizer-s v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `glam::Mat4`
[INFO] [stdout]  --> src/math/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use glam::Mat4;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `glam::Quat`
[INFO] [stdout]  --> src/math/mod.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use glam::Quat;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vec4`
[INFO] [stdout]  --> src/math/plane.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | use glam::{Vec3, Vec4};
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `glam::Mat4`
[INFO] [stdout]  --> src/math/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use glam::Mat4;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `glam::Quat`
[INFO] [stdout]  --> src/math/mod.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use glam::Quat;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vec4`
[INFO] [stdout]  --> src/math/plane.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | use glam::{Vec3, Vec4};
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `image`
[INFO] [stdout]   --> src/texture/mod.rs:19:37
[INFO] [stdout]    |
[INFO] [stdout] 19 |         image::LoadResult::ImageF32(image) => {
[INFO] [stdout]    |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_image`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `camera_up`
[INFO] [stdout]   --> src/camera/mod.rs:84:9
[INFO] [stdout]    |
[INFO] [stdout] 84 |     let camera_up = camera.get_up();
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_camera_up`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `image`
[INFO] [stdout]   --> src/texture/mod.rs:19:37
[INFO] [stdout]    |
[INFO] [stdout] 19 |         image::LoadResult::ImageF32(image) => {
[INFO] [stdout]    |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_image`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `camera_up`
[INFO] [stdout]   --> src/camera/mod.rs:84:9
[INFO] [stdout]    |
[INFO] [stdout] 84 |     let camera_up = camera.get_up();
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_camera_up`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let mut ls = debug::DebugLineShader::default();
[INFO] [stdout]    |         ----^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ls`
[INFO] [stdout]   --> src/main.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let mut ls = debug::DebugLineShader::default();
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_ls`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cull_back_face` is never used
[INFO] [stdout]   --> src/math/mod.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn cull_back_face(v1: Vec3, v2: Vec3, v3: Vec3) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `triangle_in_bounds` is never used
[INFO] [stdout]    --> src/math/mod.rs:132:8
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn triangle_in_bounds(v1: Vec4, v2: Vec4, v3: Vec4) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Line` is never constructed
[INFO] [stdout]  --> src/math/bounding_box.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Line {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `intersect`, `is_right`, and `is_left` are never used
[INFO] [stdout]   --> src/math/bounding_box.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Line {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 11 |     pub fn new(start: Vec2, end:Vec2) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub fn intersect(&self, line: &Line) -> Option<f32> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn is_right(&self, point: Vec2) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn is_left(&self, point: Vec2) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clip_line` is never used
[INFO] [stdout]   --> src/math/bounding_box.rs:75:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | impl BoundingBox {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub fn clip_line(&self, line: &Line) -> Option<Line> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Plane` is never constructed
[INFO] [stdout]  --> src/math/plane.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Plane {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `from_normal_point`, `signed_distance`, and `intersect` are never used
[INFO] [stdout]   --> src/math/plane.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl Plane {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 10 |
[INFO] [stdout] 11 |     pub fn new(normal: Vec3, d: f32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub fn from_normal_point(normal: Vec3, point: Vec3) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn signed_distance(&self, point: Vec3) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn intersect(&self, start: Vec3, end: Vec3) -> Option<f32> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clip_polygon` is never used
[INFO] [stdout]   --> src/math/plane.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn clip_polygon(polygon: &[Vec3], frustum: &[Plane]) -> Vec<Vec3> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `generate_frustum_perspective` is never used
[INFO] [stdout]   --> src/camera/mod.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Camera {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn generate_frustum_perspective(&self) -> Vec<Plane> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `camera` is never read
[INFO] [stdout]  --> src/renderer/debug.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct DebugLineShader {
[INFO] [stdout]   |            --------------- field in this struct
[INFO] [stdout] 9 |     pub camera: Camera
[INFO] [stdout]   |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `dispatch` and `draw_line` are never used
[INFO] [stdout]   --> src/renderer/debug.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl DebugLineShader {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] 13 |     pub fn dispatch(&self, out: &mut Texture, line_list: &[(glam::Vec3, glam::Vec3)]) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     fn draw_line(&self, out: &mut Texture, screen_space_matrix: &glam::Mat3, start: glam::Vec3, end: glam::Vec3) {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let mut ls = debug::DebugLineShader::default();
[INFO] [stdout]    |         ----^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ls`
[INFO] [stdout]   --> src/main.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let mut ls = debug::DebugLineShader::default();
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_ls`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cull_back_face` is never used
[INFO] [stdout]   --> src/math/mod.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn cull_back_face(v1: Vec3, v2: Vec3, v3: Vec3) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `triangle_in_bounds` is never used
[INFO] [stdout]    --> src/math/mod.rs:132:8
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn triangle_in_bounds(v1: Vec4, v2: Vec4, v3: Vec4) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `is_left` are never used
[INFO] [stdout]   --> src/math/bounding_box.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Line {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 11 |     pub fn new(start: Vec2, end:Vec2) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn is_left(&self, point: Vec2) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Plane` is never constructed
[INFO] [stdout]  --> src/math/plane.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Plane {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `from_normal_point`, `signed_distance`, and `intersect` are never used
[INFO] [stdout]   --> src/math/plane.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl Plane {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 10 |
[INFO] [stdout] 11 |     pub fn new(normal: Vec3, d: f32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub fn from_normal_point(normal: Vec3, point: Vec3) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn signed_distance(&self, point: Vec3) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn intersect(&self, start: Vec3, end: Vec3) -> Option<f32> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clip_polygon` is never used
[INFO] [stdout]   --> src/math/plane.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn clip_polygon(polygon: &[Vec3], frustum: &[Plane]) -> Vec<Vec3> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `generate_frustum_perspective` is never used
[INFO] [stdout]   --> src/camera/mod.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Camera {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn generate_frustum_perspective(&self) -> Vec<Plane> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `camera` is never read
[INFO] [stdout]  --> src/renderer/debug.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct DebugLineShader {
[INFO] [stdout]   |            --------------- field in this struct
[INFO] [stdout] 9 |     pub camera: Camera
[INFO] [stdout]   |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `dispatch` and `draw_line` are never used
[INFO] [stdout]   --> src/renderer/debug.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl DebugLineShader {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] 13 |     pub fn dispatch(&self, out: &mut Texture, line_list: &[(glam::Vec3, glam::Vec3)]) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     fn draw_line(&self, out: &mut Texture, screen_space_matrix: &glam::Mat3, start: glam::Vec3, end: glam::Vec3) {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 21.54s
[INFO] running `Command { std: "docker" "inspect" "63439803230a0a16208b56fd149fae629b00ce18fde73c1d470df438b70b3007", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "63439803230a0a16208b56fd149fae629b00ce18fde73c1d470df438b70b3007", kill_on_drop: false }`
[INFO] [stdout] 63439803230a0a16208b56fd149fae629b00ce18fde73c1d470df438b70b3007
