[INFO] cloning repository https://github.com/GoTamura/ray
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/GoTamura/ray" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGoTamura%2Fray", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGoTamura%2Fray'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7c8c4edeeb1cc8d4dcaf9bb4ce6d9a244bc8513b
[INFO] checking GoTamura/ray against try#b1f2594eac607c1f051534800237eeedb5590a49 for pr-139493-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGoTamura%2Fray" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/GoTamura/ray
[INFO] finished tweaking git repo https://github.com/GoTamura/ray
[INFO] tweaked toml for git repo https://github.com/GoTamura/ray written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/GoTamura/ray on toolchain b1f2594eac607c1f051534800237eeedb5590a49
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b1f2594eac607c1f051534800237eeedb5590a49" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/GoTamura/ray 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" "+b1f2594eac607c1f051534800237eeedb5590a49" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+b1f2594eac607c1f051534800237eeedb5590a49" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 7818cc6456dfff3c0beb3d47d8413f1cb8708440703a664d867ab1185eeb5109
[INFO] running `Command { std: "docker" "start" "-a" "7818cc6456dfff3c0beb3d47d8413f1cb8708440703a664d867ab1185eeb5109", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7818cc6456dfff3c0beb3d47d8413f1cb8708440703a664d867ab1185eeb5109", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7818cc6456dfff3c0beb3d47d8413f1cb8708440703a664d867ab1185eeb5109", kill_on_drop: false }`
[INFO] [stdout] 7818cc6456dfff3c0beb3d47d8413f1cb8708440703a664d867ab1185eeb5109
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+b1f2594eac607c1f051534800237eeedb5590a49" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 48b3262bdf04dfd47300f5aae02036bdf8e6f16cb2f8182d5352687ff665a495
[INFO] running `Command { std: "docker" "start" "-a" "48b3262bdf04dfd47300f5aae02036bdf8e6f16cb2f8182d5352687ff665a495", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.98
[INFO] [stderr]    Compiling proc-macro2 v1.0.27
[INFO] [stderr]    Compiling syn v1.0.74
[INFO] [stderr]    Compiling version_check v0.9.3
[INFO] [stderr]     Checking bytemuck v1.7.0
[INFO] [stderr]    Compiling memchr v2.4.0
[INFO] [stderr]    Compiling scopeguard v1.1.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.5
[INFO] [stderr]    Compiling memoffset v0.6.4
[INFO] [stderr]    Compiling anyhow v1.0.44
[INFO] [stderr]    Compiling num-rational v0.4.0
[INFO] [stderr]    Compiling typenum v1.13.0
[INFO] [stderr]     Checking crossbeam-deque v0.8.0
[INFO] [stderr]     Checking regex-syntax v0.6.25
[INFO] [stderr]     Checking num-complex v0.4.0
[INFO] [stderr]     Checking approx v0.5.0
[INFO] [stderr]    Compiling unicode-segmentation v1.8.0
[INFO] [stderr]    Compiling paste v1.0.5
[INFO] [stderr]     Checking remove_dir_all v0.5.3
[INFO] [stderr]    Compiling log v0.4.14
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.5
[INFO] [stderr]    Compiling crossbeam-channel v0.5.1
[INFO] [stderr]     Checking safe_arch v0.6.0
[INFO] [stderr]     Checking unicode-width v0.1.8
[INFO] [stderr]    Compiling either v1.6.1
[INFO] [stderr]     Checking textwrap v0.11.0
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]     Checking matrixmultiply v0.3.1
[INFO] [stderr]    Compiling fs_extra v1.2.0
[INFO] [stderr]    Compiling quote v1.0.9
[INFO] [stderr]    Compiling heck v0.3.3
[INFO] [stderr]     Checking getrandom v0.2.3
[INFO] [stderr]     Checking num_cpus v1.13.0
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking wait-timeout v0.2.0
[INFO] [stderr]     Checking terminal_size v0.1.17
[INFO] [stderr]     Checking ansi_term v0.11.0
[INFO] [stderr]     Checking rayon-core v1.9.1
[INFO] [stderr]    Compiling signal-hook v0.3.10
[INFO] [stderr]     Checking bit-vec v0.6.3
[INFO] [stderr]     Checking aho-corasick v0.7.18
[INFO] [stderr]     Checking rand_core v0.6.3
[INFO] [stderr]     Checking strsim v0.8.0
[INFO] [stderr]    Compiling glob v0.3.0
[INFO] [stderr]     Checking vec_map v0.8.2
[INFO] [stderr]     Checking wide v0.7.0
[INFO] [stderr]     Checking bit-set v0.5.2
[INFO] [stderr]     Checking console v0.14.1
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand_xorshift v0.3.0
[INFO] [stderr]     Checking signal-hook-registry v1.4.0
[INFO] [stderr]     Checking png v0.16.8
[INFO] [stderr]     Checking humantime v2.1.0
[INFO] [stderr]     Checking clap v2.33.3
[INFO] [stderr]     Checking termcolor v1.1.2
[INFO] [stderr]     Checking itertools v0.10.1
[INFO] [stderr]     Checking rand v0.8.4
[INFO] [stderr]     Checking regex v1.5.4
[INFO] [stderr]     Checking rayon v1.5.1
[INFO] [stderr]     Checking tempfile v3.2.0
[INFO] [stderr]     Checking rusty-fork v0.3.0
[INFO] [stderr]     Checking env_logger v0.9.0
[INFO] [stderr]     Checking proptest v1.0.0
[INFO] [stderr]     Checking simba v0.6.0
[INFO] [stderr]     Checking jpeg-decoder v0.1.22
[INFO] [stderr]     Checking indicatif v0.16.2
[INFO] [stderr]    Compiling nalgebra-macros v0.1.0
[INFO] [stderr]    Compiling structopt-derive v0.4.16
[INFO] [stderr]    Compiling thiserror-impl v1.0.29
[INFO] [stderr]     Checking tiff v0.6.1
[INFO] [stderr]    Compiling ray v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `rayon::prelude::*`
[INFO] [stdout]  --> build.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rayon::prelude::*;
[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: `read_to_string` and `write`
[INFO] [stdout]  --> build.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::fs::{read_to_string, write};
[INFO] [stdout]   |               ^^^^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> build.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]  --> build.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::path::PathBuf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking image v0.23.14
[INFO] [stderr]     Checking thiserror v1.0.29
[INFO] [stderr]     Checking structopt v0.3.23
[INFO] [stderr]     Checking nalgebra v0.29.0
[INFO] [stderr]     Checking nalgebra-glm v0.15.0
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]  --> src/shape.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::Deref;
[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: `Scalar`
[INFO] [stdout]  --> src/bounds.rs:3:32
[INFO] [stdout]   |
[INFO] [stdout] 3 | use nalgebra::{Point2, Point3, Scalar, Vector2, Vector3, center, distance};
[INFO] [stdout]   |                                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]  --> src/texture.rs:2:18
[INFO] [stdout]   |
[INFO] [stdout] 2 |     path::{Path, PathBuf},
[INFO] [stdout]   |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]  --> src/shape.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::Deref;
[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: `Scalar`
[INFO] [stdout]  --> src/bounds.rs:3:32
[INFO] [stdout]   |
[INFO] [stdout] 3 | use nalgebra::{Point2, Point3, Scalar, Vector2, Vector3, center, distance};
[INFO] [stdout]   |                                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]  --> src/texture.rs:2:18
[INFO] [stdout]   |
[INFO] [stdout] 2 |     path::{Path, PathBuf},
[INFO] [stdout]   |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/shape.rs:323:13
[INFO] [stdout]     |
[INFO] [stdout] 322 |             p: todo!(),
[INFO] [stdout]     |                ------- any code following this expression is unreachable
[INFO] [stdout] 323 |             normal,
[INFO] [stdout]     |             ^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/shape.rs:323:13
[INFO] [stdout]     |
[INFO] [stdout] 322 |             p: todo!(),
[INFO] [stdout]     |                ------- any code following this expression is unreachable
[INFO] [stdout] 323 |             normal,
[INFO] [stdout]     |             ^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time0`
[INFO] [stdout]   --> src/shape.rs:93:22
[INFO] [stdout]    |
[INFO] [stdout] 93 |     fn bounds(&self, time0: f64, tim1: f64) -> Option<Bounds3> {
[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: `tim1`
[INFO] [stdout]   --> src/shape.rs:93:34
[INFO] [stdout]    |
[INFO] [stdout] 93 |     fn bounds(&self, time0: f64, tim1: f64) -> Option<Bounds3> {
[INFO] [stdout]    |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_tim1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/shape.rs:119:13
[INFO] [stdout]     |
[INFO] [stdout] 119 |         let mut first_box = true;
[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: `time0`
[INFO] [stdout]    --> src/shape.rs:194:22
[INFO] [stdout]     |
[INFO] [stdout] 194 |     fn bounds(&self, time0: f64, tim1: f64) -> Option<Bounds3> {
[INFO] [stdout]     |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_time0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tim1`
[INFO] [stdout]    --> src/shape.rs:194:34
[INFO] [stdout]     |
[INFO] [stdout] 194 |     fn bounds(&self, time0: f64, tim1: f64) -> Option<Bounds3> {
[INFO] [stdout]     |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_tim1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/shape.rs:265:13
[INFO] [stdout]     |
[INFO] [stdout] 265 |         let mut p = permute_matrix(&p, kx, ky, kz);
[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/shape.rs:301:13
[INFO] [stdout]     |
[INFO] [stdout] 301 |         let mut dpdu;
[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/shape.rs:302:13
[INFO] [stdout]     |
[INFO] [stdout] 302 |         let mut dpdv;
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t_min`
[INFO] [stdout]    --> src/shape.rs:251:30
[INFO] [stdout]     |
[INFO] [stdout] 251 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]     |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_t_min`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/shape.rs:291:13
[INFO] [stdout]     |
[INFO] [stdout] 291 |         let t = t_scaled * inv_det;
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `dpdu` is assigned to, but never used
[INFO] [stdout]    --> src/shape.rs:301:13
[INFO] [stdout]     |
[INFO] [stdout] 301 |         let mut dpdu;
[INFO] [stdout]     |             ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_dpdu` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `dpdv` is assigned to, but never used
[INFO] [stdout]    --> src/shape.rs:302:13
[INFO] [stdout]     |
[INFO] [stdout] 302 |         let mut dpdv;
[INFO] [stdout]     |             ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_dpdv` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p_hit`
[INFO] [stdout]    --> src/shape.rs:312:13
[INFO] [stdout]     |
[INFO] [stdout] 312 |         let p_hit = b * p;
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_p_hit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `uv_hit`
[INFO] [stdout]    --> src/shape.rs:313:13
[INFO] [stdout]     |
[INFO] [stdout] 313 |         let uv_hit = Point2::from(
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_uv_hit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `normal`
[INFO] [stdout]    --> src/shape.rs:319:13
[INFO] [stdout]     |
[INFO] [stdout] 319 |         let normal = (b.x * self.normals[0] + b.y * self.normals[1] + b.z * self.normals[2]).normalize();
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_normal`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `dpdu` is never read
[INFO] [stdout]    --> src/shape.rs:308:13
[INFO] [stdout]     |
[INFO] [stdout] 308 |             dpdu = (duv12.y * dp02 - duv02.y * dp12) * inv_det;
[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 `dpdv` is never read
[INFO] [stdout]    --> src/shape.rs:309:13
[INFO] [stdout]     |
[INFO] [stdout] 309 |             dpdv = (duv12.x * dp02 - duv02.x * dp12) * inv_det;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time0`
[INFO] [stdout]    --> src/shape.rs:332:22
[INFO] [stdout]     |
[INFO] [stdout] 332 |     fn bounds(&self, time0: f64, time1: f64) -> Option<Bounds3> {
[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/shape.rs:332:34
[INFO] [stdout]     |
[INFO] [stdout] 332 |     fn bounds(&self, time0: f64, time1: f64) -> Option<Bounds3> {
[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/material.rs:10:23
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn emitted(&self, u: f64, v: f64, 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:10:31
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn emitted(&self, u: f64, v: f64, 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:10:39
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn emitted(&self, u: f64, v: f64, 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: `ray`
[INFO] [stdout]   --> src/material.rs:88:23
[INFO] [stdout]    |
[INFO] [stdout] 88 |     fn scatter(&self, ray: &Ray, hit_record: &HitRecord) -> Option<(Color, Ray)> {
[INFO] [stdout]    |                       ^^^ help: if this is intentional, prefix it with an underscore: `_ray`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hit_record`
[INFO] [stdout]   --> src/material.rs:88:34
[INFO] [stdout]    |
[INFO] [stdout] 88 |     fn scatter(&self, ray: &Ray, hit_record: &HitRecord) -> Option<(Color, Ray)> {
[INFO] [stdout]    |                                  ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hit_record`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]   --> src/texture.rs:20:21
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn value(&self, u: f64, v: f64, 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:20:29
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn value(&self, u: f64, v: f64, 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:20:37
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn value(&self, u: f64, v: f64, 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: `p`
[INFO] [stdout]   --> src/texture.rs:58:37
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn value(&self, u: f64, v: f64, p: &Point3) -> Color {
[INFO] [stdout]    |                                     ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `w` is never read
[INFO] [stdout]   --> src/camera.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct SingleLensCamera {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 14 |     w: Vec3,
[INFO] [stdout]    |     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Shape` is never used
[INFO] [stdout]    --> src/shape.rs:134:7
[INFO] [stdout]     |
[INFO] [stdout] 134 | trait Shape {
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BVHNode` is never constructed
[INFO] [stdout]    --> src/shape.rs:207:8
[INFO] [stdout]     |
[INFO] [stdout] 207 | struct BVHNode {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `intersect_p` is never used
[INFO] [stdout]    --> src/shape.rs:214:8
[INFO] [stdout]     |
[INFO] [stdout] 213 | impl BVHNode {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] 214 |     fn intersect_p(&self, ray: &Ray, t_min: f64, t_max: f64) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TriangleMesh` is never constructed
[INFO] [stdout]    --> src/shape.rs:241:8
[INFO] [stdout]     |
[INFO] [stdout] 241 | struct TriangleMesh {}
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Triangle` is never constructed
[INFO] [stdout]    --> src/shape.rs:243:8
[INFO] [stdout]     |
[INFO] [stdout] 243 | struct Triangle {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `uv` is never used
[INFO] [stdout]    --> src/shape.rs:338:12
[INFO] [stdout]     |
[INFO] [stdout] 337 | impl Triangle {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] 338 |     pub fn uv(p: &Point3) -> (f64, f64) {
[INFO] [stdout]     |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `permute` is never used
[INFO] [stdout]    --> src/shape.rs:348:4
[INFO] [stdout]     |
[INFO] [stdout] 348 | fn permute(p: &Vec3, x: usize, y: usize, z: usize) -> Point3 {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `permute_matrix` is never used
[INFO] [stdout]    --> src/shape.rs:352:4
[INFO] [stdout]     |
[INFO] [stdout] 352 | fn permute_matrix<T: Clone + Scalar>(p: &Matrix3<T>, x: usize, y: usize, z: usize) -> Matrix3<T> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SurfaceInteraction` is never constructed
[INFO] [stdout]    --> src/shape.rs:357:8
[INFO] [stdout]     |
[INFO] [stdout] 357 | struct SurfaceInteraction {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Bounds2` is never constructed
[INFO] [stdout]  --> src/bounds.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | struct Bounds2 {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `area` and `diagonal` are never used
[INFO] [stdout]   --> src/bounds.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Bounds2 {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] 14 |     pub fn area(&self) -> f64 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn diagonal(&self) -> Vector2<f64> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time0`
[INFO] [stdout]   --> src/shape.rs:93:22
[INFO] [stdout]    |
[INFO] [stdout] 93 |     fn bounds(&self, time0: f64, tim1: f64) -> Option<Bounds3> {
[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: `tim1`
[INFO] [stdout]   --> src/shape.rs:93:34
[INFO] [stdout]    |
[INFO] [stdout] 93 |     fn bounds(&self, time0: f64, tim1: f64) -> Option<Bounds3> {
[INFO] [stdout]    |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_tim1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/shape.rs:119:13
[INFO] [stdout]     |
[INFO] [stdout] 119 |         let mut first_box = true;
[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: `time0`
[INFO] [stdout]    --> src/shape.rs:194:22
[INFO] [stdout]     |
[INFO] [stdout] 194 |     fn bounds(&self, time0: f64, tim1: f64) -> Option<Bounds3> {
[INFO] [stdout]     |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_time0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tim1`
[INFO] [stdout]    --> src/shape.rs:194:34
[INFO] [stdout]     |
[INFO] [stdout] 194 |     fn bounds(&self, time0: f64, tim1: f64) -> Option<Bounds3> {
[INFO] [stdout]     |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_tim1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/shape.rs:265:13
[INFO] [stdout]     |
[INFO] [stdout] 265 |         let mut p = permute_matrix(&p, kx, ky, kz);
[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/shape.rs:301:13
[INFO] [stdout]     |
[INFO] [stdout] 301 |         let mut dpdu;
[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/shape.rs:302:13
[INFO] [stdout]     |
[INFO] [stdout] 302 |         let mut dpdv;
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t_min`
[INFO] [stdout]    --> src/shape.rs:251:30
[INFO] [stdout]     |
[INFO] [stdout] 251 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]     |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_t_min`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/shape.rs:291:13
[INFO] [stdout]     |
[INFO] [stdout] 291 |         let t = t_scaled * inv_det;
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `dpdu` is assigned to, but never used
[INFO] [stdout]    --> src/shape.rs:301:13
[INFO] [stdout]     |
[INFO] [stdout] 301 |         let mut dpdu;
[INFO] [stdout]     |             ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_dpdu` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `dpdv` is assigned to, but never used
[INFO] [stdout]    --> src/shape.rs:302:13
[INFO] [stdout]     |
[INFO] [stdout] 302 |         let mut dpdv;
[INFO] [stdout]     |             ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_dpdv` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p_hit`
[INFO] [stdout]    --> src/shape.rs:312:13
[INFO] [stdout]     |
[INFO] [stdout] 312 |         let p_hit = b * p;
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_p_hit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `uv_hit`
[INFO] [stdout]    --> src/shape.rs:313:13
[INFO] [stdout]     |
[INFO] [stdout] 313 |         let uv_hit = Point2::from(
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_uv_hit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `normal`
[INFO] [stdout]    --> src/shape.rs:319:13
[INFO] [stdout]     |
[INFO] [stdout] 319 |         let normal = (b.x * self.normals[0] + b.y * self.normals[1] + b.z * self.normals[2]).normalize();
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_normal`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `dpdu` is never read
[INFO] [stdout]    --> src/shape.rs:308:13
[INFO] [stdout]     |
[INFO] [stdout] 308 |             dpdu = (duv12.y * dp02 - duv02.y * dp12) * inv_det;
[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 `dpdv` is never read
[INFO] [stdout]    --> src/shape.rs:309:13
[INFO] [stdout]     |
[INFO] [stdout] 309 |             dpdv = (duv12.x * dp02 - duv02.x * dp12) * inv_det;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time0`
[INFO] [stdout]    --> src/shape.rs:332:22
[INFO] [stdout]     |
[INFO] [stdout] 332 |     fn bounds(&self, time0: f64, time1: f64) -> Option<Bounds3> {
[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/shape.rs:332:34
[INFO] [stdout]     |
[INFO] [stdout] 332 |     fn bounds(&self, time0: f64, time1: f64) -> Option<Bounds3> {
[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/material.rs:10:23
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn emitted(&self, u: f64, v: f64, 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:10:31
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn emitted(&self, u: f64, v: f64, 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:10:39
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn emitted(&self, u: f64, v: f64, 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: `ray`
[INFO] [stdout]   --> src/material.rs:88:23
[INFO] [stdout]    |
[INFO] [stdout] 88 |     fn scatter(&self, ray: &Ray, hit_record: &HitRecord) -> Option<(Color, Ray)> {
[INFO] [stdout]    |                       ^^^ help: if this is intentional, prefix it with an underscore: `_ray`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hit_record`
[INFO] [stdout]   --> src/material.rs:88:34
[INFO] [stdout]    |
[INFO] [stdout] 88 |     fn scatter(&self, ray: &Ray, hit_record: &HitRecord) -> Option<(Color, Ray)> {
[INFO] [stdout]    |                                  ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hit_record`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]   --> src/texture.rs:20:21
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn value(&self, u: f64, v: f64, 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:20:29
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn value(&self, u: f64, v: f64, 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:20:37
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn value(&self, u: f64, v: f64, 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: `p`
[INFO] [stdout]   --> src/texture.rs:58:37
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn value(&self, u: f64, v: f64, p: &Point3) -> Color {
[INFO] [stdout]    |                                     ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `w` is never read
[INFO] [stdout]   --> src/camera.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct SingleLensCamera {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 14 |     w: Vec3,
[INFO] [stdout]    |     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Shape` is never used
[INFO] [stdout]    --> src/shape.rs:134:7
[INFO] [stdout]     |
[INFO] [stdout] 134 | trait Shape {
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BVHNode` is never constructed
[INFO] [stdout]    --> src/shape.rs:207:8
[INFO] [stdout]     |
[INFO] [stdout] 207 | struct BVHNode {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `intersect_p` is never used
[INFO] [stdout]    --> src/shape.rs:214:8
[INFO] [stdout]     |
[INFO] [stdout] 213 | impl BVHNode {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] 214 |     fn intersect_p(&self, ray: &Ray, t_min: f64, t_max: f64) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TriangleMesh` is never constructed
[INFO] [stdout]    --> src/shape.rs:241:8
[INFO] [stdout]     |
[INFO] [stdout] 241 | struct TriangleMesh {}
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Triangle` is never constructed
[INFO] [stdout]    --> src/shape.rs:243:8
[INFO] [stdout]     |
[INFO] [stdout] 243 | struct Triangle {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `uv` is never used
[INFO] [stdout]    --> src/shape.rs:338:12
[INFO] [stdout]     |
[INFO] [stdout] 337 | impl Triangle {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] 338 |     pub fn uv(p: &Point3) -> (f64, f64) {
[INFO] [stdout]     |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `permute` is never used
[INFO] [stdout]    --> src/shape.rs:348:4
[INFO] [stdout]     |
[INFO] [stdout] 348 | fn permute(p: &Vec3, x: usize, y: usize, z: usize) -> Point3 {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `permute_matrix` is never used
[INFO] [stdout]    --> src/shape.rs:352:4
[INFO] [stdout]     |
[INFO] [stdout] 352 | fn permute_matrix<T: Clone + Scalar>(p: &Matrix3<T>, x: usize, y: usize, z: usize) -> Matrix3<T> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SurfaceInteraction` is never constructed
[INFO] [stdout]    --> src/shape.rs:357:8
[INFO] [stdout]     |
[INFO] [stdout] 357 | struct SurfaceInteraction {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Bounds2` is never constructed
[INFO] [stdout]  --> src/bounds.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | struct Bounds2 {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `area` and `diagonal` are never used
[INFO] [stdout]   --> src/bounds.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Bounds2 {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] 14 |     pub fn area(&self) -> f64 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn diagonal(&self) -> Vector2<f64> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/main.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Error, Result};
[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: `image::ImageBuffer`
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use image::ImageBuffer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MovingSphere`
[INFO] [stdout]   --> src/main.rs:11:42
[INFO] [stdout]    |
[INFO] [stdout] 11 | use ray::shape::{Hittable, HittableList, MovingSphere, Sphere};
[INFO] [stdout]    |                                          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread::sleep`
[INFO] [stdout]    --> src/main.rs:160:9
[INFO] [stdout]     |
[INFO] [stdout] 160 |     use std::thread::sleep;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]    --> src/main.rs:161:21
[INFO] [stdout]     |
[INFO] [stdout] 161 |     use std::time::{Duration, Instant};
[INFO] [stdout]     |                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/main.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Error, Result};
[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: `image::ImageBuffer`
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use image::ImageBuffer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MovingSphere`
[INFO] [stdout]   --> src/main.rs:11:42
[INFO] [stdout]    |
[INFO] [stdout] 11 | use ray::shape::{Hittable, HittableList, MovingSphere, Sphere};
[INFO] [stdout]    |                                          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread::sleep`
[INFO] [stdout]    --> src/main.rs:160:9
[INFO] [stdout]     |
[INFO] [stdout] 160 |     use std::thread::sleep;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]    --> src/main.rs:161:21
[INFO] [stdout]     |
[INFO] [stdout] 161 |     use std::time::{Duration, Instant};
[INFO] [stdout]     |                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ground_material`
[INFO] [stdout]   --> src/main.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |     let ground_material = Arc::new(Lambertian {
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ground_material`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `material3`
[INFO] [stdout]   --> src/main.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |     let material3 = Arc::new(Metal {
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_material3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `material4`
[INFO] [stdout]   --> src/main.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |     let material4 = Arc::new(DiffuseLight {
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_material4`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:215:13
[INFO] [stdout]     |
[INFO] [stdout] 215 |         let mut bar = ProgressBar::new(image_width as u64 * image_height as u64);
[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: function `render2` is never used
[INFO] [stdout]    --> src/main.rs:266:4
[INFO] [stdout]     |
[INFO] [stdout] 266 | fn render2<T: Hittable + Send + Sync>(
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ground_material`
[INFO] [stdout]   --> src/main.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |     let ground_material = Arc::new(Lambertian {
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ground_material`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `material3`
[INFO] [stdout]   --> src/main.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |     let material3 = Arc::new(Metal {
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_material3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `material4`
[INFO] [stdout]   --> src/main.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |     let material4 = Arc::new(DiffuseLight {
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_material4`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:220:5
[INFO] [stdout]     |
[INFO] [stdout] 220 | /     imgbuf
[INFO] [stdout] 221 | |         .enumerate_pixels_mut()
[INFO] [stdout] 222 | |         .collect::<Vec<(u32, u32, &mut image::Rgb<u8>)>>()
[INFO] [stdout] 223 | |         .par_iter_mut()
[INFO] [stdout] ...   |
[INFO] [stdout] 237 | |             (!term.load(Ordering::Relaxed)).then(|| ()).ok_or(())
[INFO] [stdout] 238 | |         });
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 220 |     let _ = imgbuf
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:215:13
[INFO] [stdout]     |
[INFO] [stdout] 215 |         let mut bar = ProgressBar::new(image_width as u64 * image_height as u64);
[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: function `render2` is never used
[INFO] [stdout]    --> src/main.rs:266:4
[INFO] [stdout]     |
[INFO] [stdout] 266 | fn render2<T: Hittable + Send + Sync>(
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:220:5
[INFO] [stdout]     |
[INFO] [stdout] 220 | /     imgbuf
[INFO] [stdout] 221 | |         .enumerate_pixels_mut()
[INFO] [stdout] 222 | |         .collect::<Vec<(u32, u32, &mut image::Rgb<u8>)>>()
[INFO] [stdout] 223 | |         .par_iter_mut()
[INFO] [stdout] ...   |
[INFO] [stdout] 237 | |             (!term.load(Ordering::Relaxed)).then(|| ()).ok_or(())
[INFO] [stdout] 238 | |         });
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 220 |     let _ = imgbuf
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 28.82s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: fs_extra v1.2.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] running `Command { std: "docker" "inspect" "48b3262bdf04dfd47300f5aae02036bdf8e6f16cb2f8182d5352687ff665a495", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "48b3262bdf04dfd47300f5aae02036bdf8e6f16cb2f8182d5352687ff665a495", kill_on_drop: false }`
[INFO] [stdout] 48b3262bdf04dfd47300f5aae02036bdf8e6f16cb2f8182d5352687ff665a495
