[INFO] cloning repository https://github.com/EmilNorden/raytracer
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/EmilNorden/raytracer" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEmilNorden%2Fraytracer", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEmilNorden%2Fraytracer'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 92372ecf5e90dbe8c6a0f6389f7d717c8b8a0ae4
[INFO] building EmilNorden/raytracer against master#c7f6aa2869acdbf014d094c6e427e554e160b6db for pr-146237-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEmilNorden%2Fraytracer" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/EmilNorden/raytracer
[INFO] finished tweaking git repo https://github.com/EmilNorden/raytracer
[INFO] tweaked toml for git repo https://github.com/EmilNorden/raytracer written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/EmilNorden/raytracer on toolchain c7f6aa2869acdbf014d094c6e427e554e160b6db
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/EmilNorden/raytracer 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" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded bitflags v2.9.0
[INFO] [stderr]   Downloaded getrandom v0.3.2
[INFO] [stderr]   Downloaded r-efi v5.2.0
[INFO] [stderr]   Downloaded proc-macro2 v1.0.94
[INFO] [stderr]   Downloaded zerocopy v0.8.24
[INFO] [stderr]   Downloaded anstyle-query v1.1.2
[INFO] [stderr]   Downloaded loop9 v0.1.5
[INFO] [stderr]   Downloaded clap_lex v0.7.4
[INFO] [stderr]   Downloaded fdeflate v0.3.7
[INFO] [stderr]   Downloaded anstyle-wincon v3.0.7
[INFO] [stderr]   Downloaded anstyle-parse v0.2.6
[INFO] [stderr]   Downloaded zerocopy-derive v0.8.24
[INFO] [stderr]   Downloaded serde_json v1.0.140
[INFO] [stderr]   Downloaded cc v1.2.18
[INFO] [stderr]   Downloaded libfuzzer-sys v0.4.9
[INFO] [stderr]   Downloaded safe_arch v0.7.4
[INFO] [stderr]   Downloaded imgref v1.11.0
[INFO] [stderr]   Downloaded miniz_oxide v0.8.7
[INFO] [stderr]   Downloaded image v0.25.6
[INFO] [stderr]   Downloaded wide v0.7.32
[INFO] [stderr]   Downloaded nalgebra v0.33.2
[INFO] [stderr]   Downloaded winnow v0.7.4
[INFO] [stderr]   Downloaded png v0.17.16
[INFO] [stderr]   Downloaded flate2 v1.1.1
[INFO] [stderr]   Downloaded syn v2.0.100
[INFO] [stderr]   Downloaded exr v1.73.0
[INFO] [stderr]   Downloaded indexmap v2.9.0
[INFO] [stderr]   Downloaded libc v0.2.171
[INFO] [stderr]   Downloaded clap_builder v4.5.38
[INFO] [stderr]   Downloaded clap v4.5.38
[INFO] [stderr]   Downloaded half v2.5.0
[INFO] [stderr]   Downloaded image-webp v0.2.1
[INFO] [stderr]   Downloaded avif-serialize v0.8.3
[INFO] [stderr]   Downloaded av1-grain v0.2.3
[INFO] [stderr]   Downloaded profiling-procmacros v1.0.16
[INFO] [stderr]   Downloaded aligned-vec v0.5.0
[INFO] [stderr]   Downloaded v_frame v0.3.8
[INFO] [stderr]   Downloaded ravif v0.11.11
[INFO] [stderr]   Downloaded zune-jpeg v0.4.14
[INFO] [stderr]   Downloaded clap_derive v4.5.32
[INFO] [stderr]   Downloaded quick-error v2.0.1
[INFO] [stderr]   Downloaded anyhow v1.0.97
[INFO] [stderr]   Downloaded bitstream-io v2.6.0
[INFO] [stderr]   Downloaded built v0.7.7
[INFO] [stderr]   Downloaded profiling v1.0.16
[INFO] [stderr]   Downloaded cfg-expr v0.15.8
[INFO] [stderr]   Downloaded version-compare v0.2.0
[INFO] [stderr]   Downloaded system-deps v6.2.2
[INFO] [stderr]   Downloaded rgb v0.8.50
[INFO] [stderr]   Downloaded zune-core v0.4.12
[INFO] [stderr]   Downloaded bytemuck v1.22.0
[INFO] [stderr]   Downloaded rand v0.9.1
[INFO] [stderr]   Downloaded arg_enum_proc_macro v0.3.4
[INFO] [stderr]   Downloaded interpolate_name v0.2.4
[INFO] [stderr]   Downloaded arbitrary v1.4.1
[INFO] [stderr]   Downloaded maybe-rayon v0.1.1
[INFO] [stderr]   Downloaded noop_proc_macro v0.3.0
[INFO] [stderr]   Downloaded simd_helpers v0.1.0
[INFO] [stderr]   Downloaded target-lexicon v0.12.16
[INFO] [stderr]   Downloaded colorchoice v1.0.3
[INFO] [stderr]   Downloaded anstream v0.6.18
[INFO] [stderr]   Downloaded anstyle v1.0.10
[INFO] [stderr]   Downloaded urlencoding v2.1.3
[INFO] [stderr]   Downloaded jobserver v0.1.33
[INFO] [stderr]   Downloaded new_debug_unreachable v1.0.6
[INFO] [stderr]   Downloaded smallvec v1.15.0
[INFO] [stderr]   Downloaded rustversion v1.0.20
[INFO] [stderr]   Downloaded rav1e v0.7.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c46eb03e3f3d530bff5c3a2fa92169821f4134090ad475774d8cf0592ec2326f
[INFO] running `Command { std: "docker" "start" "-a" "c46eb03e3f3d530bff5c3a2fa92169821f4134090ad475774d8cf0592ec2326f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c46eb03e3f3d530bff5c3a2fa92169821f4134090ad475774d8cf0592ec2326f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c46eb03e3f3d530bff5c3a2fa92169821f4134090ad475774d8cf0592ec2326f", kill_on_drop: false }`
[INFO] [stdout] c46eb03e3f3d530bff5c3a2fa92169821f4134090ad475774d8cf0592ec2326f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 089f88ae268339f672577130ea981f974f7e23a1198cc9116e30d9b87e043810
[INFO] running `Command { std: "docker" "start" "-a" "089f88ae268339f672577130ea981f974f7e23a1198cc9116e30d9b87e043810", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.94
[INFO] [stderr]    Compiling autocfg v1.4.0
[INFO] [stderr]    Compiling cfg-if v1.0.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling libc v0.2.171
[INFO] [stderr]    Compiling simd-adler32 v0.3.7
[INFO] [stderr]    Compiling rayon-core v1.12.1
[INFO] [stderr]    Compiling paste v1.0.15
[INFO] [stderr]    Compiling memchr v2.7.4
[INFO] [stderr]    Compiling bytemuck v1.22.0
[INFO] [stderr]    Compiling adler2 v2.0.0
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling anyhow v1.0.97
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling miniz_oxide v0.8.7
[INFO] [stderr]    Compiling arrayvec v0.7.6
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling built v0.7.7
[INFO] [stderr]    Compiling minimal-lexical v0.2.1
[INFO] [stderr]    Compiling aligned-vec v0.5.0
[INFO] [stderr]    Compiling syn v2.0.100
[INFO] [stderr]    Compiling rav1e v0.7.1
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling crc32fast v1.4.2
[INFO] [stderr]    Compiling getrandom v0.3.2
[INFO] [stderr]    Compiling log v0.4.27
[INFO] [stderr]    Compiling zerocopy v0.8.24
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling v_frame v0.3.8
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling flate2 v1.1.1
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling simd_helpers v0.1.0
[INFO] [stderr]    Compiling itertools v0.12.1
[INFO] [stderr]    Compiling weezl v0.1.8
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]    Compiling rayon v1.10.0
[INFO] [stderr]    Compiling bitstream-io v2.6.0
[INFO] [stderr]    Compiling quick-error v2.0.1
[INFO] [stderr]    Compiling imgref v1.11.0
[INFO] [stderr]    Compiling new_debug_unreachable v1.0.6
[INFO] [stderr]    Compiling noop_proc_macro v0.3.0
[INFO] [stderr]    Compiling anstyle-parse v0.2.6
[INFO] [stderr]    Compiling loop9 v0.1.5
[INFO] [stderr]    Compiling avif-serialize v0.8.3
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling matrixmultiply v0.3.9
[INFO] [stderr]    Compiling safe_arch v0.7.4
[INFO] [stderr]    Compiling fdeflate v0.3.7
[INFO] [stderr]    Compiling zune-inflate v0.2.54
[INFO] [stderr]    Compiling av1-grain v0.2.3
[INFO] [stderr]    Compiling half v2.5.0
[INFO] [stderr]    Compiling color_quant v1.1.0
[INFO] [stderr]    Compiling jpeg-decoder v0.3.1
[INFO] [stderr]    Compiling zune-core v0.4.12
[INFO] [stderr]    Compiling smallvec v1.15.0
[INFO] [stderr]    Compiling lebe v0.5.2
[INFO] [stderr]    Compiling rgb v0.8.50
[INFO] [stderr]    Compiling typenum v1.18.0
[INFO] [stderr]    Compiling bit_field v0.10.2
[INFO] [stderr]    Compiling maybe-rayon v0.1.1
[INFO] [stderr]    Compiling colorchoice v1.0.3
[INFO] [stderr]    Compiling inflections v1.1.1
[INFO] [stderr]    Compiling byteorder-lite v0.1.0
[INFO] [stderr]    Compiling anstyle v1.0.10
[INFO] [stderr]    Compiling anstyle-query v1.1.2
[INFO] [stderr]    Compiling tiff v0.9.1
[INFO] [stderr]    Compiling exr v1.73.0
[INFO] [stderr]    Compiling png v0.17.16
[INFO] [stderr]    Compiling image-webp v0.2.1
[INFO] [stderr]    Compiling anstream v0.6.18
[INFO] [stderr]    Compiling zune-jpeg v0.4.14
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling gif v0.13.1
[INFO] [stderr]    Compiling wide v0.7.32
[INFO] [stderr]    Compiling rand_core v0.9.3
[INFO] [stderr]    Compiling approx v0.5.1
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling qoi v0.4.1
[INFO] [stderr]    Compiling clap_lex v0.7.4
[INFO] [stderr]    Compiling rawpointer v0.2.1
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling clap_builder v4.5.38
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling urlencoding v2.1.3
[INFO] [stderr]    Compiling simba v0.9.0
[INFO] [stderr]    Compiling base64 v0.13.1
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling rand v0.9.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling profiling-procmacros v1.0.16
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling arg_enum_proc_macro v0.3.4
[INFO] [stderr]    Compiling profiling v1.0.16
[INFO] [stderr]    Compiling gltf-derive v1.4.1
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling clap_derive v4.5.32
[INFO] [stderr]    Compiling nalgebra-macros v0.2.2
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling clap v4.5.38
[INFO] [stderr]    Compiling gltf-json v1.4.1
[INFO] [stderr]    Compiling nalgebra v0.33.2
[INFO] [stderr]    Compiling ravif v0.11.11
[INFO] [stderr]    Compiling image v0.25.6
[INFO] [stderr]    Compiling gltf v1.4.1
[INFO] [stderr]    Compiling raytracer v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::camera::viewpoint::Viewpoint`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::camera::viewpoint::Viewpoint;
[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 imports: `Intersectable` and `Shadeable`
[INFO] [stdout]  --> src/main.rs:6:20
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::scene::{Intersectable, Shadeable};
[INFO] [stdout]   |                    ^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::prelude::*`
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Matrix`
[INFO] [stdout]  --> src/scene/mod.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use nalgebra::{Matrix, Matrix4, Point3, Vector2, Vector3};
[INFO] [stdout]   |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::scene::Intersection`
[INFO] [stdout]  --> src/scene/material.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::scene::Intersection;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Intersection`
[INFO] [stdout]  --> src/scene/scene.rs:5:46
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::scene::{Intersectable, Shadeable, Intersection, ShadingContext};
[INFO] [stdout]   |                                              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Point3`, `Quaternion`, and `Vector3`
[INFO] [stdout]  --> src/scene/transform.rs:1:25
[INFO] [stdout]   |
[INFO] [stdout] 1 | use nalgebra::{Matrix4, Point3, Quaternion, Rotation3, Scale3, Translation3, Vector3};
[INFO] [stdout]   |                         ^^^^^^  ^^^^^^^^^^                                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/content/mesh.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Vector2` and `Vector3`
[INFO] [stdout]  --> src/content/mesh.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use nalgebra::{Point3, Vector2, Vector3};
[INFO] [stdout]   |                        ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::scene::scene::Scene`
[INFO] [stdout]   --> src/content/mesh.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::scene::scene::Scene;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::scene::Intersection`
[INFO] [stdout]  --> src/content/triangle.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::scene::Intersection;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `gltf::scene::iter`
[INFO] [stdout]   --> src/content/gltf/loader.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use gltf::scene::iter;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `gltf::camera::Projection`
[INFO] [stdout]  --> src/content/gltf/converter.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use gltf::camera::Projection;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::content::scene_loader::SceneError`
[INFO] [stdout]  --> src/content/gltf/converter.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::content::scene_loader::SceneError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Matrix4` and `Point3`
[INFO] [stdout]  --> src/content/gltf/util.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use nalgebra::{Matrix4, Point3};
[INFO] [stdout]   |                ^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Point3`
[INFO] [stdout]  --> src/integrator/whitted.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use nalgebra::{Point3, Vector3};
[INFO] [stdout]   |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nalgebra::Vector3`
[INFO] [stdout]  --> src/integrator/pathtracing.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use nalgebra::Vector3;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::iter::IntoParallelIterator`
[INFO] [stdout]  --> src/integrator/pathtracing.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rayon::iter::IntoParallelIterator;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::camera::viewpoint::Viewpoint`
[INFO] [stdout]  --> src/integrator/pathtracing.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::camera::viewpoint::Viewpoint;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]   --> src/scene/material.rs:31:35
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub fn sample_emissive(&self, u: f32, v: f32) -> Vector3<f32> {
[INFO] [stdout]    |                                   ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub fn sample_emissive(&self, _u: f32, v: f32) -> Vector3<f32> {
[INFO] [stdout]    |                                   +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `PLANE_DISTANCE`
[INFO] [stdout]    |
[INFO] [stdout] 31 -     pub fn sample_emissive(&self, u: f32, v: f32) -> Vector3<f32> {
[INFO] [stdout] 31 +     pub fn sample_emissive(&self, camera::perspective_camera::ViewPlane::new::PLANE_DISTANCE: f32, v: f32) -> Vector3<f32> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/scene/material.rs:31:43
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub fn sample_emissive(&self, u: f32, v: f32) -> Vector3<f32> {
[INFO] [stdout]    |                                           ^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub fn sample_emissive(&self, u: f32, _v: f32) -> Vector3<f32> {
[INFO] [stdout]    |                                           +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `PLANE_DISTANCE`
[INFO] [stdout]    |
[INFO] [stdout] 31 -     pub fn sample_emissive(&self, u: f32, v: f32) -> Vector3<f32> {
[INFO] [stdout] 31 +     pub fn sample_emissive(&self, u: f32, camera::perspective_camera::ViewPlane::new::PLANE_DISTANCE: f32) -> Vector3<f32> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `foo`
[INFO] [stdout]   --> src/scene/transform.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let foo = self.translation * self.rotation;
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_foo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t_min`
[INFO] [stdout]   --> src/content/mesh.rs:42:36
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn intersect(&self, ray: &Ray, t_min: f32, t_max: f32) -> Option<Intersection> {
[INFO] [stdout]    |                                    ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn intersect(&self, ray: &Ray, _t_min: f32, t_max: f32) -> Option<Intersection> {
[INFO] [stdout]    |                                    +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `PLANE_DISTANCE`
[INFO] [stdout]    |
[INFO] [stdout] 42 -     fn intersect(&self, ray: &Ray, t_min: f32, t_max: f32) -> Option<Intersection> {
[INFO] [stdout] 42 +     fn intersect(&self, ray: &Ray, camera::perspective_camera::ViewPlane::new::PLANE_DISTANCE: f32, t_max: f32) -> Option<Intersection> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t_max`
[INFO] [stdout]   --> src/content/mesh.rs:42:48
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn intersect(&self, ray: &Ray, t_min: f32, t_max: f32) -> Option<Intersection> {
[INFO] [stdout]    |                                                ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn intersect(&self, ray: &Ray, t_min: f32, _t_max: f32) -> Option<Intersection> {
[INFO] [stdout]    |                                                +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `PLANE_DISTANCE`
[INFO] [stdout]    |
[INFO] [stdout] 42 -     fn intersect(&self, ray: &Ray, t_min: f32, t_max: f32) -> Option<Intersection> {
[INFO] [stdout] 42 +     fn intersect(&self, ray: &Ray, t_min: f32, camera::perspective_camera::ViewPlane::new::PLANE_DISTANCE: f32) -> Option<Intersection> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mesh_nodes`
[INFO] [stdout]   --> src/content/gltf/loader.rs:94:13
[INFO] [stdout]    |
[INFO] [stdout] 94 |         let mesh_nodes = scene.nodes()
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mesh_nodes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `material_map`
[INFO] [stdout]    --> src/content/gltf/loader.rs:126:17
[INFO] [stdout]     |
[INFO] [stdout] 126 |         let mut material_map : Vec<Option<Arc<Material>>> = vec![None; total_material_count];
[INFO] [stdout]     |                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_material_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/content/gltf/loader.rs:126:13
[INFO] [stdout]     |
[INFO] [stdout] 126 |         let mut material_map : Vec<Option<Arc<Material>>> = vec![None; total_material_count];
[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: `images`
[INFO] [stdout]    --> src/content/gltf/loader.rs:216:34
[INFO] [stdout]     |
[INFO] [stdout] 216 |         let (document, buffers , images) = gltf::import(path)?;
[INFO] [stdout]     |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_images`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `document`
[INFO] [stdout]  --> src/content/gltf/converter.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn convert_camera(document: Document) -> anyhow::Result<PerspectiveCamera> {
[INFO] [stdout]   |                       ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_document`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mime_type`
[INFO] [stdout]   --> src/content/gltf/material.rs:15:32
[INFO] [stdout]    |
[INFO] [stdout] 15 |             Source::Uri { uri, mime_type } => {
[INFO] [stdout]    |                                ^^^^^^^^^ help: try ignoring the field: `mime_type: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/content/gltf/material.rs:20:25
[INFO] [stdout]    |
[INFO] [stdout] 20 |                     Err(e) => panic!("Failed to load image: {}", image_path.display())
[INFO] [stdout]    |                         ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]   --> src/integrator/whitted.rs:18:14
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn shade(context: &ShadingContext) -> f32 {
[INFO] [stdout]    |              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `color`
[INFO] [stdout]   --> src/integrator/whitted.rs:37:25
[INFO] [stdout]    |
[INFO] [stdout] 37 |                     let color = hit.material.sample_color(hit.intersection.tex_coord.x, hit.intersection.tex_coord.y);
[INFO] [stdout]    |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_color`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hit`
[INFO] [stdout]   --> src/integrator/pathtracing.rs:17:35
[INFO] [stdout]    |
[INFO] [stdout] 17 |         scene.intersect(ray).map(|hit| {
[INFO] [stdout]    |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_hit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]   --> src/integrator/pathtracing.rs:26:13
[INFO] [stdout]    |
[INFO] [stdout] 26 |         let width = frame.width() as usize;
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]   --> src/integrator/pathtracing.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let height = frame.height() as usize;
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scene`
[INFO] [stdout]   --> src/integrator/pathtracing.rs:25:25
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn integrate(&self, scene: &Scene, frame: &mut Frame) {
[INFO] [stdout]    |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_scene`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `direction`, `up`, and `aspect_ratio` are never read
[INFO] [stdout]   --> src/camera/perspective_camera.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct PerspectiveCamera {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] 43 |     origin: Point3<f32>,
[INFO] [stdout] 44 |     direction: Vector3<f32>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 45 |     up: Vector3<f32>,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 46 |     aspect_ratio: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ray` is never read
[INFO] [stdout]   --> src/scene/mod.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct ShadingContext<'a> {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 20 |     pub ray: Ray,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `bounds` is never used
[INFO] [stdout]   --> src/scene/mod.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub trait Intersectable {
[INFO] [stdout]    |           ------------- method in this trait
[INFO] [stdout] 27 |     fn bounds(&self) -> AABB;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SceneObject` is never constructed
[INFO] [stdout]   --> src/scene/mod.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct SceneObject {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Sphere` is never constructed
[INFO] [stdout]   --> src/scene/mod.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct Sphere {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `emissive_texture` and `roughness` are never read
[INFO] [stdout]   --> src/scene/material.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct Material {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     emissive_texture: Option<Texture>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 14 |     emissive: Vector3<f32>,
[INFO] [stdout] 15 |     roughness: f32,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `color` and `roughness` are never used
[INFO] [stdout]   --> src/scene/material.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Material {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn color(&self) -> Vector3<f32> { self.color }
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 24 |     pub fn roughness(&self) -> f32 { self.roughness }
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SceneNode` is never constructed
[INFO] [stdout]  --> src/scene/scene.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct SceneNode {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SceneObject` is never constructed
[INFO] [stdout]   --> src/scene/scene.rs:59:12
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub struct SceneObject {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Transform` is never constructed
[INFO] [stdout]  --> src/scene/transform.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Transform {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/scene/transform.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | impl Transform {
[INFO] [stdout]   | -------------- associated function in this implementation
[INFO] [stdout] 9 |     pub fn new(world: Matrix4<f32>) -> Self {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TransformBuilder` is never constructed
[INFO] [stdout]   --> src/scene/transform.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct TransformBuilder {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `build` is never used
[INFO] [stdout]   --> src/scene/transform.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl TransformBuilder {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] 34 |     pub fn build(self) -> Transform {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `min` and `max` are never used
[INFO] [stdout]   --> src/acceleration/bounds.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl AABB {
[INFO] [stdout]    | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn min(&self) -> Point3<f32> { self.min }
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 31 |     pub fn max(&self) -> Point3<f32> { self.max }
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BVH4` is never constructed
[INFO] [stdout]  --> src/acceleration/bvh.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct BVH4 {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BVHNode` is never used
[INFO] [stdout]  --> src/acceleration/bvh.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | enum BVHNode {
[INFO] [stdout]   |      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LeafNode` is never constructed
[INFO] [stdout]   --> src/acceleration/bvh.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct LeafNode {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InternalNode` is never constructed
[INFO] [stdout]   --> src/acceleration/bvh.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | struct InternalNode {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `bounds` is never used
[INFO] [stdout]   --> src/acceleration/kdtree.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | impl KDTree {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn bounds(&self) -> AABB {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `bounds` is never used
[INFO] [stdout]   --> src/content/mesh.rs:84:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl MeshData {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn bounds(&self) -> AABB {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `material_id` is never read
[INFO] [stdout]   --> src/content/triangle.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Triangle {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 15 |     vertices: [Vertex; 3],
[INFO] [stdout] 16 |     material_id: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Triangle` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `convert_camera` is never used
[INFO] [stdout]  --> src/content/gltf/converter.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn convert_camera(document: Document) -> anyhow::Result<PerspectiveCamera> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ContentCache` is never constructed
[INFO] [stdout]  --> src/content/content_cache.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct ContentCache<T, U> {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get`, and `insert` are never used
[INFO] [stdout]   --> src/content/content_cache.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | / impl<T, U> ContentCache<T,U>
[INFO] [stdout] 10 | | where T: Eq + Hash{
[INFO] [stdout]    | |__________________- associated items in this implementation
[INFO] [stdout] 11 |       pub fn new() -> Self {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |       pub fn get(&self, key: T) -> Option<Arc<U>> {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |       pub fn insert(&mut self, key: T, item: U) -> Arc<U> {
[INFO] [stdout]    |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `shade` is never used
[INFO] [stdout]   --> src/integrator/whitted.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl WhittedIntegrator {
[INFO] [stdout]    | ---------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 18 |     fn shade(context: &ShadingContext) -> f32 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PathTracingIntegrator` is never constructed
[INFO] [stdout]  --> src/integrator/pathtracing.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct PathTracingIntegrator {}
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `trace` are never used
[INFO] [stdout]   --> src/integrator/pathtracing.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl PathTracingIntegrator {
[INFO] [stdout]    | -------------------------- associated items in this implementation
[INFO] [stdout] 12 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn trace(&self, ray: &Ray, scene: &Scene) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/static_stack.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  7 | / impl<T, const N: usize> StaticStack<T, N>
[INFO] [stdout]  8 | | where T: Default + Copy
[INFO] [stdout]    | |_______________________- associated function in this implementation
[INFO] [stdout]  9 |   {
[INFO] [stdout] 10 |       pub fn new() -> Self {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/scene/scene.rs:33:22
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn intersect(&self, ray: &Ray) -> Option<ShadingContext> {
[INFO] [stdout]    |                      ^^^^^                       ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn intersect(&self, ray: &Ray) -> Option<ShadingContext<'_>> {
[INFO] [stdout]    |                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L_d` should have a snake case name
[INFO] [stdout]   --> src/integrator/whitted.rs:42:29
[INFO] [stdout]    |
[INFO] [stdout] 42 |                     let mut L_d = Vector3::new(0.0, 0.0, 0.0);
[INFO] [stdout]    |                             ^^^ help: convert the identifier to snake case: `l_d`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 16s
[INFO] running `Command { std: "docker" "inspect" "089f88ae268339f672577130ea981f974f7e23a1198cc9116e30d9b87e043810", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "089f88ae268339f672577130ea981f974f7e23a1198cc9116e30d9b87e043810", kill_on_drop: false }`
[INFO] [stdout] 089f88ae268339f672577130ea981f974f7e23a1198cc9116e30d9b87e043810
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 095502e80b1bf03fbc48b3a590a7644a414a57eff87c6991a93cd4b5c2ccc692
[INFO] running `Command { std: "docker" "start" "-a" "095502e80b1bf03fbc48b3a590a7644a414a57eff87c6991a93cd4b5c2ccc692", kill_on_drop: false }`
[INFO] [stderr]    Compiling raytracer v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::camera::viewpoint::Viewpoint`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::camera::viewpoint::Viewpoint;
[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 imports: `Intersectable` and `Shadeable`
[INFO] [stdout]  --> src/main.rs:6:20
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::scene::{Intersectable, Shadeable};
[INFO] [stdout]   |                    ^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::prelude::*`
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Matrix`
[INFO] [stdout]  --> src/scene/mod.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use nalgebra::{Matrix, Matrix4, Point3, Vector2, Vector3};
[INFO] [stdout]   |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::scene::Intersection`
[INFO] [stdout]  --> src/scene/material.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::scene::Intersection;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Intersection`
[INFO] [stdout]  --> src/scene/scene.rs:5:46
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::scene::{Intersectable, Shadeable, Intersection, ShadingContext};
[INFO] [stdout]   |                                              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Point3`, `Quaternion`, and `Vector3`
[INFO] [stdout]  --> src/scene/transform.rs:1:25
[INFO] [stdout]   |
[INFO] [stdout] 1 | use nalgebra::{Matrix4, Point3, Quaternion, Rotation3, Scale3, Translation3, Vector3};
[INFO] [stdout]   |                         ^^^^^^  ^^^^^^^^^^                                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Rng` and `random`
[INFO] [stdout]    --> src/acceleration/kdtree.rs:233:16
[INFO] [stdout]     |
[INFO] [stdout] 233 |     use rand::{random, Rng};
[INFO] [stdout]     |                ^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> src/acceleration/kdtree.rs:234:9
[INFO] [stdout]     |
[INFO] [stdout] 234 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/content/mesh.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Vector2` and `Vector3`
[INFO] [stdout]  --> src/content/mesh.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use nalgebra::{Point3, Vector2, Vector3};
[INFO] [stdout]   |                        ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::scene::scene::Scene`
[INFO] [stdout]   --> src/content/mesh.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::scene::scene::Scene;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::scene::Intersection`
[INFO] [stdout]  --> src/content/triangle.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::scene::Intersection;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `gltf::scene::iter`
[INFO] [stdout]   --> src/content/gltf/loader.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use gltf::scene::iter;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `gltf::camera::Projection`
[INFO] [stdout]  --> src/content/gltf/converter.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use gltf::camera::Projection;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::content::scene_loader::SceneError`
[INFO] [stdout]  --> src/content/gltf/converter.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::content::scene_loader::SceneError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Matrix4` and `Point3`
[INFO] [stdout]  --> src/content/gltf/util.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use nalgebra::{Matrix4, Point3};
[INFO] [stdout]   |                ^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Point3`
[INFO] [stdout]  --> src/integrator/whitted.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use nalgebra::{Point3, Vector3};
[INFO] [stdout]   |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nalgebra::Vector3`
[INFO] [stdout]  --> src/integrator/pathtracing.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use nalgebra::Vector3;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::iter::IntoParallelIterator`
[INFO] [stdout]  --> src/integrator/pathtracing.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rayon::iter::IntoParallelIterator;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::camera::viewpoint::Viewpoint`
[INFO] [stdout]  --> src/integrator/pathtracing.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::camera::viewpoint::Viewpoint;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]   --> src/scene/material.rs:31:35
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub fn sample_emissive(&self, u: f32, v: f32) -> Vector3<f32> {
[INFO] [stdout]    |                                   ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub fn sample_emissive(&self, _u: f32, v: f32) -> Vector3<f32> {
[INFO] [stdout]    |                                   +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `PLANE_DISTANCE`
[INFO] [stdout]    |
[INFO] [stdout] 31 -     pub fn sample_emissive(&self, u: f32, v: f32) -> Vector3<f32> {
[INFO] [stdout] 31 +     pub fn sample_emissive(&self, camera::perspective_camera::ViewPlane::new::PLANE_DISTANCE: f32, v: f32) -> Vector3<f32> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/scene/material.rs:31:43
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub fn sample_emissive(&self, u: f32, v: f32) -> Vector3<f32> {
[INFO] [stdout]    |                                           ^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub fn sample_emissive(&self, u: f32, _v: f32) -> Vector3<f32> {
[INFO] [stdout]    |                                           +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `PLANE_DISTANCE`
[INFO] [stdout]    |
[INFO] [stdout] 31 -     pub fn sample_emissive(&self, u: f32, v: f32) -> Vector3<f32> {
[INFO] [stdout] 31 +     pub fn sample_emissive(&self, u: f32, camera::perspective_camera::ViewPlane::new::PLANE_DISTANCE: f32) -> Vector3<f32> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `foo`
[INFO] [stdout]   --> src/scene/transform.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let foo = self.translation * self.rotation;
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_foo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t_min`
[INFO] [stdout]   --> src/content/mesh.rs:42:36
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn intersect(&self, ray: &Ray, t_min: f32, t_max: f32) -> Option<Intersection> {
[INFO] [stdout]    |                                    ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn intersect(&self, ray: &Ray, _t_min: f32, t_max: f32) -> Option<Intersection> {
[INFO] [stdout]    |                                    +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `PLANE_DISTANCE`
[INFO] [stdout]    |
[INFO] [stdout] 42 -     fn intersect(&self, ray: &Ray, t_min: f32, t_max: f32) -> Option<Intersection> {
[INFO] [stdout] 42 +     fn intersect(&self, ray: &Ray, camera::perspective_camera::ViewPlane::new::PLANE_DISTANCE: f32, t_max: f32) -> Option<Intersection> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t_max`
[INFO] [stdout]   --> src/content/mesh.rs:42:48
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn intersect(&self, ray: &Ray, t_min: f32, t_max: f32) -> Option<Intersection> {
[INFO] [stdout]    |                                                ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn intersect(&self, ray: &Ray, t_min: f32, _t_max: f32) -> Option<Intersection> {
[INFO] [stdout]    |                                                +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `PLANE_DISTANCE`
[INFO] [stdout]    |
[INFO] [stdout] 42 -     fn intersect(&self, ray: &Ray, t_min: f32, t_max: f32) -> Option<Intersection> {
[INFO] [stdout] 42 +     fn intersect(&self, ray: &Ray, t_min: f32, camera::perspective_camera::ViewPlane::new::PLANE_DISTANCE: f32) -> Option<Intersection> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mesh_nodes`
[INFO] [stdout]   --> src/content/gltf/loader.rs:94:13
[INFO] [stdout]    |
[INFO] [stdout] 94 |         let mesh_nodes = scene.nodes()
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mesh_nodes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `material_map`
[INFO] [stdout]    --> src/content/gltf/loader.rs:126:17
[INFO] [stdout]     |
[INFO] [stdout] 126 |         let mut material_map : Vec<Option<Arc<Material>>> = vec![None; total_material_count];
[INFO] [stdout]     |                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_material_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/content/gltf/loader.rs:126:13
[INFO] [stdout]     |
[INFO] [stdout] 126 |         let mut material_map : Vec<Option<Arc<Material>>> = vec![None; total_material_count];
[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: `images`
[INFO] [stdout]    --> src/content/gltf/loader.rs:216:34
[INFO] [stdout]     |
[INFO] [stdout] 216 |         let (document, buffers , images) = gltf::import(path)?;
[INFO] [stdout]     |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_images`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `document`
[INFO] [stdout]  --> src/content/gltf/converter.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn convert_camera(document: Document) -> anyhow::Result<PerspectiveCamera> {
[INFO] [stdout]   |                       ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_document`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mime_type`
[INFO] [stdout]   --> src/content/gltf/material.rs:15:32
[INFO] [stdout]    |
[INFO] [stdout] 15 |             Source::Uri { uri, mime_type } => {
[INFO] [stdout]    |                                ^^^^^^^^^ help: try ignoring the field: `mime_type: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/content/gltf/material.rs:20:25
[INFO] [stdout]    |
[INFO] [stdout] 20 |                     Err(e) => panic!("Failed to load image: {}", image_path.display())
[INFO] [stdout]    |                         ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]   --> src/integrator/whitted.rs:18:14
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn shade(context: &ShadingContext) -> f32 {
[INFO] [stdout]    |              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `color`
[INFO] [stdout]   --> src/integrator/whitted.rs:37:25
[INFO] [stdout]    |
[INFO] [stdout] 37 |                     let color = hit.material.sample_color(hit.intersection.tex_coord.x, hit.intersection.tex_coord.y);
[INFO] [stdout]    |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_color`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hit`
[INFO] [stdout]   --> src/integrator/pathtracing.rs:17:35
[INFO] [stdout]    |
[INFO] [stdout] 17 |         scene.intersect(ray).map(|hit| {
[INFO] [stdout]    |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_hit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]   --> src/integrator/pathtracing.rs:26:13
[INFO] [stdout]    |
[INFO] [stdout] 26 |         let width = frame.width() as usize;
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]   --> src/integrator/pathtracing.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let height = frame.height() as usize;
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scene`
[INFO] [stdout]   --> src/integrator/pathtracing.rs:25:25
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn integrate(&self, scene: &Scene, frame: &mut Frame) {
[INFO] [stdout]    |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_scene`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `direction`, `up`, and `aspect_ratio` are never read
[INFO] [stdout]   --> src/camera/perspective_camera.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct PerspectiveCamera {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] 43 |     origin: Point3<f32>,
[INFO] [stdout] 44 |     direction: Vector3<f32>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 45 |     up: Vector3<f32>,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 46 |     aspect_ratio: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ray` is never read
[INFO] [stdout]   --> src/scene/mod.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct ShadingContext<'a> {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 20 |     pub ray: Ray,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `bounds` is never used
[INFO] [stdout]   --> src/scene/mod.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub trait Intersectable {
[INFO] [stdout]    |           ------------- method in this trait
[INFO] [stdout] 27 |     fn bounds(&self) -> AABB;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SceneObject` is never constructed
[INFO] [stdout]   --> src/scene/mod.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct SceneObject {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Sphere` is never constructed
[INFO] [stdout]   --> src/scene/mod.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct Sphere {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `emissive_texture` and `roughness` are never read
[INFO] [stdout]   --> src/scene/material.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct Material {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     emissive_texture: Option<Texture>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 14 |     emissive: Vector3<f32>,
[INFO] [stdout] 15 |     roughness: f32,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `color` and `roughness` are never used
[INFO] [stdout]   --> src/scene/material.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Material {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn color(&self) -> Vector3<f32> { self.color }
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 24 |     pub fn roughness(&self) -> f32 { self.roughness }
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SceneNode` is never constructed
[INFO] [stdout]  --> src/scene/scene.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct SceneNode {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SceneObject` is never constructed
[INFO] [stdout]   --> src/scene/scene.rs:59:12
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub struct SceneObject {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Transform` is never constructed
[INFO] [stdout]  --> src/scene/transform.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Transform {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/scene/transform.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | impl Transform {
[INFO] [stdout]   | -------------- associated function in this implementation
[INFO] [stdout] 9 |     pub fn new(world: Matrix4<f32>) -> Self {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TransformBuilder` is never constructed
[INFO] [stdout]   --> src/scene/transform.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct TransformBuilder {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `build` is never used
[INFO] [stdout]   --> src/scene/transform.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl TransformBuilder {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] 34 |     pub fn build(self) -> Transform {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BVH4` is never constructed
[INFO] [stdout]  --> src/acceleration/bvh.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct BVH4 {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BVHNode` is never used
[INFO] [stdout]  --> src/acceleration/bvh.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | enum BVHNode {
[INFO] [stdout]   |      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LeafNode` is never constructed
[INFO] [stdout]   --> src/acceleration/bvh.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct LeafNode {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InternalNode` is never constructed
[INFO] [stdout]   --> src/acceleration/bvh.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | struct InternalNode {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `bounds` is never used
[INFO] [stdout]   --> src/acceleration/kdtree.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | impl KDTree {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn bounds(&self) -> AABB {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `bounds` is never used
[INFO] [stdout]   --> src/content/mesh.rs:84:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl MeshData {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn bounds(&self) -> AABB {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `material_id` is never read
[INFO] [stdout]   --> src/content/triangle.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Triangle {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 15 |     vertices: [Vertex; 3],
[INFO] [stdout] 16 |     material_id: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Triangle` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `convert_camera` is never used
[INFO] [stdout]  --> src/content/gltf/converter.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn convert_camera(document: Document) -> anyhow::Result<PerspectiveCamera> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ContentCache` is never constructed
[INFO] [stdout]  --> src/content/content_cache.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct ContentCache<T, U> {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get`, and `insert` are never used
[INFO] [stdout]   --> src/content/content_cache.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | / impl<T, U> ContentCache<T,U>
[INFO] [stdout] 10 | | where T: Eq + Hash{
[INFO] [stdout]    | |__________________- associated items in this implementation
[INFO] [stdout] 11 |       pub fn new() -> Self {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |       pub fn get(&self, key: T) -> Option<Arc<U>> {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |       pub fn insert(&mut self, key: T, item: U) -> Arc<U> {
[INFO] [stdout]    |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `shade` is never used
[INFO] [stdout]   --> src/integrator/whitted.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl WhittedIntegrator {
[INFO] [stdout]    | ---------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 18 |     fn shade(context: &ShadingContext) -> f32 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PathTracingIntegrator` is never constructed
[INFO] [stdout]  --> src/integrator/pathtracing.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct PathTracingIntegrator {}
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `trace` are never used
[INFO] [stdout]   --> src/integrator/pathtracing.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl PathTracingIntegrator {
[INFO] [stdout]    | -------------------------- associated items in this implementation
[INFO] [stdout] 12 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn trace(&self, ray: &Ray, scene: &Scene) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/static_stack.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  7 | / impl<T, const N: usize> StaticStack<T, N>
[INFO] [stdout]  8 | | where T: Default + Copy
[INFO] [stdout]    | |_______________________- associated function in this implementation
[INFO] [stdout]  9 |   {
[INFO] [stdout] 10 |       pub fn new() -> Self {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/scene/scene.rs:33:22
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn intersect(&self, ray: &Ray) -> Option<ShadingContext> {
[INFO] [stdout]    |                      ^^^^^                       ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn intersect(&self, ray: &Ray) -> Option<ShadingContext<'_>> {
[INFO] [stdout]    |                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L_d` should have a snake case name
[INFO] [stdout]   --> src/integrator/whitted.rs:42:29
[INFO] [stdout]    |
[INFO] [stdout] 42 |                     let mut L_d = Vector3::new(0.0, 0.0, 0.0);
[INFO] [stdout]    |                             ^^^ help: convert the identifier to snake case: `l_d`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.03s
[INFO] running `Command { std: "docker" "inspect" "095502e80b1bf03fbc48b3a590a7644a414a57eff87c6991a93cd4b5c2ccc692", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "095502e80b1bf03fbc48b3a590a7644a414a57eff87c6991a93cd4b5c2ccc692", kill_on_drop: false }`
[INFO] [stdout] 095502e80b1bf03fbc48b3a590a7644a414a57eff87c6991a93cd4b5c2ccc692
