[INFO] cloning repository https://github.com/Maerorr/ray-tracing-reverb
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Maerorr/ray-tracing-reverb" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMaerorr%2Fray-tracing-reverb", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMaerorr%2Fray-tracing-reverb'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 5b37244240adeb11a55c4c63f13464124fc6991f
[INFO] checking Maerorr/ray-tracing-reverb against try#724e78794d2cf06eef820a24c9a4608d63435e1d for pr-149145
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMaerorr%2Fray-tracing-reverb" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Maerorr/ray-tracing-reverb
[INFO] finished tweaking git repo https://github.com/Maerorr/ray-tracing-reverb
[INFO] tweaked toml for git repo https://github.com/Maerorr/ray-tracing-reverb written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Maerorr/ray-tracing-reverb on toolchain 724e78794d2cf06eef820a24c9a4608d63435e1d
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+724e78794d2cf06eef820a24c9a4608d63435e1d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Maerorr/ray-tracing-reverb 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" "+724e78794d2cf06eef820a24c9a4608d63435e1d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] checking Maerorr/ray-tracing-reverb against try#724e78794d2cf06eef820a24c9a4608d63435e1d for pr-149145
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMaerorr%2Fray-tracing-reverb" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Maerorr/ray-tracing-reverb
[INFO] finished tweaking git repo https://github.com/Maerorr/ray-tracing-reverb
[INFO] tweaked toml for git repo https://github.com/Maerorr/ray-tracing-reverb written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Maerorr/ray-tracing-reverb on toolchain 724e78794d2cf06eef820a24c9a4608d63435e1d
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+724e78794d2cf06eef820a24c9a4608d63435e1d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Maerorr/ray-tracing-reverb 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" "+724e78794d2cf06eef820a24c9a4608d63435e1d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded ravif v0.11.4
[INFO] [stderr]   Downloaded bytemuck v1.14.3
[INFO] [stderr]   Downloaded system-deps v6.2.0
[INFO] [stderr]   Downloaded rust_hawktracer v0.7.0
[INFO] [stderr]   Downloaded rust_hawktracer_proc_macro v0.4.1
[INFO] [stderr]   Downloaded built v0.7.1
[INFO] [stderr]   Downloaded rust_hawktracer_normal_macro v0.4.1
[INFO] [stderr]   Downloaded cstr v0.2.11
[INFO] [stderr]   Downloaded arbitrary v0.4.7
[INFO] [stderr]   Downloaded bitstream-io v2.2.0
[INFO] [stderr]   Downloaded bitstream-io v1.10.0
[INFO] [stderr]   Downloaded libfuzzer-sys v0.3.5
[INFO] [stderr]   Downloaded rav1e v0.6.6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:94a0c148923f5b2b52a63ef0eeb1882ad339ab61bce784c8077cbe41c61feb6c" "/opt/rustwide/cargo-home/bin/cargo" "+724e78794d2cf06eef820a24c9a4608d63435e1d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 9f03c7822ee71973def35ea1098faec63f71a5f568e4468e3f57bc1050dacd60
[INFO] running `Command { std: "docker" "start" "-a" "9f03c7822ee71973def35ea1098faec63f71a5f568e4468e3f57bc1050dacd60", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9f03c7822ee71973def35ea1098faec63f71a5f568e4468e3f57bc1050dacd60", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9f03c7822ee71973def35ea1098faec63f71a5f568e4468e3f57bc1050dacd60", kill_on_drop: false }`
[INFO] [stdout] 9f03c7822ee71973def35ea1098faec63f71a5f568e4468e3f57bc1050dacd60
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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=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:94a0c148923f5b2b52a63ef0eeb1882ad339ab61bce784c8077cbe41c61feb6c" "/opt/rustwide/cargo-home/bin/cargo" "+724e78794d2cf06eef820a24c9a4608d63435e1d" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5c2f1b5b21693fba8ade1eac8859d87e18a89747327b20d3babc63bdb38dbfab
[INFO] running `Command { std: "docker" "start" "-a" "5c2f1b5b21693fba8ade1eac8859d87e18a89747327b20d3babc63bdb38dbfab", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.79
[INFO] [stderr]    Compiling num-traits v0.2.18
[INFO] [stderr]    Compiling crossbeam-utils v0.8.19
[INFO] [stderr]    Compiling libc v0.2.153
[INFO] [stderr]    Compiling num-rational v0.4.1
[INFO] [stderr]    Compiling lock_api v0.4.11
[INFO] [stderr]    Compiling anyhow v1.0.81
[INFO] [stderr]    Compiling crc32fast v1.4.0
[INFO] [stderr]    Compiling thiserror v1.0.58
[INFO] [stderr]     Checking either v1.10.0
[INFO] [stderr]    Compiling num-bigint v0.4.4
[INFO] [stderr]     Checking miniz_oxide v0.7.2
[INFO] [stderr]     Checking arrayvec v0.7.4
[INFO] [stderr]    Compiling paste v1.0.14
[INFO] [stderr]     Checking aligned-vec v0.5.0
[INFO] [stderr]     Checking memchr v2.7.1
[INFO] [stderr]    Compiling built v0.7.1
[INFO] [stderr]     Checking bytemuck v1.14.3
[INFO] [stderr]     Checking itertools v0.12.1
[INFO] [stderr]    Compiling noop_proc_macro v0.3.0
[INFO] [stderr]     Checking new_debug_unreachable v1.0.4
[INFO] [stderr]     Checking bitstream-io v2.2.0
[INFO] [stderr]     Checking weezl v0.1.8
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]     Checking imgref v1.10.1
[INFO] [stderr]     Checking rgb v0.8.37
[INFO] [stderr]     Checking flate2 v1.0.28
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking loop9 v0.1.5
[INFO] [stderr]     Checking avif-serialize v0.8.1
[INFO] [stderr]     Checking zune-inflate v0.2.54
[INFO] [stderr]     Checking half v2.4.0
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling rav1e v0.7.1
[INFO] [stderr]     Checking flume v0.11.0
[INFO] [stderr]     Checking jpeg-decoder v0.3.1
[INFO] [stderr]     Checking bit_field v0.10.2
[INFO] [stderr]     Checking zune-core v0.4.12
[INFO] [stderr]    Compiling quote v1.0.35
[INFO] [stderr]     Checking quick-error v2.0.1
[INFO] [stderr]     Checking lebe v0.5.2
[INFO] [stderr]     Checking crossbeam-deque v0.8.5
[INFO] [stderr]     Checking smallvec v1.13.1
[INFO] [stderr]     Checking gif v0.13.1
[INFO] [stderr]     Checking zune-jpeg v0.4.11
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]     Checking getrandom v0.2.12
[INFO] [stderr]     Checking hound v3.5.1
[INFO] [stderr]     Checking png v0.17.13
[INFO] [stderr]     Checking rayon-core v1.12.1
[INFO] [stderr]    Compiling syn v2.0.52
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling simd_helpers v0.1.0
[INFO] [stderr]    Compiling cstr v0.2.11
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rayon v1.9.0
[INFO] [stderr]     Checking exr v1.72.0
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking v_frame v0.3.8
[INFO] [stderr]     Checking float-cmp v0.9.0
[INFO] [stderr]     Checking tiff v0.9.1
[INFO] [stderr]     Checking av1-grain v0.2.3
[INFO] [stderr]     Checking maybe-rayon v0.1.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.58
[INFO] [stderr]    Compiling profiling-procmacros v1.0.15
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling arg_enum_proc_macro v0.3.4
[INFO] [stderr]     Checking profiling v1.0.15
[INFO] [stderr]     Checking image-webp v0.1.0
[INFO] [stderr]     Checking ravif v0.11.4
[INFO] [stderr]     Checking image v0.25.0
[INFO] [stderr]     Checking raytracing v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::f32::consts::PI`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::f32::consts::PI;
[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: `std::fs::File`
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fs::File;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::i32::MAX`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::i32::MAX;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `approx_eq`
[INFO] [stdout]  --> src/main.rs:6:17
[INFO] [stdout]   |
[INFO] [stdout] 6 | use float_cmp::{approx_eq};
[INFO] [stdout]   |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Sphere` and `create_box_surfaces`
[INFO] [stdout]  --> src/main.rs:7:16
[INFO] [stdout]   |
[INFO] [stdout] 7 | use geometry::{create_box_surfaces, Sphere, Surface};
[INFO] [stdout]   |                ^^^^^^^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hound::WavReader`
[INFO] [stdout]  --> src/main.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use hound::WavReader;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DynamicImage` and `ImageBuffer`
[INFO] [stdout]  --> src/main.rs:9:13
[INFO] [stdout]   |
[INFO] [stdout] 9 | use image::{DynamicImage, ImageBuffer};
[INFO] [stdout]   |             ^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Quaternion` and `RayCastHit`
[INFO] [stdout]   --> src/main.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | use math::{Quaternion, RayCastHit, Vector};
[INFO] [stdout]    |            ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `scene::Scene`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use scene::Scene;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IntersectionPrimitive`, `as_degrees`, and `as_radians`
[INFO] [stdout]   --> src/main.rs:15:19
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::math::{as_degrees, as_radians, IntersectionPrimitive};
[INFO] [stdout]    |                   ^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Line` and `Triangle`
[INFO] [stdout]   --> src/main.rs:17:23
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::geometry::{Line, Triangle};
[INFO] [stdout]    |                       ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `F32Margin` and `approx_eq`
[INFO] [stdout]  --> src/geometry/line.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use float_cmp::{approx_eq, F32Margin};
[INFO] [stdout]   |                 ^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Sphere`
[INFO] [stdout]  --> src/geometry/create_geometry.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use super::{Sphere, Surface};
[INFO] [stdout]   |             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `approx_eq`
[INFO] [stdout]  --> src/math/intersection.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use float_cmp::{approx_eq};
[INFO] [stdout]   |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vector`
[INFO] [stdout]  --> src/math/intersection.rs:5:25
[INFO] [stdout]   |
[INFO] [stdout] 5 | use super::{RayCastHit, Vector};
[INFO] [stdout]   |                         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mem::swap`
[INFO] [stdout]  --> src/math/vector.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{mem::swap, ops};
[INFO] [stdout]   |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::PI`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::f32::consts::PI;
[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: `std::fs::File`
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fs::File;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::i32::MAX`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::i32::MAX;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `approx_eq`
[INFO] [stdout]  --> src/main.rs:6:17
[INFO] [stdout]   |
[INFO] [stdout] 6 | use float_cmp::{approx_eq};
[INFO] [stdout]   |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Sphere` and `create_box_surfaces`
[INFO] [stdout]  --> src/main.rs:7:16
[INFO] [stdout]   |
[INFO] [stdout] 7 | use geometry::{create_box_surfaces, Sphere, Surface};
[INFO] [stdout]   |                ^^^^^^^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hound::WavReader`
[INFO] [stdout]  --> src/main.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use hound::WavReader;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DynamicImage` and `ImageBuffer`
[INFO] [stdout]  --> src/main.rs:9:13
[INFO] [stdout]   |
[INFO] [stdout] 9 | use image::{DynamicImage, ImageBuffer};
[INFO] [stdout]   |             ^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Quaternion` and `RayCastHit`
[INFO] [stdout]   --> src/main.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | use math::{Quaternion, RayCastHit, Vector};
[INFO] [stdout]    |            ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `scene::Scene`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use scene::Scene;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IntersectionPrimitive`, `as_degrees`, and `as_radians`
[INFO] [stdout]   --> src/main.rs:15:19
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::math::{as_degrees, as_radians, IntersectionPrimitive};
[INFO] [stdout]    |                   ^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Line` and `Triangle`
[INFO] [stdout]   --> src/main.rs:17:23
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::geometry::{Line, Triangle};
[INFO] [stdout]    |                       ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `F32Margin` and `approx_eq`
[INFO] [stdout]  --> src/geometry/line.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use float_cmp::{approx_eq, F32Margin};
[INFO] [stdout]   |                 ^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Sphere`
[INFO] [stdout]  --> src/geometry/create_geometry.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use super::{Sphere, Surface};
[INFO] [stdout]   |             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `approx_eq`
[INFO] [stdout]  --> src/math/intersection.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use float_cmp::{approx_eq};
[INFO] [stdout]   |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vector`
[INFO] [stdout]  --> src/math/intersection.rs:5:25
[INFO] [stdout]   |
[INFO] [stdout] 5 | use super::{RayCastHit, Vector};
[INFO] [stdout]   |                         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mem::swap`
[INFO] [stdout]  --> src/math/vector.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{mem::swap, ops};
[INFO] [stdout]   |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/geometry/create_geometry.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let mut cube = create_box_surfaces(center, size);
[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: `w`
[INFO] [stdout]   --> src/math/mat4.rs:47:51
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn translate(&mut self, Vector { x, y, z, w}: Vector) {
[INFO] [stdout]    |                                                   ^ help: try ignoring the field: `w: _`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w`
[INFO] [stdout]   --> src/math/mat4.rs:54:47
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub fn scale(&mut self, Vector { x, y, z, w}: Vector) {
[INFO] [stdout]    |                                               ^ help: try ignoring the field: `w: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w`
[INFO] [stdout]   --> src/math/mat4.rs:62:60
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn rotate(&mut self, angle: f32, Vector { x, y, z, w}: Vector) {
[INFO] [stdout]    |                                                            ^ help: try ignoring the field: `w: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/math/mat4.rs:90:13
[INFO] [stdout]    |
[INFO] [stdout] 90 |         let mut out = Mat4::new();
[INFO] [stdout]    |             ----^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `out`
[INFO] [stdout]   --> src/math/mat4.rs:90:13
[INFO] [stdout]    |
[INFO] [stdout] 90 |         let mut out = Mat4::new();
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_out`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `det` is never read
[INFO] [stdout]   --> src/math/mat4.rs:94:23
[INFO] [stdout]    |
[INFO] [stdout] 94 |         let mut det = 0.0;
[INFO] [stdout]    |                       ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w`
[INFO] [stdout]   --> src/math/quaternion.rs:21:60
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn rotate(&mut self, angle: f32, Vector { x, y, z, w}: Vector) {
[INFO] [stdout]    |                                                            ^ help: try ignoring the field: `w: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/math/vector.rs:107:13
[INFO] [stdout]     |
[INFO] [stdout] 107 |         let mut vprime = u * 2.0 * u.dot(self) +
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/ray_trace.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 |         for i in 0..16 {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_points`, `intersection`, `angle_degrees`, `angle_radians`, `intersection_surface`, and `to_string` are never used
[INFO] [stdout]    --> src/geometry/line.rs:19:12
[INFO] [stdout]     |
[INFO] [stdout]  14 | impl Line {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  19 |     pub fn from_points(start: Vector, end: Vector) -> Line {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  29 |     pub fn intersection(&self, other: &Line) -> Option<Vector> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub fn angle_degrees(&self, other: &Line) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  56 |     pub fn angle_radians(&self, other: &Line) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  67 |     pub fn intersection_surface(&self, surface: &Surface) -> RayCastHit {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn to_string(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Sphere` is never constructed
[INFO] [stdout]  --> src/geometry/sphere.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Sphere {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get_radius_squared` are never used
[INFO] [stdout]   --> src/geometry/sphere.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Sphere {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 11 |     pub fn new(center: Vector, radius: f32) -> Sphere {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn get_radius_squared(&self) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/geometry/surface.rs:16:12
[INFO] [stdout]     |
[INFO] [stdout]  14 | impl Surface {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  15 |     // create surface from point and a normal vector
[INFO] [stdout]  16 |     pub fn new_normal(point: Vector, normal: Vector) -> Surface {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  38 |     pub fn distance(&self, point: &Vector) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub fn closest_point(&self, point: &Vector) -> Vector {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn rotate(&mut self, q: &Quaternion) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn scale(&mut self, s: &f32) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn get_uv(&self, point: &Vector) -> (f32, f32) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn translate(&mut self, v: &Vector) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Triangle` is never constructed
[INFO] [stdout]  --> src/geometry/triangle.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Triangle {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `to_string` are never used
[INFO] [stdout]   --> src/geometry/triangle.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Triangle {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 11 |     pub fn new(vertices: [Vector; 3], color: Vector) -> Triangle {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn to_string(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_box_surfaces` is never used
[INFO] [stdout]  --> src/geometry/create_geometry.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn create_box_surfaces(center: Vector, size: f32) -> Vec<Surface> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_box_primitive` is never used
[INFO] [stdout]   --> src/geometry/create_geometry.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn create_box_primitive(center: Vector, size: f32) -> Vec<Box<dyn IntersectionPrimitive>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_scene` is never used
[INFO] [stdout]   --> src/geometry/create_geometry.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn create_scene() -> Vec<Box<dyn IntersectionPrimitive>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/math/mat4.rs:22:12
[INFO] [stdout]     |
[INFO] [stdout]  14 | impl Mat4 {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  22 |     pub fn identity() -> Mat4 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  34 |     pub fn multiply(&mut self, other: &Mat4) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  47 |     pub fn translate(&mut self, Vector { x, y, z, w}: Vector) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  54 |     pub fn scale(&mut self, Vector { x, y, z, w}: Vector) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  62 |     pub fn rotate(&mut self, angle: f32, Vector { x, y, z, w}: Vector) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub fn inverse(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn transpose(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn to_string(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `as_degrees` is never used
[INFO] [stdout]  --> src/math/math.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn as_degrees(angle: f32) -> f32 {
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Quaternion` is never constructed
[INFO] [stdout]  --> src/math/quaternion.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct Quaternion {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/math/quaternion.rs:13:12
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl Quaternion {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout]  13 |     pub fn new(real: f32, ivec: Vector) -> Quaternion {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  17 |     pub fn identity() -> Quaternion {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  21 |     pub fn rotate(&mut self, angle: f32, Vector { x, y, z, w}: Vector) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  30 |     pub fn rotate_vec(&self, vec: &mut Vector) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  38 |     pub fn hamilton_product(&self, other: &Quaternion) -> Quaternion {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub fn to_mat4(&self) -> Mat4 {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn inverse(&mut self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn normalize(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn length(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn conjugate(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn dot(&mut self, other: &Quaternion) -> f32 {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn to_string(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/math/vector.rs:23:12
[INFO] [stdout]     |
[INFO] [stdout]  16 | impl Vector {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  23 |     pub fn from_num(num: f32) -> Vector {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  28 |     pub fn from_points(start: Vector, end: Vector) -> Vector {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  44 |     pub fn cross(&self, other: &Vector) -> Vector {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub fn angle_degrees(&self, other: &Vector) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  98 |     pub fn rotate_by_quaternion(&mut self, q: &Quaternion) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn to_string(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn multiply_by_matrix(&self, mat: &Mat4) -> Vector {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn refract(&self, n: &Vector, eta: f32) -> Vector {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub fn random(min: f32, max: f32) -> Vector {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub fn lerp(a: &Vector, b: &Vector, t: f32) -> Vector {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pos_on_screen` is never read
[INFO] [stdout]  --> src/math/raycasthit.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct RayCastHit {
[INFO] [stdout]   |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 8 |     pub pos_on_screen: (i32, i32),
[INFO] [stdout]   |         ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `RayCastHit` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `angle` is never used
[INFO] [stdout]   --> src/math/raycasthit.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl RayCastHit {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn angle(&self) -> f32 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_as_wav_stereo` is never used
[INFO] [stdout]   --> src/audio/read_write.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn save_as_wav_stereo(samples_left: Vec<f32>, samples_right: Vec<f32>, filename: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `listener` is never read
[INFO] [stdout]  --> src/ray_trace.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct RayTrace {
[INFO] [stdout]   |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 7 |     listener: Surface,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/geometry/create_geometry.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let mut cube = create_box_surfaces(center, size);
[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: `w`
[INFO] [stdout]   --> src/math/mat4.rs:47:51
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn translate(&mut self, Vector { x, y, z, w}: Vector) {
[INFO] [stdout]    |                                                   ^ help: try ignoring the field: `w: _`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w`
[INFO] [stdout]   --> src/math/mat4.rs:54:47
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub fn scale(&mut self, Vector { x, y, z, w}: Vector) {
[INFO] [stdout]    |                                               ^ help: try ignoring the field: `w: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w`
[INFO] [stdout]   --> src/math/mat4.rs:62:60
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn rotate(&mut self, angle: f32, Vector { x, y, z, w}: Vector) {
[INFO] [stdout]    |                                                            ^ help: try ignoring the field: `w: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/math/mat4.rs:90:13
[INFO] [stdout]    |
[INFO] [stdout] 90 |         let mut out = Mat4::new();
[INFO] [stdout]    |             ----^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `out`
[INFO] [stdout]   --> src/math/mat4.rs:90:13
[INFO] [stdout]    |
[INFO] [stdout] 90 |         let mut out = Mat4::new();
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_out`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `det` is never read
[INFO] [stdout]   --> src/math/mat4.rs:94:23
[INFO] [stdout]    |
[INFO] [stdout] 94 |         let mut det = 0.0;
[INFO] [stdout]    |                       ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/math/mat4.rs:408:13
[INFO] [stdout]     |
[INFO] [stdout] 408 |         let mut m2 = Mat4 {
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w`
[INFO] [stdout]   --> src/math/quaternion.rs:21:60
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn rotate(&mut self, angle: f32, Vector { x, y, z, w}: Vector) {
[INFO] [stdout]    |                                                            ^ help: try ignoring the field: `w: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/math/quaternion.rs:299:13
[INFO] [stdout]     |
[INFO] [stdout] 299 |         let mut q1 = Quaternion::new(1.0, Vector::new(2.0, 3.0, 4.0));
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/math/quaternion.rs:300:13
[INFO] [stdout]     |
[INFO] [stdout] 300 |         let mut q2 = Quaternion::new(2.0, Vector::new(3.0, 4.0, 5.0));
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/math/quaternion.rs:365:13
[INFO] [stdout]     |
[INFO] [stdout] 365 |         let mut quat = Quaternion::new(1.0, Vector::new(2.0, 3.0, 4.0));
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/math/vector.rs:107:13
[INFO] [stdout]     |
[INFO] [stdout] 107 |         let mut vprime = u * 2.0 * u.dot(self) +
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/ray_trace.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 |         for i in 0..16 {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_points`, `intersection`, `angle_degrees`, `angle_radians`, `intersection_surface`, and `to_string` are never used
[INFO] [stdout]    --> src/geometry/line.rs:19:12
[INFO] [stdout]     |
[INFO] [stdout]  14 | impl Line {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  19 |     pub fn from_points(start: Vector, end: Vector) -> Line {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  29 |     pub fn intersection(&self, other: &Line) -> Option<Vector> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub fn angle_degrees(&self, other: &Line) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  56 |     pub fn angle_radians(&self, other: &Line) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  67 |     pub fn intersection_surface(&self, surface: &Surface) -> RayCastHit {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn to_string(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Sphere` is never constructed
[INFO] [stdout]  --> src/geometry/sphere.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Sphere {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get_radius_squared` are never used
[INFO] [stdout]   --> src/geometry/sphere.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Sphere {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 11 |     pub fn new(center: Vector, radius: f32) -> Sphere {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn get_radius_squared(&self) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/geometry/surface.rs:16:12
[INFO] [stdout]     |
[INFO] [stdout]  14 | impl Surface {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  15 |     // create surface from point and a normal vector
[INFO] [stdout]  16 |     pub fn new_normal(point: Vector, normal: Vector) -> Surface {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  38 |     pub fn distance(&self, point: &Vector) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub fn closest_point(&self, point: &Vector) -> Vector {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn rotate(&mut self, q: &Quaternion) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn scale(&mut self, s: &f32) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn get_uv(&self, point: &Vector) -> (f32, f32) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn translate(&mut self, v: &Vector) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Triangle` is never constructed
[INFO] [stdout]  --> src/geometry/triangle.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Triangle {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `to_string` are never used
[INFO] [stdout]   --> src/geometry/triangle.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Triangle {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 11 |     pub fn new(vertices: [Vector; 3], color: Vector) -> Triangle {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn to_string(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_box_surfaces` is never used
[INFO] [stdout]  --> src/geometry/create_geometry.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn create_box_surfaces(center: Vector, size: f32) -> Vec<Surface> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_box_primitive` is never used
[INFO] [stdout]   --> src/geometry/create_geometry.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn create_box_primitive(center: Vector, size: f32) -> Vec<Box<dyn IntersectionPrimitive>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_scene` is never used
[INFO] [stdout]   --> src/geometry/create_geometry.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn create_scene() -> Vec<Box<dyn IntersectionPrimitive>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `dot` is never used
[INFO] [stdout]    --> src/math/quaternion.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl Quaternion {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn dot(&mut self, other: &Quaternion) -> f32 {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_num`, `angle_degrees`, `multiply_by_matrix`, `refract`, `random`, and `lerp` are never used
[INFO] [stdout]    --> src/math/vector.rs:23:12
[INFO] [stdout]     |
[INFO] [stdout]  16 | impl Vector {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  23 |     pub fn from_num(num: f32) -> Vector {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub fn angle_degrees(&self, other: &Vector) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn multiply_by_matrix(&self, mat: &Mat4) -> Vector {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn refract(&self, n: &Vector, eta: f32) -> Vector {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub fn random(min: f32, max: f32) -> Vector {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub fn lerp(a: &Vector, b: &Vector, t: f32) -> Vector {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pos_on_screen` is never read
[INFO] [stdout]  --> src/math/raycasthit.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct RayCastHit {
[INFO] [stdout]   |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 8 |     pub pos_on_screen: (i32, i32),
[INFO] [stdout]   |         ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `RayCastHit` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `angle` is never used
[INFO] [stdout]   --> src/math/raycasthit.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl RayCastHit {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn angle(&self) -> f32 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_as_wav_stereo` is never used
[INFO] [stdout]   --> src/audio/read_write.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn save_as_wav_stereo(samples_left: Vec<f32>, samples_right: Vec<f32>, filename: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `listener` is never read
[INFO] [stdout]  --> src/ray_trace.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct RayTrace {
[INFO] [stdout]   |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 7 |     listener: Surface,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 22.22s
[INFO] running `Command { std: "docker" "inspect" "5c2f1b5b21693fba8ade1eac8859d87e18a89747327b20d3babc63bdb38dbfab", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5c2f1b5b21693fba8ade1eac8859d87e18a89747327b20d3babc63bdb38dbfab", kill_on_drop: false }`
[INFO] [stdout] 5c2f1b5b21693fba8ade1eac8859d87e18a89747327b20d3babc63bdb38dbfab
