[INFO] cloning repository https://github.com/vonbrank/basic-ray-tracer-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/vonbrank/basic-ray-tracer-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvonbrank%2Fbasic-ray-tracer-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvonbrank%2Fbasic-ray-tracer-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 4b66c59b0bfa50aed9332f080d951063c95a6c42
[INFO] checking vonbrank/basic-ray-tracer-rs against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvonbrank%2Fbasic-ray-tracer-rs" "/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/vonbrank/basic-ray-tracer-rs
[INFO] finished tweaking git repo https://github.com/vonbrank/basic-ray-tracer-rs
[INFO] tweaked toml for git repo https://github.com/vonbrank/basic-ray-tracer-rs written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/vonbrank/basic-ray-tracer-rs 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/vonbrank/basic-ray-tracer-rs 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]  Downloading crates ...
[INFO] [stderr]   Downloaded proc-macro2 v1.0.58
[INFO] [stderr]   Downloaded syn v2.0.16
[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] 2b5f54fd8851af1e160dc407dd38c509e5f73bb15837f7944a6703a6aa097012
[INFO] running `Command { std: "docker" "start" "-a" "2b5f54fd8851af1e160dc407dd38c509e5f73bb15837f7944a6703a6aa097012", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2b5f54fd8851af1e160dc407dd38c509e5f73bb15837f7944a6703a6aa097012", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2b5f54fd8851af1e160dc407dd38c509e5f73bb15837f7944a6703a6aa097012", kill_on_drop: false }`
[INFO] [stdout] 2b5f54fd8851af1e160dc407dd38c509e5f73bb15837f7944a6703a6aa097012
[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] 2a74357620d263471fc07d2ba3c8b106916208e602ab0c631f6a9cdeb28fccec
[INFO] running `Command { std: "docker" "start" "-a" "2a74357620d263471fc07d2ba3c8b106916208e602ab0c631f6a9cdeb28fccec", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.142
[INFO] [stderr]    Compiling crossbeam-utils v0.8.15
[INFO] [stderr]    Compiling memoffset v0.8.0
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.14
[INFO] [stderr]    Compiling proc-macro2 v1.0.58
[INFO] [stderr]     Checking simd-adler32 v0.3.5
[INFO] [stderr]    Compiling quote v1.0.27
[INFO] [stderr]    Compiling rayon-core v1.11.0
[INFO] [stderr]    Compiling lock_api v0.4.9
[INFO] [stderr]    Compiling crc32fast v1.3.2
[INFO] [stderr]    Compiling num-traits v0.2.15
[INFO] [stderr]    Compiling futures-core v0.3.28
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]     Checking either v1.8.1
[INFO] [stderr]    Compiling num-rational v0.4.1
[INFO] [stderr]     Checking futures-sink v0.3.28
[INFO] [stderr]     Checking weezl v0.1.7
[INFO] [stderr]     Checking miniz_oxide v0.7.1
[INFO] [stderr]     Checking zune-inflate v0.2.54
[INFO] [stderr]     Checking fdeflate v0.3.0
[INFO] [stderr]     Checking miniz_oxide v0.6.2
[INFO] [stderr]     Checking half v2.2.1
[INFO] [stderr]     Checking bytemuck v1.13.1
[INFO] [stderr]     Checking crossbeam-channel v0.5.8
[INFO] [stderr]     Checking gif v0.12.0
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]     Checking flate2 v1.0.26
[INFO] [stderr]     Checking crossbeam-deque v0.8.3
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]     Checking png v0.17.8
[INFO] [stderr]    Compiling syn v2.0.16
[INFO] [stderr]     Checking getrandom v0.2.9
[INFO] [stderr]     Checking num_cpus v1.15.0
[INFO] [stderr]     Checking nanorand v0.7.0
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking rayon v1.7.0
[INFO] [stderr]     Checking jpeg-decoder v0.3.0
[INFO] [stderr]     Checking tiff v0.8.1
[INFO] [stderr]    Compiling pin-project-internal v1.1.0
[INFO] [stderr]     Checking pin-project v1.1.0
[INFO] [stderr]     Checking flume v0.10.14
[INFO] [stderr]     Checking exr v1.6.3
[INFO] [stderr]     Checking image v0.24.6
[INFO] [stderr]     Checking basic-ray-tracing v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `fmt::Display` and `num`
[INFO] [stdout]  --> src/color.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fmt::Display, num};
[INFO] [stdout]   |           ^^^^^^^^^^^^  ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rc::Rc`
[INFO] [stdout]  --> src/hittable_list.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{rc::Rc, sync::Arc};
[INFO] [stdout]   |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rc::Rc`
[INFO] [stdout]  --> src/material.rs:1:23
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fmt::Debug, rc::Rc, sync::Arc};
[INFO] [stdout]   |                       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `random_f32`
[INFO] [stdout]  --> src/perlin.rs:2:13
[INFO] [stdout]   |
[INFO] [stdout] 2 |     utils::{random_f32, random_i32_with_range},
[INFO] [stdout]   |             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/vec3.rs:191:8
[INFO] [stdout]     |
[INFO] [stdout] 191 |     if (Vec3::dot(&in_unit_sphere, normal) > 0.0) {
[INFO] [stdout]     |        ^                                        ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 191 -     if (Vec3::dot(&in_unit_sphere, normal) > 0.0) {
[INFO] [stdout] 191 +     if Vec3::dot(&in_unit_sphere, normal) > 0.0  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `fmt::Display` and `num`
[INFO] [stdout]  --> src/color.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fmt::Display, num};
[INFO] [stdout]   |           ^^^^^^^^^^^^  ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rc::Rc`
[INFO] [stdout]  --> src/hittable_list.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{rc::Rc, sync::Arc};
[INFO] [stdout]   |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rc::Rc`
[INFO] [stdout]  --> src/material.rs:1:23
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fmt::Debug, rc::Rc, sync::Arc};
[INFO] [stdout]   |                       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `random_f32`
[INFO] [stdout]  --> src/perlin.rs:2:13
[INFO] [stdout]   |
[INFO] [stdout] 2 |     utils::{random_f32, random_i32_with_range},
[INFO] [stdout]   |             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/vec3.rs:191:8
[INFO] [stdout]     |
[INFO] [stdout] 191 |     if (Vec3::dot(&in_unit_sphere, normal) > 0.0) {
[INFO] [stdout]     |        ^                                        ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 191 -     if (Vec3::dot(&in_unit_sphere, normal) > 0.0) {
[INFO] [stdout] 191 +     if Vec3::dot(&in_unit_sphere, normal) > 0.0  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time0`
[INFO] [stdout]   --> src/aarec.rs:43:28
[INFO] [stdout]    |
[INFO] [stdout] 43 |     fn bounding_box(&self, time0: f32, time1: f32, output_box: &mut crate::aabb::AABB) -> bool {
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_time0`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time1`
[INFO] [stdout]   --> src/aarec.rs:43:40
[INFO] [stdout]    |
[INFO] [stdout] 43 |     fn bounding_box(&self, time0: f32, time1: f32, output_box: &mut crate::aabb::AABB) -> bool {
[INFO] [stdout]    |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_time1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time0`
[INFO] [stdout]    --> src/aarec.rs:120:28
[INFO] [stdout]     |
[INFO] [stdout] 120 |     fn bounding_box(&self, time0: f32, time1: f32, output_box: &mut crate::aabb::AABB) -> bool {
[INFO] [stdout]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_time0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time1`
[INFO] [stdout]    --> src/aarec.rs:120:40
[INFO] [stdout]     |
[INFO] [stdout] 120 |     fn bounding_box(&self, time0: f32, time1: f32, output_box: &mut crate::aabb::AABB) -> bool {
[INFO] [stdout]     |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_time1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time0`
[INFO] [stdout]    --> src/aarec.rs:197:28
[INFO] [stdout]     |
[INFO] [stdout] 197 |     fn bounding_box(&self, time0: f32, time1: f32, output_box: &mut crate::aabb::AABB) -> bool {
[INFO] [stdout]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_time0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time1`
[INFO] [stdout]    --> src/aarec.rs:197:40
[INFO] [stdout]     |
[INFO] [stdout] 197 |     fn bounding_box(&self, time0: f32, time1: f32, output_box: &mut crate::aabb::AABB) -> bool {
[INFO] [stdout]     |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_time1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time0`
[INFO] [stdout]    --> src/bvh.rs:114:28
[INFO] [stdout]     |
[INFO] [stdout] 114 |     fn bounding_box(&self, time0: f32, time1: f32, output_box: &mut AABB) -> bool {
[INFO] [stdout]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_time0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time1`
[INFO] [stdout]    --> src/bvh.rs:114:40
[INFO] [stdout]     |
[INFO] [stdout] 114 |     fn bounding_box(&self, time0: f32, time1: f32, output_box: &mut AABB) -> bool {
[INFO] [stdout]     |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_time1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `debugging`
[INFO] [stdout]   --> src/constant_medium.rs:44:13
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let debugging = enable_debug && random_f32() < 0.00001;
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_debugging`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time0`
[INFO] [stdout]    --> src/cube.rs:102:28
[INFO] [stdout]     |
[INFO] [stdout] 102 |     fn bounding_box(&self, time0: f32, time1: f32, output_box: &mut crate::aabb::AABB) -> bool {
[INFO] [stdout]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_time0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time1`
[INFO] [stdout]    --> src/cube.rs:102:40
[INFO] [stdout]     |
[INFO] [stdout] 102 |     fn bounding_box(&self, time0: f32, time1: f32, output_box: &mut crate::aabb::AABB) -> bool {
[INFO] [stdout]     |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_time1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time0`
[INFO] [stdout]    --> src/hittable.rs:179:28
[INFO] [stdout]     |
[INFO] [stdout] 179 |     fn bounding_box(&self, time0: f32, time1: f32, output_box: &mut AABB) -> bool {
[INFO] [stdout]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_time0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time1`
[INFO] [stdout]    --> src/hittable.rs:179:40
[INFO] [stdout]     |
[INFO] [stdout] 179 |     fn bounding_box(&self, time0: f32, time1: f32, output_box: &mut AABB) -> bool {
[INFO] [stdout]     |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_time1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r_in`
[INFO] [stdout]   --> src/material.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |         r_in: &Ray,
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_r_in`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rec`
[INFO] [stdout]   --> src/material.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |         rec: &HitRecord,
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_rec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `attenuation`
[INFO] [stdout]   --> src/material.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |         attenuation: &mut Color,
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_attenuation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scattered`
[INFO] [stdout]   --> src/material.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |         scattered: &mut Ray,
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scattered`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]   --> src/material.rs:22:23
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn emitted(&self, u: f32, v: f32, p: &Point3) -> Color {
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/material.rs:22:31
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn emitted(&self, u: f32, v: f32, p: &Point3) -> Color {
[INFO] [stdout]    |                               ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/material.rs:22:39
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn emitted(&self, u: f32, v: f32, p: &Point3) -> Color {
[INFO] [stdout]    |                                       ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r_in`
[INFO] [stdout]    --> src/material.rs:187:9
[INFO] [stdout]     |
[INFO] [stdout] 187 |         r_in: &Ray,
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_r_in`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rec`
[INFO] [stdout]    --> src/material.rs:188:9
[INFO] [stdout]     |
[INFO] [stdout] 188 |         rec: &HitRecord,
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_rec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `attenuation`
[INFO] [stdout]    --> src/material.rs:189:9
[INFO] [stdout]     |
[INFO] [stdout] 189 |         attenuation: &mut Color,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_attenuation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scattered`
[INFO] [stdout]    --> src/material.rs:190:9
[INFO] [stdout]     |
[INFO] [stdout] 190 |         scattered: &mut Ray,
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scattered`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/perlin.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |         for i in 0..Perlin::point_count {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/perlin.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let mut u = p.x() - p.x().floor();
[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: variable does not need to be mutable
[INFO] [stdout]   --> src/perlin.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let mut v = p.y() - p.y().floor();
[INFO] [stdout]    |             ----^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/perlin.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let mut w = p.z() - p.z().floor();
[INFO] [stdout]    |             ----^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/perlin.rs:62:13
[INFO] [stdout]    |
[INFO] [stdout] 62 |         for i in 0..depth {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time0`
[INFO] [stdout]   --> src/sphere.rs:86:28
[INFO] [stdout]    |
[INFO] [stdout] 86 |     fn bounding_box(&self, time0: f32, time1: f32, output_box: &mut crate::aabb::AABB) -> bool {
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_time0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time1`
[INFO] [stdout]   --> src/sphere.rs:86:40
[INFO] [stdout]    |
[INFO] [stdout] 86 |     fn bounding_box(&self, time0: f32, time1: f32, output_box: &mut crate::aabb::AABB) -> bool {
[INFO] [stdout]    |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_time1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]   --> src/texture.rs:30:21
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn value(&self, u: f32, v: f32, p: &Point3) -> Color {
[INFO] [stdout]    |                     ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/texture.rs:30:29
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn value(&self, u: f32, v: f32, p: &Point3) -> Color {
[INFO] [stdout]    |                             ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/texture.rs:30:37
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn value(&self, u: f32, v: f32, p: &Point3) -> Color {
[INFO] [stdout]    |                                     ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]   --> src/texture.rs:87:21
[INFO] [stdout]    |
[INFO] [stdout] 87 |     fn value(&self, u: f32, v: f32, p: &Point3) -> Color {
[INFO] [stdout]    |                     ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/texture.rs:87:29
[INFO] [stdout]    |
[INFO] [stdout] 87 |     fn value(&self, u: f32, v: f32, p: &Point3) -> Color {
[INFO] [stdout]    |                             ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]    --> src/texture.rs:148:37
[INFO] [stdout]     |
[INFO] [stdout] 148 |     fn value(&self, u: f32, v: f32, p: &Point3) -> Color {
[INFO] [stdout]     |                                     ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let mut max_depth = 50;
[INFO] [stdout]    |         ----^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `world` is never read
[INFO] [stdout]   --> src/main.rs:56:40
[INFO] [stdout]    |
[INFO] [stdout] 56 |     let mut world: Arc<dyn Hittable> = Arc::new(HittableList::new());
[INFO] [stdout]    |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `look_from` is never read
[INFO] [stdout]   --> src/main.rs:57:25
[INFO] [stdout]    |
[INFO] [stdout] 57 |     let mut look_from = Point3::default();
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `look_at` is never read
[INFO] [stdout]   --> src/main.rs:58:23
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let mut look_at = Point3::default();
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `vfov` is never read
[INFO] [stdout]   --> src/main.rs:59:20
[INFO] [stdout]    |
[INFO] [stdout] 59 |     let mut vfov = 4.0;
[INFO] [stdout]    |                    ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `background` is never read
[INFO] [stdout]   --> src/main.rs:61:26
[INFO] [stdout]    |
[INFO] [stdout] 61 |     let mut background = Color::default();
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `default` is never used
[INFO] [stdout]   --> src/aarec.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl XYRect {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 20 |     pub fn default() -> XYRect {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `default` is never used
[INFO] [stdout]   --> src/aarec.rs:97:12
[INFO] [stdout]    |
[INFO] [stdout] 96 | impl XZRect {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 97 |     pub fn default() -> XZRect {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `default` is never used
[INFO] [stdout]    --> src/aarec.rs:174:12
[INFO] [stdout]     |
[INFO] [stdout] 173 | impl YZRect {
[INFO] [stdout]     | ----------- associated function in this implementation
[INFO] [stdout] 174 |     pub fn default() -> YZRect {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_color` is never used
[INFO] [stdout]  --> src/color.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn write_color(pixel_color: Color, samples_per_pixel: i32) {
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_texture` is never used
[INFO] [stdout]   --> src/constant_medium.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl ConstantMedium {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 19 |     pub fn with_texture(b: Arc<dyn Hittable>, d: f32, a: Arc<dyn Texture>) -> ConstantMedium {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_texture` is never used
[INFO] [stdout]    --> src/constant_medium.rs:107:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl Isotropic {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn with_texture(a: Arc<dyn Texture>) -> Isotropic {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `default` is never used
[INFO] [stdout]   --> src/cube.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Cube {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 19 |     pub fn default() -> Cube {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `with_object` and `clear` are never used
[INFO] [stdout]   --> src/hittable_list.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl HittableList {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn with_object(object: Arc<dyn Hittable>) -> HittableList {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn clear(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_texture` is never used
[INFO] [stdout]    --> src/material.rs:173:12
[INFO] [stdout]     |
[INFO] [stdout] 172 | impl DiffuseLight {
[INFO] [stdout]     | ----------------- associated function in this implementation
[INFO] [stdout] 173 |     pub fn with_texture(a: Arc<dyn Texture>) -> DiffuseLight {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/sphere.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Sphere {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 17 |     pub fn new() -> Sphere {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `default` is never used
[INFO] [stdout]   --> src/texture.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl SolidColor {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 18 |     pub fn default() -> SolidColor {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/texture.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl CheckerTexture {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 41 |     pub fn new(odd: Arc<dyn Texture>, even: Arc<dyn Texture>) -> CheckerTexture {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `default` is never used
[INFO] [stdout]   --> src/texture.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | impl NoiseTexture {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 71 |     pub fn default() -> NoiseTexture {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `default` is never used
[INFO] [stdout]    --> src/texture.rs:105:12
[INFO] [stdout]     |
[INFO] [stdout] 102 | impl ImageTexture {
[INFO] [stdout]     | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn default() -> ImageTexture {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]   --> src/thread_pool.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 51 | struct Worker {
[INFO] [stdout]    |        ------ field in this struct
[INFO] [stdout] 52 |     id: usize,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `random_in_hemisphere` is never used
[INFO] [stdout]    --> src/vec3.rs:189:8
[INFO] [stdout]     |
[INFO] [stdout] 189 | pub fn random_in_hemisphere(normal: &Vec3) -> Vec3 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `point_count` should have an upper case name
[INFO] [stdout]   --> src/perlin.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 |     const point_count: usize = 256;
[INFO] [stdout]    |           ^^^^^^^^^^^ help: convert the identifier to upper case: `POINT_COUNT`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `bytes_per_pixel` should have an upper case name
[INFO] [stdout]    --> src/texture.rs:103:11
[INFO] [stdout]     |
[INFO] [stdout] 103 |     const bytes_per_pixel: u32 = 3;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `BYTES_PER_PIXEL`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time0`
[INFO] [stdout]   --> src/aarec.rs:43:28
[INFO] [stdout]    |
[INFO] [stdout] 43 |     fn bounding_box(&self, time0: f32, time1: f32, output_box: &mut crate::aabb::AABB) -> bool {
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_time0`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time1`
[INFO] [stdout]   --> src/aarec.rs:43:40
[INFO] [stdout]    |
[INFO] [stdout] 43 |     fn bounding_box(&self, time0: f32, time1: f32, output_box: &mut crate::aabb::AABB) -> bool {
[INFO] [stdout]    |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_time1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time0`
[INFO] [stdout]    --> src/aarec.rs:120:28
[INFO] [stdout]     |
[INFO] [stdout] 120 |     fn bounding_box(&self, time0: f32, time1: f32, output_box: &mut crate::aabb::AABB) -> bool {
[INFO] [stdout]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_time0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time1`
[INFO] [stdout]    --> src/aarec.rs:120:40
[INFO] [stdout]     |
[INFO] [stdout] 120 |     fn bounding_box(&self, time0: f32, time1: f32, output_box: &mut crate::aabb::AABB) -> bool {
[INFO] [stdout]     |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_time1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time0`
[INFO] [stdout]    --> src/aarec.rs:197:28
[INFO] [stdout]     |
[INFO] [stdout] 197 |     fn bounding_box(&self, time0: f32, time1: f32, output_box: &mut crate::aabb::AABB) -> bool {
[INFO] [stdout]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_time0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time1`
[INFO] [stdout]    --> src/aarec.rs:197:40
[INFO] [stdout]     |
[INFO] [stdout] 197 |     fn bounding_box(&self, time0: f32, time1: f32, output_box: &mut crate::aabb::AABB) -> bool {
[INFO] [stdout]     |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_time1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time0`
[INFO] [stdout]    --> src/bvh.rs:114:28
[INFO] [stdout]     |
[INFO] [stdout] 114 |     fn bounding_box(&self, time0: f32, time1: f32, output_box: &mut AABB) -> bool {
[INFO] [stdout]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_time0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time1`
[INFO] [stdout]    --> src/bvh.rs:114:40
[INFO] [stdout]     |
[INFO] [stdout] 114 |     fn bounding_box(&self, time0: f32, time1: f32, output_box: &mut AABB) -> bool {
[INFO] [stdout]     |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_time1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `debugging`
[INFO] [stdout]   --> src/constant_medium.rs:44:13
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let debugging = enable_debug && random_f32() < 0.00001;
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_debugging`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time0`
[INFO] [stdout]    --> src/cube.rs:102:28
[INFO] [stdout]     |
[INFO] [stdout] 102 |     fn bounding_box(&self, time0: f32, time1: f32, output_box: &mut crate::aabb::AABB) -> bool {
[INFO] [stdout]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_time0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time1`
[INFO] [stdout]    --> src/cube.rs:102:40
[INFO] [stdout]     |
[INFO] [stdout] 102 |     fn bounding_box(&self, time0: f32, time1: f32, output_box: &mut crate::aabb::AABB) -> bool {
[INFO] [stdout]     |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_time1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time0`
[INFO] [stdout]    --> src/hittable.rs:179:28
[INFO] [stdout]     |
[INFO] [stdout] 179 |     fn bounding_box(&self, time0: f32, time1: f32, output_box: &mut AABB) -> bool {
[INFO] [stdout]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_time0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time1`
[INFO] [stdout]    --> src/hittable.rs:179:40
[INFO] [stdout]     |
[INFO] [stdout] 179 |     fn bounding_box(&self, time0: f32, time1: f32, output_box: &mut AABB) -> bool {
[INFO] [stdout]     |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_time1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r_in`
[INFO] [stdout]   --> src/material.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |         r_in: &Ray,
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_r_in`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rec`
[INFO] [stdout]   --> src/material.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |         rec: &HitRecord,
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_rec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `attenuation`
[INFO] [stdout]   --> src/material.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |         attenuation: &mut Color,
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_attenuation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scattered`
[INFO] [stdout]   --> src/material.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |         scattered: &mut Ray,
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scattered`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]   --> src/material.rs:22:23
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn emitted(&self, u: f32, v: f32, p: &Point3) -> Color {
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/material.rs:22:31
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn emitted(&self, u: f32, v: f32, p: &Point3) -> Color {
[INFO] [stdout]    |                               ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/material.rs:22:39
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn emitted(&self, u: f32, v: f32, p: &Point3) -> Color {
[INFO] [stdout]    |                                       ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r_in`
[INFO] [stdout]    --> src/material.rs:187:9
[INFO] [stdout]     |
[INFO] [stdout] 187 |         r_in: &Ray,
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_r_in`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rec`
[INFO] [stdout]    --> src/material.rs:188:9
[INFO] [stdout]     |
[INFO] [stdout] 188 |         rec: &HitRecord,
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_rec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `attenuation`
[INFO] [stdout]    --> src/material.rs:189:9
[INFO] [stdout]     |
[INFO] [stdout] 189 |         attenuation: &mut Color,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_attenuation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scattered`
[INFO] [stdout]    --> src/material.rs:190:9
[INFO] [stdout]     |
[INFO] [stdout] 190 |         scattered: &mut Ray,
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scattered`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/perlin.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |         for i in 0..Perlin::point_count {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/perlin.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let mut u = p.x() - p.x().floor();
[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: variable does not need to be mutable
[INFO] [stdout]   --> src/perlin.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let mut v = p.y() - p.y().floor();
[INFO] [stdout]    |             ----^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/perlin.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let mut w = p.z() - p.z().floor();
[INFO] [stdout]    |             ----^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/perlin.rs:62:13
[INFO] [stdout]    |
[INFO] [stdout] 62 |         for i in 0..depth {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time0`
[INFO] [stdout]   --> src/sphere.rs:86:28
[INFO] [stdout]    |
[INFO] [stdout] 86 |     fn bounding_box(&self, time0: f32, time1: f32, output_box: &mut crate::aabb::AABB) -> bool {
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_time0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time1`
[INFO] [stdout]   --> src/sphere.rs:86:40
[INFO] [stdout]    |
[INFO] [stdout] 86 |     fn bounding_box(&self, time0: f32, time1: f32, output_box: &mut crate::aabb::AABB) -> bool {
[INFO] [stdout]    |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_time1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]   --> src/texture.rs:30:21
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn value(&self, u: f32, v: f32, p: &Point3) -> Color {
[INFO] [stdout]    |                     ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/texture.rs:30:29
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn value(&self, u: f32, v: f32, p: &Point3) -> Color {
[INFO] [stdout]    |                             ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/texture.rs:30:37
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn value(&self, u: f32, v: f32, p: &Point3) -> Color {
[INFO] [stdout]    |                                     ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]   --> src/texture.rs:87:21
[INFO] [stdout]    |
[INFO] [stdout] 87 |     fn value(&self, u: f32, v: f32, p: &Point3) -> Color {
[INFO] [stdout]    |                     ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/texture.rs:87:29
[INFO] [stdout]    |
[INFO] [stdout] 87 |     fn value(&self, u: f32, v: f32, p: &Point3) -> Color {
[INFO] [stdout]    |                             ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]    --> src/texture.rs:148:37
[INFO] [stdout]     |
[INFO] [stdout] 148 |     fn value(&self, u: f32, v: f32, p: &Point3) -> Color {
[INFO] [stdout]     |                                     ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let mut max_depth = 50;
[INFO] [stdout]    |         ----^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `world` is never read
[INFO] [stdout]   --> src/main.rs:56:40
[INFO] [stdout]    |
[INFO] [stdout] 56 |     let mut world: Arc<dyn Hittable> = Arc::new(HittableList::new());
[INFO] [stdout]    |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `look_from` is never read
[INFO] [stdout]   --> src/main.rs:57:25
[INFO] [stdout]    |
[INFO] [stdout] 57 |     let mut look_from = Point3::default();
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `look_at` is never read
[INFO] [stdout]   --> src/main.rs:58:23
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let mut look_at = Point3::default();
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `vfov` is never read
[INFO] [stdout]   --> src/main.rs:59:20
[INFO] [stdout]    |
[INFO] [stdout] 59 |     let mut vfov = 4.0;
[INFO] [stdout]    |                    ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `background` is never read
[INFO] [stdout]   --> src/main.rs:61:26
[INFO] [stdout]    |
[INFO] [stdout] 61 |     let mut background = Color::default();
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `default` is never used
[INFO] [stdout]   --> src/aarec.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl XYRect {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 20 |     pub fn default() -> XYRect {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `default` is never used
[INFO] [stdout]   --> src/aarec.rs:97:12
[INFO] [stdout]    |
[INFO] [stdout] 96 | impl XZRect {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 97 |     pub fn default() -> XZRect {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `default` is never used
[INFO] [stdout]    --> src/aarec.rs:174:12
[INFO] [stdout]     |
[INFO] [stdout] 173 | impl YZRect {
[INFO] [stdout]     | ----------- associated function in this implementation
[INFO] [stdout] 174 |     pub fn default() -> YZRect {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_color` is never used
[INFO] [stdout]  --> src/color.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn write_color(pixel_color: Color, samples_per_pixel: i32) {
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_texture` is never used
[INFO] [stdout]   --> src/constant_medium.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl ConstantMedium {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 19 |     pub fn with_texture(b: Arc<dyn Hittable>, d: f32, a: Arc<dyn Texture>) -> ConstantMedium {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_texture` is never used
[INFO] [stdout]    --> src/constant_medium.rs:107:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl Isotropic {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn with_texture(a: Arc<dyn Texture>) -> Isotropic {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `default` is never used
[INFO] [stdout]   --> src/cube.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Cube {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 19 |     pub fn default() -> Cube {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `with_object` and `clear` are never used
[INFO] [stdout]   --> src/hittable_list.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl HittableList {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn with_object(object: Arc<dyn Hittable>) -> HittableList {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn clear(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_texture` is never used
[INFO] [stdout]    --> src/material.rs:173:12
[INFO] [stdout]     |
[INFO] [stdout] 172 | impl DiffuseLight {
[INFO] [stdout]     | ----------------- associated function in this implementation
[INFO] [stdout] 173 |     pub fn with_texture(a: Arc<dyn Texture>) -> DiffuseLight {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/sphere.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Sphere {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 17 |     pub fn new() -> Sphere {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `default` is never used
[INFO] [stdout]   --> src/texture.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl SolidColor {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 18 |     pub fn default() -> SolidColor {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/texture.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl CheckerTexture {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 41 |     pub fn new(odd: Arc<dyn Texture>, even: Arc<dyn Texture>) -> CheckerTexture {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `default` is never used
[INFO] [stdout]   --> src/texture.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | impl NoiseTexture {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 71 |     pub fn default() -> NoiseTexture {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `default` is never used
[INFO] [stdout]    --> src/texture.rs:105:12
[INFO] [stdout]     |
[INFO] [stdout] 102 | impl ImageTexture {
[INFO] [stdout]     | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn default() -> ImageTexture {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]   --> src/thread_pool.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 51 | struct Worker {
[INFO] [stdout]    |        ------ field in this struct
[INFO] [stdout] 52 |     id: usize,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `random_in_hemisphere` is never used
[INFO] [stdout]    --> src/vec3.rs:189:8
[INFO] [stdout]     |
[INFO] [stdout] 189 | pub fn random_in_hemisphere(normal: &Vec3) -> Vec3 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `point_count` should have an upper case name
[INFO] [stdout]   --> src/perlin.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 |     const point_count: usize = 256;
[INFO] [stdout]    |           ^^^^^^^^^^^ help: convert the identifier to upper case: `POINT_COUNT`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `bytes_per_pixel` should have an upper case name
[INFO] [stdout]    --> src/texture.rs:103:11
[INFO] [stdout]     |
[INFO] [stdout] 103 |     const bytes_per_pixel: u32 = 3;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `BYTES_PER_PIXEL`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 16.89s
[INFO] running `Command { std: "docker" "inspect" "2a74357620d263471fc07d2ba3c8b106916208e602ab0c631f6a9cdeb28fccec", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2a74357620d263471fc07d2ba3c8b106916208e602ab0c631f6a9cdeb28fccec", kill_on_drop: false }`
[INFO] [stdout] 2a74357620d263471fc07d2ba3c8b106916208e602ab0c631f6a9cdeb28fccec
