[INFO] cloning repository https://github.com/bittermandel/strale-cpu
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/bittermandel/strale-cpu" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbittermandel%2Fstrale-cpu", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbittermandel%2Fstrale-cpu'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] fa4d4feee091edf817122c6c36cfcea0c90c837d
[INFO] checking bittermandel/strale-cpu against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbittermandel%2Fstrale-cpu" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/bittermandel/strale-cpu
[INFO] finished tweaking git repo https://github.com/bittermandel/strale-cpu
[INFO] tweaked toml for git repo https://github.com/bittermandel/strale-cpu written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/bittermandel/strale-cpu on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/bittermandel/strale-cpu already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "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
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded indicatif v0.17.0
[INFO] [stderr]   Downloaded tobj v3.2.3
[INFO] [stderr]   Downloaded rand_seeder v0.2.3
[INFO] [stderr]   Downloaded ciborium-ll v0.2.0
[INFO] [stderr]   Downloaded console v0.15.1
[INFO] [stderr]   Downloaded ciborium-io v0.2.0
[INFO] [stderr]   Downloaded ciborium v0.2.0
[INFO] [stderr]   Downloaded textwrap v0.15.1
[INFO] [stderr]   Downloaded serde v1.0.145
[INFO] [stderr]   Downloaded png v0.17.6
[INFO] [stderr]   Downloaded serde_derive v1.0.145
[INFO] [stderr]   Downloaded clap v3.2.22
[INFO] [stderr]   Downloaded image v0.24.4
[INFO] [stderr]   Downloaded jpeg-decoder v0.2.6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 04e98ea968cbc4c35e5f873fa777cb22c55f0cb0311a564445d47a52056e70d8
[INFO] running `Command { std: "docker" "start" "-a" "04e98ea968cbc4c35e5f873fa777cb22c55f0cb0311a564445d47a52056e70d8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "04e98ea968cbc4c35e5f873fa777cb22c55f0cb0311a564445d47a52056e70d8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "04e98ea968cbc4c35e5f873fa777cb22c55f0cb0311a564445d47a52056e70d8", kill_on_drop: false }`
[INFO] [stdout] 04e98ea968cbc4c35e5f873fa777cb22c55f0cb0311a564445d47a52056e70d8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 21d2afc4f127d5bc3fc6c45ec551be4222742b582530ee04bd1a287d75b17eea
[INFO] running `Command { std: "docker" "start" "-a" "21d2afc4f127d5bc3fc6c45ec551be4222742b582530ee04bd1a287d75b17eea", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.132
[INFO] [stderr]     Checking once_cell v1.14.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.46
[INFO] [stderr]    Compiling syn v1.0.102
[INFO] [stderr]    Compiling crossbeam-utils v0.8.11
[INFO] [stderr]    Compiling serde_derive v1.0.145
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.10
[INFO] [stderr]    Compiling serde v1.0.145
[INFO] [stderr]    Compiling rayon-core v1.9.3
[INFO] [stderr]    Compiling indexmap v1.9.1
[INFO] [stderr]    Compiling serde_json v1.0.85
[INFO] [stderr]     Checking either v1.8.0
[INFO] [stderr]    Compiling ahash v0.7.6
[INFO] [stderr]    Compiling rayon v1.5.3
[INFO] [stderr]     Checking ciborium-io v0.2.0
[INFO] [stderr]     Checking itoa v1.0.4
[INFO] [stderr]     Checking plotters-backend v0.3.4
[INFO] [stderr]     Checking ryu v1.0.11
[INFO] [stderr]     Checking half v1.8.2
[INFO] [stderr]     Checking os_str_bytes v6.3.0
[INFO] [stderr]     Checking miniz_oxide v0.5.4
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]     Checking cast v0.3.0
[INFO] [stderr]     Checking unicode-width v0.1.9
[INFO] [stderr]     Checking textwrap v0.15.1
[INFO] [stderr]     Checking plotters-svg v0.3.3
[INFO] [stderr]     Checking regex-syntax v0.6.27
[INFO] [stderr]     Checking jpeg-decoder v0.2.6
[INFO] [stderr]     Checking anes v0.1.6
[INFO] [stderr]     Checking bytemuck v1.12.1
[INFO] [stderr]     Checking clap_lex v0.2.4
[INFO] [stderr]     Checking ciborium-ll v0.2.0
[INFO] [stderr]     Checking oorandom v11.1.3
[INFO] [stderr]     Checking plotters v0.3.4
[INFO] [stderr]     Checking flate2 v1.0.24
[INFO] [stderr]     Checking crossbeam-channel v0.5.6
[INFO] [stderr]     Checking image v0.24.4
[INFO] [stderr]    Compiling quote v1.0.21
[INFO] [stderr]     Checking png v0.17.6
[INFO] [stderr]     Checking clap v3.2.22
[INFO] [stderr]     Checking getrandom v0.2.7
[INFO] [stderr]     Checking num_cpus v1.13.1
[INFO] [stderr]     Checking terminal_size v0.1.17
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking crossbeam-deque v0.8.2
[INFO] [stderr]     Checking console v0.15.1
[INFO] [stderr]     Checking rand_core v0.6.3
[INFO] [stderr]     Checking criterion-plot v0.5.0
[INFO] [stderr]     Checking regex v1.6.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand_seeder v0.2.3
[INFO] [stderr]     Checking tobj v3.2.3
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking indicatif v0.17.0
[INFO] [stderr]     Checking ciborium v0.2.0
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]     Checking criterion v0.4.0
[INFO] [stderr]     Checking raytrace v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `cmp::Ordering`
[INFO] [stdout]  --> src/bvh/sah.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::{cmp::Ordering, time::Instant};
[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: `fs::File` and `io::BufReader`
[INFO] [stdout]  --> src/scene.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fs::File, io::BufReader, sync::Arc};
[INFO] [stdout]   |           ^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vec3`
[INFO] [stdout]  --> src/scene.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | use glam::{Vec3, Vec3A};
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `GPU_LOAD_OPTIONS` and `OFFLINE_RENDERING_LOAD_OPTIONS`
[INFO] [stdout]  --> src/scene.rs:6:25
[INFO] [stdout]   |
[INFO] [stdout] 6 | use tobj::{LoadOptions, GPU_LOAD_OPTIONS, OFFLINE_RENDERING_LOAD_OPTIONS};
[INFO] [stdout]   |                         ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `image::ImageResult`
[INFO] [stdout]  --> src/texture/image.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use image::ImageResult;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `#![recursion_limit]` attribute can only be used at the crate root
[INFO] [stdout]  --> src/bvh/sah.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![recursion_limit = "2048"]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cmp::Ordering`
[INFO] [stdout]  --> src/bvh/sah.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::{cmp::Ordering, time::Instant};
[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: `fs::File` and `io::BufReader`
[INFO] [stdout]  --> src/scene.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fs::File, io::BufReader, sync::Arc};
[INFO] [stdout]   |           ^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vec3`
[INFO] [stdout]  --> src/scene.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | use glam::{Vec3, Vec3A};
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `GPU_LOAD_OPTIONS` and `OFFLINE_RENDERING_LOAD_OPTIONS`
[INFO] [stdout]  --> src/scene.rs:6:25
[INFO] [stdout]   |
[INFO] [stdout] 6 | use tobj::{LoadOptions, GPU_LOAD_OPTIONS, OFFLINE_RENDERING_LOAD_OPTIONS};
[INFO] [stdout]   |                         ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `image::ImageResult`
[INFO] [stdout]  --> src/texture/image.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use image::ImageResult;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `glam::Vec3A`
[INFO] [stdout]  --> src/tests.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use glam::Vec3A;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::Rng`
[INFO] [stdout]  --> src/tests.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rand::Rng;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `camera::Camera`, `hittable::Hittable`, `ray::Ray`, and `scene::Scene`
[INFO] [stdout]  --> src/tests.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::{camera::Camera, hittable::Hittable, ray::Ray, scene::Scene};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `#![recursion_limit]` attribute can only be used at the crate root
[INFO] [stdout]  --> src/bvh/sah.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![recursion_limit = "2048"]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `#![feature]` attribute can only be used at the crate root
[INFO] [stdout]  --> src/tests.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(test)]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/bvh/sah.rs:218:13
[INFO] [stdout]     |
[INFO] [stdout] 218 |         let mut indices = (0..shapes.len()).collect::<Vec<usize>>();
[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: `materials`
[INFO] [stdout]   --> src/scene.rs:70:22
[INFO] [stdout]    |
[INFO] [stdout] 70 |         let (models, materials) =
[INFO] [stdout]    |                      ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_materials`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `materials`
[INFO] [stdout]    --> src/scene.rs:219:22
[INFO] [stdout]     |
[INFO] [stdout] 219 |         let (models, materials) =
[INFO] [stdout]     |                      ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_materials`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `albedo`
[INFO] [stdout]    --> src/scene.rs:292:29
[INFO] [stdout]     |
[INFO] [stdout] 292 |                         let albedo = Vec3A::new(rng.gen(), rng.gen(), rng.gen())
[INFO] [stdout]     |                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_albedo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/texture/image.rs:28:37
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn value(&self, u: f32, v: f32, p: glam::Vec3A) -> glam::Vec3A {
[INFO] [stdout]    |                                     ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `hit`, `hit_fast`, `hit_faster`, and `grow_mut` are never used
[INFO] [stdout]    --> src/aabb.rs:36:12
[INFO] [stdout]     |
[INFO] [stdout]  13 | impl AABB {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  36 |     pub fn hit(&self, r: &Ray, _t_min: f32, _t_max: f32) -> bool {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  40 |     pub fn hit_fast(&self, r: &Ray, t_min: f32, t_max: f32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub fn hit_faster(&self, r: &Ray) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn grow_mut(&mut self, other: &Vec3A) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BvhNode` is never used
[INFO] [stdout]  --> src/bvh/naive.rs:9:6
[INFO] [stdout]   |
[INFO] [stdout] 9 | enum BvhNode {
[INFO] [stdout]   |      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Bvh` is never constructed
[INFO] [stdout]   --> src/bvh/naive.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Bvh {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `pretty_print` are never used
[INFO] [stdout]   --> src/bvh/naive.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl Bvh {
[INFO] [stdout]    | -------- associated items in this implementation
[INFO] [stdout] 20 |     pub fn new(mut objects: Vec<Box<dyn Hittable>>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn pretty_print(&self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `depth` and `parent_index` are never read
[INFO] [stdout]   --> src/bvh/sah.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 42 |     Leaf {
[INFO] [stdout]    |     ---- fields in this variant
[INFO] [stdout] 43 |         depth: u32,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 44 |         parent_index: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BVHNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `depth` and `parent_index` are never read
[INFO] [stdout]   --> src/bvh/sah.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |     Node {
[INFO] [stdout]    |     ---- fields in this variant
[INFO] [stdout] 48 |         depth: u32,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 49 |         parent_index: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BVHNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `total_surface_area` and `pretty_print` are never used
[INFO] [stdout]    --> src/bvh/sah.rs:245:12
[INFO] [stdout]     |
[INFO] [stdout] 214 | impl<'a> BVH {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub fn total_surface_area(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 260 |     pub fn pretty_print(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `w` is never read
[INFO] [stdout]   --> src/camera.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Camera {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub w: Vec3A,
[INFO] [stdout]    |         ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `point_count` is never read
[INFO] [stdout]  --> src/perlin.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Perlin {
[INFO] [stdout]   |            ------ field in this struct
[INFO] [stdout] 6 |     point_count: usize,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Perlin` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_seed` is never used
[INFO] [stdout]   --> src/scene.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn get_seed(length: usize) -> String {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_obj` and `randomize` are never used
[INFO] [stdout]    --> src/scene.rs:69:12
[INFO] [stdout]     |
[INFO] [stdout]  32 | impl Scene {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  69 |     pub fn from_obj(path: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn randomize(&mut self) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CheckerTexture` is never constructed
[INFO] [stdout]   --> src/texture/color.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct CheckerTexture {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new_from_colors` is never used
[INFO] [stdout]   --> src/texture/color.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl CheckerTexture {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 35 |     pub fn new_from_colors(c1: Vec3A, c2: Vec3A) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `joint_aabb_from_shapes` is never used
[INFO] [stdout]   --> src/util.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn joint_aabb_from_shapes(shapes: &[Box<dyn Hittable>]) -> AABB {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/bvh/sah.rs:218:13
[INFO] [stdout]     |
[INFO] [stdout] 218 |         let mut indices = (0..shapes.len()).collect::<Vec<usize>>();
[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: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/bvh/sah.rs:234:80
[INFO] [stdout]     |
[INFO] [stdout] 234 |     pub fn traverse(&'a self, r: &Ray, shapes: &'a [Box<dyn Hittable>]) -> Vec<&Box<dyn Hittable>> {
[INFO] [stdout]     |                      --                         -- the lifetime is named here  ^^^^^^^^^^^^^^^^^^ the same lifetime is elided here
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      the lifetime is named 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: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 234 |     pub fn traverse(&'a self, r: &Ray, shapes: &'a [Box<dyn Hittable>]) -> Vec<&'a Box<dyn Hittable>> {
[INFO] [stdout]     |                                                                                 ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `materials`
[INFO] [stdout]   --> src/scene.rs:70:22
[INFO] [stdout]    |
[INFO] [stdout] 70 |         let (models, materials) =
[INFO] [stdout]    |                      ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_materials`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `materials`
[INFO] [stdout]    --> src/scene.rs:219:22
[INFO] [stdout]     |
[INFO] [stdout] 219 |         let (models, materials) =
[INFO] [stdout]     |                      ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_materials`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `albedo`
[INFO] [stdout]    --> src/scene.rs:292:29
[INFO] [stdout]     |
[INFO] [stdout] 292 |                         let albedo = Vec3A::new(rng.gen(), rng.gen(), rng.gen())
[INFO] [stdout]     |                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_albedo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/texture/image.rs:28:37
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn value(&self, u: f32, v: f32, p: glam::Vec3A) -> glam::Vec3A {
[INFO] [stdout]    |                                     ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `hit`, `hit_fast`, `hit_faster`, and `grow_mut` are never used
[INFO] [stdout]    --> src/aabb.rs:36:12
[INFO] [stdout]     |
[INFO] [stdout]  13 | impl AABB {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  36 |     pub fn hit(&self, r: &Ray, _t_min: f32, _t_max: f32) -> bool {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  40 |     pub fn hit_fast(&self, r: &Ray, t_min: f32, t_max: f32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub fn hit_faster(&self, r: &Ray) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn grow_mut(&mut self, other: &Vec3A) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BvhNode` is never used
[INFO] [stdout]  --> src/bvh/naive.rs:9:6
[INFO] [stdout]   |
[INFO] [stdout] 9 | enum BvhNode {
[INFO] [stdout]   |      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Bvh` is never constructed
[INFO] [stdout]   --> src/bvh/naive.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Bvh {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `pretty_print` are never used
[INFO] [stdout]   --> src/bvh/naive.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl Bvh {
[INFO] [stdout]    | -------- associated items in this implementation
[INFO] [stdout] 20 |     pub fn new(mut objects: Vec<Box<dyn Hittable>>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn pretty_print(&self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `depth` and `parent_index` are never read
[INFO] [stdout]   --> src/bvh/sah.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 42 |     Leaf {
[INFO] [stdout]    |     ---- fields in this variant
[INFO] [stdout] 43 |         depth: u32,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 44 |         parent_index: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BVHNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `depth` and `parent_index` are never read
[INFO] [stdout]   --> src/bvh/sah.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |     Node {
[INFO] [stdout]    |     ---- fields in this variant
[INFO] [stdout] 48 |         depth: u32,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 49 |         parent_index: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BVHNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `total_surface_area` and `pretty_print` are never used
[INFO] [stdout]    --> src/bvh/sah.rs:245:12
[INFO] [stdout]     |
[INFO] [stdout] 214 | impl<'a> BVH {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub fn total_surface_area(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 260 |     pub fn pretty_print(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `w` is never read
[INFO] [stdout]   --> src/camera.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Camera {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub w: Vec3A,
[INFO] [stdout]    |         ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `point_count` is never read
[INFO] [stdout]  --> src/perlin.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Perlin {
[INFO] [stdout]   |            ------ field in this struct
[INFO] [stdout] 6 |     point_count: usize,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Perlin` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_seed` is never used
[INFO] [stdout]   --> src/scene.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn get_seed(length: usize) -> String {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_obj` and `randomize` are never used
[INFO] [stdout]    --> src/scene.rs:69:12
[INFO] [stdout]     |
[INFO] [stdout]  32 | impl Scene {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  69 |     pub fn from_obj(path: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn randomize(&mut self) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CheckerTexture` is never constructed
[INFO] [stdout]   --> src/texture/color.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct CheckerTexture {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new_from_colors` is never used
[INFO] [stdout]   --> src/texture/color.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl CheckerTexture {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 35 |     pub fn new_from_colors(c1: Vec3A, c2: Vec3A) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `joint_aabb_from_shapes` is never used
[INFO] [stdout]   --> src/util.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn joint_aabb_from_shapes(shapes: &[Box<dyn Hittable>]) -> AABB {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/bvh/sah.rs:234:80
[INFO] [stdout]     |
[INFO] [stdout] 234 |     pub fn traverse(&'a self, r: &Ray, shapes: &'a [Box<dyn Hittable>]) -> Vec<&Box<dyn Hittable>> {
[INFO] [stdout]     |                      --                         -- the lifetime is named here  ^^^^^^^^^^^^^^^^^^ the same lifetime is elided here
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      the lifetime is named 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: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 234 |     pub fn traverse(&'a self, r: &Ray, shapes: &'a [Box<dyn Hittable>]) -> Vec<&'a Box<dyn Hittable>> {
[INFO] [stdout]     |                                                                                 ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 16.33s
[INFO] running `Command { std: "docker" "inspect" "21d2afc4f127d5bc3fc6c45ec551be4222742b582530ee04bd1a287d75b17eea", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "21d2afc4f127d5bc3fc6c45ec551be4222742b582530ee04bd1a287d75b17eea", kill_on_drop: false }`
[INFO] [stdout] 21d2afc4f127d5bc3fc6c45ec551be4222742b582530ee04bd1a287d75b17eea
