[INFO] cloning repository https://github.com/af8a2a/raytracing-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/af8a2a/raytracing-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Faf8a2a%2Fraytracing-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Faf8a2a%2Fraytracing-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a58076993659d8962249dc9cf5775a4d5cbec7d3
[INFO] building af8a2a/raytracing-rs against try#d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6 for pr-146237-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Faf8a2a%2Fraytracing-rs" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/af8a2a/raytracing-rs
[INFO] finished tweaking git repo https://github.com/af8a2a/raytracing-rs
[INFO] tweaked toml for git repo https://github.com/af8a2a/raytracing-rs written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/af8a2a/raytracing-rs on toolchain d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/af8a2a/raytracing-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" "+d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] fd46eed505b61bc1a9c0580a533a26b9f02ae8d179c2268eaa3833a5d0da6928
[INFO] running `Command { std: "docker" "start" "-a" "fd46eed505b61bc1a9c0580a533a26b9f02ae8d179c2268eaa3833a5d0da6928", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "fd46eed505b61bc1a9c0580a533a26b9f02ae8d179c2268eaa3833a5d0da6928", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fd46eed505b61bc1a9c0580a533a26b9f02ae8d179c2268eaa3833a5d0da6928", kill_on_drop: false }`
[INFO] [stdout] fd46eed505b61bc1a9c0580a533a26b9f02ae8d179c2268eaa3833a5d0da6928
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5e5c36d980e39dbb4563005ff8f1f601d86a13e45ce3334847ce30b68eb74726
[INFO] running `Command { std: "docker" "start" "-a" "5e5c36d980e39dbb4563005ff8f1f601d86a13e45ce3334847ce30b68eb74726", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.156
[INFO] [stderr]    Compiling bytemuck v1.17.0
[INFO] [stderr]    Compiling built v0.7.4
[INFO] [stderr]    Compiling miniz_oxide v0.7.4
[INFO] [stderr]    Compiling v_frame v0.3.8
[INFO] [stderr]    Compiling spin v0.9.8
[INFO] [stderr]    Compiling maybe-rayon v0.1.1
[INFO] [stderr]    Compiling matrixmultiply v0.3.9
[INFO] [stderr]    Compiling imgref v1.10.1
[INFO] [stderr]    Compiling syn v2.0.74
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling simd_helpers v0.1.0
[INFO] [stderr]    Compiling bitstream-io v2.5.0
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling approx v0.5.1
[INFO] [stderr]    Compiling avif-serialize v0.8.1
[INFO] [stderr]    Compiling image-webp v0.1.3
[INFO] [stderr]    Compiling flume v0.11.0
[INFO] [stderr]    Compiling loop9 v0.1.5
[INFO] [stderr]    Compiling safe_arch v0.7.2
[INFO] [stderr]    Compiling rgb v0.8.48
[INFO] [stderr]    Compiling qoi v0.4.1
[INFO] [stderr]    Compiling flate2 v1.0.31
[INFO] [stderr]    Compiling rav1e v0.7.1
[INFO] [stderr]    Compiling exr v1.72.0
[INFO] [stderr]    Compiling wide v0.7.28
[INFO] [stderr]    Compiling png v0.17.13
[INFO] [stderr]    Compiling tiff v0.9.1
[INFO] [stderr]    Compiling getrandom v0.2.15
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling av1-grain v0.2.3
[INFO] [stderr]    Compiling simba v0.9.0
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling thiserror-impl v1.0.63
[INFO] [stderr]    Compiling profiling-procmacros v1.0.15
[INFO] [stderr]    Compiling arg_enum_proc_macro v0.3.4
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling nalgebra-macros v0.2.2
[INFO] [stderr]    Compiling profiling v1.0.15
[INFO] [stderr]    Compiling zerocopy v0.7.35
[INFO] [stderr]    Compiling thiserror v1.0.63
[INFO] [stderr]    Compiling ppv-lite86 v0.2.20
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling nalgebra v0.33.0
[INFO] [stderr]    Compiling ravif v0.11.10
[INFO] [stderr]    Compiling image v0.25.2
[INFO] [stderr]    Compiling pbrt-rs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `backtrace::Backtrace`
[INFO] [stdout]  --> src/hit/sphere.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     backtrace::Backtrace,
[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: `NAN`, `consts::PI`, and `ops::Add`
[INFO] [stdout]  --> src/camera.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 |     f64::{consts::PI, INFINITY, NAN},
[INFO] [stdout]   |           ^^^^^^^^^^            ^^^
[INFO] [stdout] 4 |     ops::Add,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ImageFormat`
[INFO] [stdout]  --> src/camera.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 | use image::{ImageFormat, Rgb, RgbImage};
[INFO] [stdout]   |             ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `clamp`
[INFO] [stdout]  --> src/camera.rs:8:16
[INFO] [stdout]   |
[INFO] [stdout] 8 | use nalgebra::{clamp, Vector3};
[INFO] [stdout]   |                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `random_unit_vector`, `sample_square`, and `scene::Scene`
[INFO] [stdout]   --> src/camera.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     scene::Scene,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 16 |     util::{random_f64, random_in_unit_sphere, random_unit_vector, sample_square, Interval},
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `NAN`
[INFO] [stdout]  --> src/material.rs:1:28
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::f64::{consts::PI, NAN};
[INFO] [stdout]   |                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `near_zero`, `random_on_hemisphere`, `random_unit_vector`, and `self`
[INFO] [stdout]   --> src/material.rs:6:11
[INFO] [stdout]    |
[INFO] [stdout]  6 |     hit::{self, HitRecord},
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 11 |         near_zero, random_f64, random_in_unit_sphere, random_on_hemisphere, random_unit_vector,
[INFO] [stdout]    |         ^^^^^^^^^                                     ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nalgebra::Vector3`
[INFO] [stdout]  --> src/bvh.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use nalgebra::Vector3;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::iter::Once`
[INFO] [stdout]  --> src/bvh.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rayon::iter::Once;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EMPTY_INTERVAL`, `UNIVERSE_INTERVAL`, and `random_int`
[INFO] [stdout]  --> src/bvh.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 |     util::{random_int, Interval, EMPTY_INTERVAL, UNIVERSE_INTERVAL},
[INFO] [stdout]   |            ^^^^^^^^^^            ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem::swap`
[INFO] [stdout]  --> src/noise.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::mem::swap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `random_f64` and `random_unit_vector`
[INFO] [stdout]  --> src/noise.rs:5:19
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::util::{random_f64, random_unit_vector, random_int, random_vec_range};
[INFO] [stdout]   |                   ^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Add`
[INFO] [stdout]  --> src/aabb.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::Add;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `random_range_f64`
[INFO] [stdout]  --> src/pdf.rs:8:49
[INFO] [stdout]   |
[INFO] [stdout] 8 |     util::{random_cosine_direction, random_f64, random_range_f64, random_unit_vector},
[INFO] [stdout]   |                                                 ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `bbox` is never used
[INFO] [stdout]    --> src/hit/translate.rs:114:8
[INFO] [stdout]     |
[INFO] [stdout]  48 | impl RotateY {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 114 |     fn bbox(&self) -> &AABB {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hit.rs:41:16
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn hit(&self, ray: &Ray, interval: &Interval) -> Option<HitRecord> {
[INFO] [stdout]    |                ^^^^^ the lifetime is elided here                ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn hit(&self, ray: &Ray, interval: &Interval) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hit/medium.rs:34:16
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<crate::hit::HitRecord> {
[INFO] [stdout]    |                ^^^^^ the lifetime is elided here                            ^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<crate::hit::HitRecord<'_>> {
[INFO] [stdout]    |                                                                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hit/quad.rs:50:16
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<HitRecord> {
[INFO] [stdout]    |                ^^^^^ the lifetime is elided here                            ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hit/translate.rs:23:16
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<HitRecord> {
[INFO] [stdout]    |                ^^^^^ the lifetime is elided here                            ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hit/translate.rs:84:16
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<HitRecord> {
[INFO] [stdout]    |                ^^^^^ the lifetime is elided here                            ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/scene.rs:15:16
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<HitRecord> {
[INFO] [stdout]    |                ^^^^^ the lifetime is elided here                            ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hit/sphere.rs:65:16
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<HitRecord> {
[INFO] [stdout]    |                ^^^^^ the lifetime is elided here                            ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/material.rs:42:20
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn scatter(&self, ray: &Ray, rec: &HitRecord) -> Option<ScatterRecord> {
[INFO] [stdout]    |                    ^^^^^ the lifetime is elided here            ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn scatter(&self, ray: &Ray, rec: &HitRecord) -> Option<ScatterRecord<'_>> {
[INFO] [stdout]    |                                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/material.rs:84:20
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn scatter(&self, _ray: &Ray, rec: &HitRecord) -> Option<ScatterRecord> {
[INFO] [stdout]    |                    ^^^^^ the lifetime is elided here             ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn scatter(&self, _ray: &Ray, rec: &HitRecord) -> Option<ScatterRecord<'_>> {
[INFO] [stdout]    |                                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/material.rs:114:20
[INFO] [stdout]     |
[INFO] [stdout] 114 |     pub fn scatter(&self, ray: &Ray, rec: &HitRecord) -> Option<ScatterRecord> {
[INFO] [stdout]     |                    ^^^^^ the lifetime is elided here            ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 114 |     pub fn scatter(&self, ray: &Ray, rec: &HitRecord) -> Option<ScatterRecord<'_>> {
[INFO] [stdout]     |                                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/material.rs:141:20
[INFO] [stdout]     |
[INFO] [stdout] 141 |     pub fn scatter(&self, ray: &Ray, rec: &HitRecord) -> Option<ScatterRecord> {
[INFO] [stdout]     |                    ^^^^^ the lifetime is elided here            ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 141 |     pub fn scatter(&self, ray: &Ray, rec: &HitRecord) -> Option<ScatterRecord<'_>> {
[INFO] [stdout]     |                                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/material.rs:197:20
[INFO] [stdout]     |
[INFO] [stdout] 197 |     pub fn scatter(&self, _ray: &Ray, _hit_record: &HitRecord) -> Option<ScatterRecord> {
[INFO] [stdout]     |                    ^^^^^ the lifetime is elided here                     ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 197 |     pub fn scatter(&self, _ray: &Ray, _hit_record: &HitRecord) -> Option<ScatterRecord<'_>> {
[INFO] [stdout]     |                                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/bvh.rs:69:16
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<HitRecord> {
[INFO] [stdout]    |                ^^^^^ the lifetime is elided here                            ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f64::consts::PI`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::f64::consts::PI;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Pixel`, `RgbImage`, and `Rgb`
[INFO] [stdout]  --> src/main.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use image::{Pixel, Rgb, RgbImage};
[INFO] [stdout]   |             ^^^^^  ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Metal`, `bvh::BVHNode`, `medium::ConstMedium`, and `self`
[INFO] [stdout]   --> src/main.rs:6:5
[INFO] [stdout]    |
[INFO] [stdout]  6 |     bvh::BVHNode,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  9 |         medium::ConstMedium,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 10 |         quad::{box_scene, Quad},
[INFO] [stdout] 11 |         sphere::{self, Sphere},
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     material::{Dielectric, DiffuseLight, Lambertian, Material, Metal},
[INFO] [stdout]    |                                                                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/main.rs:22:60
[INFO] [stdout]    |
[INFO] [stdout] 22 |     let red = Material::Diffuse(Lambertian::new_with_color((Vector3::new(0.65, 0.05, 0.05))));
[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] 22 -     let red = Material::Diffuse(Lambertian::new_with_color((Vector3::new(0.65, 0.05, 0.05))));
[INFO] [stdout] 22 +     let red = Material::Diffuse(Lambertian::new_with_color(Vector3::new(0.65, 0.05, 0.05)));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 38.64s
[INFO] running `Command { std: "docker" "inspect" "5e5c36d980e39dbb4563005ff8f1f601d86a13e45ce3334847ce30b68eb74726", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5e5c36d980e39dbb4563005ff8f1f601d86a13e45ce3334847ce30b68eb74726", kill_on_drop: false }`
[INFO] [stdout] 5e5c36d980e39dbb4563005ff8f1f601d86a13e45ce3334847ce30b68eb74726
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3cc215e040cddd998771718ed3f86499b0012587fbfbb1c82983dddc3c50dc52
[INFO] running `Command { std: "docker" "start" "-a" "3cc215e040cddd998771718ed3f86499b0012587fbfbb1c82983dddc3c50dc52", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `backtrace::Backtrace`
[INFO] [stdout]  --> src/hit/sphere.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     backtrace::Backtrace,
[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: `NAN`, `consts::PI`, and `ops::Add`
[INFO] [stdout]  --> src/camera.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 |     f64::{consts::PI, INFINITY, NAN},
[INFO] [stdout]   |           ^^^^^^^^^^            ^^^
[INFO] [stdout] 4 |     ops::Add,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ImageFormat`
[INFO] [stdout]  --> src/camera.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 | use image::{ImageFormat, Rgb, RgbImage};
[INFO] [stdout]   |             ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `clamp`
[INFO] [stdout]  --> src/camera.rs:8:16
[INFO] [stdout]   |
[INFO] [stdout] 8 | use nalgebra::{clamp, Vector3};
[INFO] [stdout]   |                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `random_unit_vector`, `sample_square`, and `scene::Scene`
[INFO] [stdout]   --> src/camera.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     scene::Scene,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 16 |     util::{random_f64, random_in_unit_sphere, random_unit_vector, sample_square, Interval},
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `NAN`
[INFO] [stdout]  --> src/material.rs:1:28
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::f64::{consts::PI, NAN};
[INFO] [stdout]   |                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `near_zero`, `random_on_hemisphere`, `random_unit_vector`, and `self`
[INFO] [stdout]   --> src/material.rs:6:11
[INFO] [stdout]    |
[INFO] [stdout]  6 |     hit::{self, HitRecord},
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 11 |         near_zero, random_f64, random_in_unit_sphere, random_on_hemisphere, random_unit_vector,
[INFO] [stdout]    |         ^^^^^^^^^                                     ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nalgebra::Vector3`
[INFO] [stdout]  --> src/bvh.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use nalgebra::Vector3;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::iter::Once`
[INFO] [stdout]  --> src/bvh.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rayon::iter::Once;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EMPTY_INTERVAL`, `UNIVERSE_INTERVAL`, and `random_int`
[INFO] [stdout]  --> src/bvh.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 |     util::{random_int, Interval, EMPTY_INTERVAL, UNIVERSE_INTERVAL},
[INFO] [stdout]   |            ^^^^^^^^^^            ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem::swap`
[INFO] [stdout]  --> src/noise.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::mem::swap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `random_f64` and `random_unit_vector`
[INFO] [stdout]  --> src/noise.rs:5:19
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::util::{random_f64, random_unit_vector, random_int, random_vec_range};
[INFO] [stdout]   |                   ^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Add`
[INFO] [stdout]  --> src/aabb.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::Add;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `random_range_f64`
[INFO] [stdout]  --> src/pdf.rs:8:49
[INFO] [stdout]   |
[INFO] [stdout] 8 |     util::{random_cosine_direction, random_f64, random_range_f64, random_unit_vector},
[INFO] [stdout]   |                                                 ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `bbox` is never used
[INFO] [stdout]    --> src/hit/translate.rs:114:8
[INFO] [stdout]     |
[INFO] [stdout]  48 | impl RotateY {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 114 |     fn bbox(&self) -> &AABB {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hit.rs:41:16
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn hit(&self, ray: &Ray, interval: &Interval) -> Option<HitRecord> {
[INFO] [stdout]    |                ^^^^^ the lifetime is elided here                ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn hit(&self, ray: &Ray, interval: &Interval) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hit/medium.rs:34:16
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<crate::hit::HitRecord> {
[INFO] [stdout]    |                ^^^^^ the lifetime is elided here                            ^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<crate::hit::HitRecord<'_>> {
[INFO] [stdout]    |                                                                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hit/quad.rs:50:16
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<HitRecord> {
[INFO] [stdout]    |                ^^^^^ the lifetime is elided here                            ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hit/translate.rs:23:16
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<HitRecord> {
[INFO] [stdout]    |                ^^^^^ the lifetime is elided here                            ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hit/translate.rs:84:16
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<HitRecord> {
[INFO] [stdout]    |                ^^^^^ the lifetime is elided here                            ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/scene.rs:15:16
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<HitRecord> {
[INFO] [stdout]    |                ^^^^^ the lifetime is elided here                            ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hit/sphere.rs:65:16
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<HitRecord> {
[INFO] [stdout]    |                ^^^^^ the lifetime is elided here                            ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling pbrt-rs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/material.rs:42:20
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn scatter(&self, ray: &Ray, rec: &HitRecord) -> Option<ScatterRecord> {
[INFO] [stdout]    |                    ^^^^^ the lifetime is elided here            ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn scatter(&self, ray: &Ray, rec: &HitRecord) -> Option<ScatterRecord<'_>> {
[INFO] [stdout]    |                                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/material.rs:84:20
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn scatter(&self, _ray: &Ray, rec: &HitRecord) -> Option<ScatterRecord> {
[INFO] [stdout]    |                    ^^^^^ the lifetime is elided here             ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn scatter(&self, _ray: &Ray, rec: &HitRecord) -> Option<ScatterRecord<'_>> {
[INFO] [stdout]    |                                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/material.rs:114:20
[INFO] [stdout]     |
[INFO] [stdout] 114 |     pub fn scatter(&self, ray: &Ray, rec: &HitRecord) -> Option<ScatterRecord> {
[INFO] [stdout]     |                    ^^^^^ the lifetime is elided here            ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 114 |     pub fn scatter(&self, ray: &Ray, rec: &HitRecord) -> Option<ScatterRecord<'_>> {
[INFO] [stdout]     |                                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/material.rs:141:20
[INFO] [stdout]     |
[INFO] [stdout] 141 |     pub fn scatter(&self, ray: &Ray, rec: &HitRecord) -> Option<ScatterRecord> {
[INFO] [stdout]     |                    ^^^^^ the lifetime is elided here            ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 141 |     pub fn scatter(&self, ray: &Ray, rec: &HitRecord) -> Option<ScatterRecord<'_>> {
[INFO] [stdout]     |                                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/material.rs:197:20
[INFO] [stdout]     |
[INFO] [stdout] 197 |     pub fn scatter(&self, _ray: &Ray, _hit_record: &HitRecord) -> Option<ScatterRecord> {
[INFO] [stdout]     |                    ^^^^^ the lifetime is elided here                     ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 197 |     pub fn scatter(&self, _ray: &Ray, _hit_record: &HitRecord) -> Option<ScatterRecord<'_>> {
[INFO] [stdout]     |                                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/bvh.rs:69:16
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<HitRecord> {
[INFO] [stdout]    |                ^^^^^ the lifetime is elided here                            ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f64::consts::PI`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::f64::consts::PI;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Pixel`, `RgbImage`, and `Rgb`
[INFO] [stdout]  --> src/main.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use image::{Pixel, Rgb, RgbImage};
[INFO] [stdout]   |             ^^^^^  ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Metal`, `bvh::BVHNode`, `medium::ConstMedium`, and `self`
[INFO] [stdout]   --> src/main.rs:6:5
[INFO] [stdout]    |
[INFO] [stdout]  6 |     bvh::BVHNode,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  9 |         medium::ConstMedium,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 10 |         quad::{box_scene, Quad},
[INFO] [stdout] 11 |         sphere::{self, Sphere},
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     material::{Dielectric, DiffuseLight, Lambertian, Material, Metal},
[INFO] [stdout]    |                                                                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/main.rs:22:60
[INFO] [stdout]    |
[INFO] [stdout] 22 |     let red = Material::Diffuse(Lambertian::new_with_color((Vector3::new(0.65, 0.05, 0.05))));
[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] 22 -     let red = Material::Diffuse(Lambertian::new_with_color((Vector3::new(0.65, 0.05, 0.05))));
[INFO] [stdout] 22 +     let red = Material::Diffuse(Lambertian::new_with_color(Vector3::new(0.65, 0.05, 0.05)));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `backtrace::Backtrace`
[INFO] [stdout]  --> src/hit/sphere.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     backtrace::Backtrace,
[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: `NAN`, `consts::PI`, and `ops::Add`
[INFO] [stdout]  --> src/camera.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 |     f64::{consts::PI, INFINITY, NAN},
[INFO] [stdout]   |           ^^^^^^^^^^            ^^^
[INFO] [stdout] 4 |     ops::Add,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ImageFormat`
[INFO] [stdout]  --> src/camera.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 | use image::{ImageFormat, Rgb, RgbImage};
[INFO] [stdout]   |             ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `clamp`
[INFO] [stdout]  --> src/camera.rs:8:16
[INFO] [stdout]   |
[INFO] [stdout] 8 | use nalgebra::{clamp, Vector3};
[INFO] [stdout]   |                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `random_unit_vector`, `sample_square`, and `scene::Scene`
[INFO] [stdout]   --> src/camera.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     scene::Scene,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 16 |     util::{random_f64, random_in_unit_sphere, random_unit_vector, sample_square, Interval},
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `NAN`
[INFO] [stdout]  --> src/material.rs:1:28
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::f64::{consts::PI, NAN};
[INFO] [stdout]   |                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `near_zero`, `random_on_hemisphere`, `random_unit_vector`, and `self`
[INFO] [stdout]   --> src/material.rs:6:11
[INFO] [stdout]    |
[INFO] [stdout]  6 |     hit::{self, HitRecord},
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 11 |         near_zero, random_f64, random_in_unit_sphere, random_on_hemisphere, random_unit_vector,
[INFO] [stdout]    |         ^^^^^^^^^                                     ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nalgebra::Vector3`
[INFO] [stdout]  --> src/bvh.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use nalgebra::Vector3;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::iter::Once`
[INFO] [stdout]  --> src/bvh.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rayon::iter::Once;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EMPTY_INTERVAL`, `UNIVERSE_INTERVAL`, and `random_int`
[INFO] [stdout]  --> src/bvh.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 |     util::{random_int, Interval, EMPTY_INTERVAL, UNIVERSE_INTERVAL},
[INFO] [stdout]   |            ^^^^^^^^^^            ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem::swap`
[INFO] [stdout]  --> src/noise.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::mem::swap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `random_f64` and `random_unit_vector`
[INFO] [stdout]  --> src/noise.rs:5:19
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::util::{random_f64, random_unit_vector, random_int, random_vec_range};
[INFO] [stdout]   |                   ^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Add`
[INFO] [stdout]  --> src/aabb.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::Add;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `random_range_f64`
[INFO] [stdout]  --> src/pdf.rs:8:49
[INFO] [stdout]   |
[INFO] [stdout] 8 |     util::{random_cosine_direction, random_f64, random_range_f64, random_unit_vector},
[INFO] [stdout]   |                                                 ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `bbox` is never used
[INFO] [stdout]    --> src/hit/translate.rs:114:8
[INFO] [stdout]     |
[INFO] [stdout]  48 | impl RotateY {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 114 |     fn bbox(&self) -> &AABB {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hit.rs:41:16
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn hit(&self, ray: &Ray, interval: &Interval) -> Option<HitRecord> {
[INFO] [stdout]    |                ^^^^^ the lifetime is elided here                ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn hit(&self, ray: &Ray, interval: &Interval) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hit/medium.rs:34:16
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<crate::hit::HitRecord> {
[INFO] [stdout]    |                ^^^^^ the lifetime is elided here                            ^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<crate::hit::HitRecord<'_>> {
[INFO] [stdout]    |                                                                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hit/quad.rs:50:16
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<HitRecord> {
[INFO] [stdout]    |                ^^^^^ the lifetime is elided here                            ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hit/sphere.rs:65:16
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<HitRecord> {
[INFO] [stdout]    |                ^^^^^ the lifetime is elided here                            ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/material.rs:42:20
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn scatter(&self, ray: &Ray, rec: &HitRecord) -> Option<ScatterRecord> {
[INFO] [stdout]    |                    ^^^^^ the lifetime is elided here            ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn scatter(&self, ray: &Ray, rec: &HitRecord) -> Option<ScatterRecord<'_>> {
[INFO] [stdout]    |                                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/material.rs:84:20
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn scatter(&self, _ray: &Ray, rec: &HitRecord) -> Option<ScatterRecord> {
[INFO] [stdout]    |                    ^^^^^ the lifetime is elided here             ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn scatter(&self, _ray: &Ray, rec: &HitRecord) -> Option<ScatterRecord<'_>> {
[INFO] [stdout]    |                                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hit/translate.rs:23:16
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<HitRecord> {
[INFO] [stdout]    |                ^^^^^ the lifetime is elided here                            ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/material.rs:114:20
[INFO] [stdout]     |
[INFO] [stdout] 114 |     pub fn scatter(&self, ray: &Ray, rec: &HitRecord) -> Option<ScatterRecord> {
[INFO] [stdout]     |                    ^^^^^ the lifetime is elided here            ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 114 |     pub fn scatter(&self, ray: &Ray, rec: &HitRecord) -> Option<ScatterRecord<'_>> {
[INFO] [stdout]     |                                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hit/translate.rs:84:16
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<HitRecord> {
[INFO] [stdout]    |                ^^^^^ the lifetime is elided here                            ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/scene.rs:15:16
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<HitRecord> {
[INFO] [stdout]    |                ^^^^^ the lifetime is elided here                            ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/bvh.rs:69:16
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<HitRecord> {
[INFO] [stdout]    |                ^^^^^ the lifetime is elided here                            ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub fn hit(&self, ray: &crate::ray::Ray, interval: &Interval) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/material.rs:141:20
[INFO] [stdout]     |
[INFO] [stdout] 141 |     pub fn scatter(&self, ray: &Ray, rec: &HitRecord) -> Option<ScatterRecord> {
[INFO] [stdout]     |                    ^^^^^ the lifetime is elided here            ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 141 |     pub fn scatter(&self, ray: &Ray, rec: &HitRecord) -> Option<ScatterRecord<'_>> {
[INFO] [stdout]     |                                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/material.rs:197:20
[INFO] [stdout]     |
[INFO] [stdout] 197 |     pub fn scatter(&self, _ray: &Ray, _hit_record: &HitRecord) -> Option<ScatterRecord> {
[INFO] [stdout]     |                    ^^^^^ the lifetime is elided here                     ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 197 |     pub fn scatter(&self, _ray: &Ray, _hit_record: &HitRecord) -> Option<ScatterRecord<'_>> {
[INFO] [stdout]     |                                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.96s
[INFO] running `Command { std: "docker" "inspect" "3cc215e040cddd998771718ed3f86499b0012587fbfbb1c82983dddc3c50dc52", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3cc215e040cddd998771718ed3f86499b0012587fbfbb1c82983dddc3c50dc52", kill_on_drop: false }`
[INFO] [stdout] 3cc215e040cddd998771718ed3f86499b0012587fbfbb1c82983dddc3c50dc52
