[INFO] cloning repository https://github.com/jlingohr/ray_trace
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jlingohr/ray_trace" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjlingohr%2Fray_trace", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjlingohr%2Fray_trace'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 5aa4f9ad7d8b15de215a7c4456082a29080f458e
[INFO] testing jlingohr/ray_trace against 1.99.0-beta.1+cargoflags=--release for beta-release-1.99-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjlingohr%2Fray_trace" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/jlingohr/ray_trace
[INFO] finished tweaking git repo https://github.com/jlingohr/ray_trace
[INFO] tweaked toml for git repo https://github.com/jlingohr/ray_trace written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/jlingohr/ray_trace on toolchain 1.99.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/jlingohr/ray_trace already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 031492b25fcad70c2ca691618623504c4639d313c754cb9d165fb97ab1a3a323
[INFO] running `Command { std: "docker" "start" "031492b25fcad70c2ca691618623504c4639d313c754cb9d165fb97ab1a3a323", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "031492b25fcad70c2ca691618623504c4639d313c754cb9d165fb97ab1a3a323", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "031492b25fcad70c2ca691618623504c4639d313c754cb9d165fb97ab1a3a323" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "031492b25fcad70c2ca691618623504c4639d313c754cb9d165fb97ab1a3a323", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "031492b25fcad70c2ca691618623504c4639d313c754cb9d165fb97ab1a3a323" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v1.0.0
[INFO] [stderr]    Compiling cfg-if v0.1.10
[INFO] [stderr]    Compiling libc v0.2.71
[INFO] [stderr]    Compiling maybe-uninit v2.0.0
[INFO] [stderr]    Compiling byteorder v1.3.4
[INFO] [stderr]    Compiling rayon-core v1.7.1
[INFO] [stderr]    Compiling getrandom v0.1.14
[INFO] [stderr]    Compiling adler32 v1.1.0
[INFO] [stderr]    Compiling bitflags v1.2.1
[INFO] [stderr]    Compiling crc32fast v1.2.0
[INFO] [stderr]    Compiling either v1.5.3
[INFO] [stderr]    Compiling lzw v0.10.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.8
[INFO] [stderr]    Compiling color_quant v1.0.1
[INFO] [stderr]    Compiling bytemuck v1.2.0
[INFO] [stderr]    Compiling scoped_threadpool v0.1.9
[INFO] [stderr]    Compiling miniz_oxide v0.3.7
[INFO] [stderr]    Compiling gif v0.10.3
[INFO] [stderr]    Compiling num_cpus v1.13.0
[INFO] [stderr]    Compiling crossbeam-utils v0.7.2
[INFO] [stderr]    Compiling memoffset v0.5.4
[INFO] [stderr]    Compiling crossbeam-epoch v0.8.2
[INFO] [stderr]    Compiling num-traits v0.2.12
[INFO] [stderr]    Compiling num-integer v0.1.43
[INFO] [stderr]    Compiling rayon v1.3.1
[INFO] [stderr]    Compiling num-iter v0.1.41
[INFO] [stderr]    Compiling num-rational v0.3.0
[INFO] [stderr]    Compiling deflate v0.8.4
[INFO] [stderr]    Compiling rand_core v0.5.1
[INFO] [stderr]    Compiling tiff v0.5.0
[INFO] [stderr]    Compiling rand_chacha v0.2.2
[INFO] [stderr]    Compiling rand v0.7.3
[INFO] [stderr]    Compiling crossbeam-queue v0.2.3
[INFO] [stderr]    Compiling png v0.16.6
[INFO] [stderr]    Compiling crossbeam-deque v0.7.3
[INFO] [stderr]    Compiling jpeg-decoder v0.1.19
[INFO] [stderr]    Compiling image v0.23.6
[INFO] [stderr]    Compiling ray_trace v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `super::pdf`
[INFO] [stdout]  --> src/material.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use super::pdf;
[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: `super::bvh::BVH`
[INFO] [stdout]  --> src/scenes.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use super::bvh::BVH;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::medium::ConstantMedium`
[INFO] [stdout]  --> src/scenes.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use super::medium::ConstantMedium;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MovingSphere`
[INFO] [stdout]   --> src/scenes.rs:11:21
[INFO] [stdout]    |
[INFO] [stdout] 11 | use super::sphere::{MovingSphere, Sphere};
[INFO] [stdout]    |                     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Checkered`, `ImageTexture`, and `NoiseTexture`
[INFO] [stdout]   --> src/scenes.rs:12:22
[INFO] [stdout]    |
[INFO] [stdout] 12 | use super::texture::{Checkered, ImageTexture, NoiseTexture, SolidColor};
[INFO] [stdout]    |                      ^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::utils`
[INFO] [stdout]   --> src/scenes.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use super::utils;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `image`
[INFO] [stdout]   --> src/scenes.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use image;
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::scenes::Scene`
[INFO] [stdout]   --> src/lib.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | use crate::scenes::Scene;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/lib.rs:60:60
[INFO] [stdout]    |
[INFO] [stdout] 60 |     if let Some(hit) = world.hit(&ray_in, 0.001, std::f64::INFINITY) {
[INFO] [stdout]    |                                                            ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/aarect.rs:95:81
[INFO] [stdout]    |
[INFO] [stdout] 95 |         if let Some(rec) = self.hit(&Ray::new(origin, v, 0.0), 0.001, std::f64::INFINITY) {
[INFO] [stdout]    |                                                                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/medium.rs:31:34
[INFO] [stdout]    |
[INFO] [stdout] 31 |             .hit(ray, -std::f64::INFINITY, std::f64::INFINITY)
[INFO] [stdout]    |                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/medium.rs:31:54
[INFO] [stdout]    |
[INFO] [stdout] 31 |             .hit(ray, -std::f64::INFINITY, std::f64::INFINITY)
[INFO] [stdout]    |                                                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/medium.rs:33:87
[INFO] [stdout]    |
[INFO] [stdout] 33 |             if let Some(mut rec2) = self.boundary.hit(ray, rec1.t + 0.0001, std::f64::INFINITY) {
[INFO] [stdout]    |                                                                                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/rotate.rs:20:48
[INFO] [stdout]    |
[INFO] [stdout] 20 |             let mut min = Point::new(std::f64::INFINITY, std::f64::INFINITY, std::f64::INFINITY);
[INFO] [stdout]    |                                                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/rotate.rs:20:68
[INFO] [stdout]    |
[INFO] [stdout] 20 |             let mut min = Point::new(std::f64::INFINITY, std::f64::INFINITY, std::f64::INFINITY);
[INFO] [stdout]    |                                                                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/rotate.rs:20:88
[INFO] [stdout]    |
[INFO] [stdout] 20 |             let mut min = Point::new(std::f64::INFINITY, std::f64::INFINITY, std::f64::INFINITY);
[INFO] [stdout]    |                                                                                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/rotate.rs:22:28
[INFO] [stdout]    |
[INFO] [stdout] 22 |                 -std::f64::INFINITY,
[INFO] [stdout]    |                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/rotate.rs:23:28
[INFO] [stdout]    |
[INFO] [stdout] 23 |                 -std::f64::INFINITY,
[INFO] [stdout]    |                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/rotate.rs:24:28
[INFO] [stdout]    |
[INFO] [stdout] 24 |                 -std::f64::INFINITY,
[INFO] [stdout]    |                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/sphere.rs:88:76
[INFO] [stdout]    |
[INFO] [stdout] 88 |         if let Some(hit) = self.hit(&Ray::new(o, v, 0.0), 0.001, std::f64::INFINITY) {
[INFO] [stdout]    |                                                                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `o`
[INFO] [stdout]   --> src/hittable.rs:11:25
[INFO] [stdout]    |
[INFO] [stdout] 11 |     fn pdf_value(&self, o: Point, v: Vec3) -> f64 {
[INFO] [stdout]    |                         ^ help: if this is intentional, prefix it with an underscore: `_o`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/hittable.rs:11:35
[INFO] [stdout]    |
[INFO] [stdout] 11 |     fn pdf_value(&self, o: Point, v: Vec3) -> f64 {
[INFO] [stdout]    |                                   ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `o`
[INFO] [stdout]   --> src/hittable.rs:14:22
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn random(&self, o: Point) -> Vec3 {
[INFO] [stdout]    |                      ^ help: if this is intentional, prefix it with an underscore: `_o`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ray`
[INFO] [stdout]   --> src/material.rs:21:30
[INFO] [stdout]    |
[INFO] [stdout] 21 |     fn scattering_pdf(&self, ray: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]    |                              ^^^ help: if this is intentional, prefix it with an underscore: `_ray`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rec`
[INFO] [stdout]   --> src/material.rs:21:41
[INFO] [stdout]    |
[INFO] [stdout] 21 |     fn scattering_pdf(&self, ray: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]    |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_rec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scattered`
[INFO] [stdout]   --> src/material.rs:21:58
[INFO] [stdout]    |
[INFO] [stdout] 21 |     fn scattering_pdf(&self, ray: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]    |                                                          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scattered`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ray`
[INFO] [stdout]   --> src/material.rs:38:23
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> Option<ScatterRecord> {
[INFO] [stdout]    |                       ^^^ help: if this is intentional, prefix it with an underscore: `_ray`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rng`
[INFO] [stdout]   --> src/material.rs:38:50
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> Option<ScatterRecord> {
[INFO] [stdout]    |                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ray`
[INFO] [stdout]   --> src/material.rs:45:30
[INFO] [stdout]    |
[INFO] [stdout] 45 |     fn scattering_pdf(&self, ray: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]    |                              ^^^ help: if this is intentional, prefix it with an underscore: `_ray`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ray`
[INFO] [stdout]    --> src/material.rs:149:23
[INFO] [stdout]     |
[INFO] [stdout] 149 |     fn emitted(&self, ray: Ray, rec: &HitRecord) -> Color {
[INFO] [stdout]     |                       ^^^ help: if this is intentional, prefix it with an underscore: `_ray`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hit`
[INFO] [stdout]   --> src/sphere.rs:88:21
[INFO] [stdout]    |
[INFO] [stdout] 88 |         if let Some(hit) = self.hit(&Ray::new(o, v, 0.0), 0.001, std::f64::INFINITY) {
[INFO] [stdout]    |                     ^^^ help: if this is intentional, prefix it with an underscore: `_hit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]   --> src/texture.rs:65:21
[INFO] [stdout]    |
[INFO] [stdout] 65 |     fn value(&self, u: f64, v: f64, p: &Point) -> 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:65:29
[INFO] [stdout]    |
[INFO] [stdout] 65 |     fn value(&self, u: f64, v: f64, p: &Point) -> 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:89:37
[INFO] [stdout]    |
[INFO] [stdout] 89 |     fn value(&self, u: f64, v: f64, p: &Point) -> Color {
[INFO] [stdout]    |                                     ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `pdf_value` and `random` are never used
[INFO] [stdout]   --> src/hittable.rs:71:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | impl HittableList {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 71 |     fn pdf_value(&self, o: Point, v: Vec3) -> f64 {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     fn random(&self, o: Point) -> 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: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/aarect.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 51 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> 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] 51 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> 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:94:12
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn hit(&self, ray: &Ray, t_min: f64, mut t_max: f64) -> 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] 94 |     fn hit(&self, ray: &Ray, t_min: f64, mut t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/cube.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 83 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> 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] 83 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]  --> src/hittable.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> 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] 9 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>>;
[INFO] [stdout]   |                                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/hittable.rs:39:10
[INFO] [stdout]    |
[INFO] [stdout] 38 |         material: &'a dyn Material,
[INFO] [stdout]    |                    -- the lifetime is named here
[INFO] [stdout] 39 |     ) -> HitRecord {
[INFO] [stdout]    |          ^^^^^^^^^ 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: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 39 |     ) -> HitRecord<'a> {
[INFO] [stdout]    |                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hittable.rs:86:12
[INFO] [stdout]    |
[INFO] [stdout] 86 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> 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] 86 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/hittable.rs:136:12
[INFO] [stdout]     |
[INFO] [stdout] 136 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> 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] 136 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]     |                                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/hittable.rs:160:12
[INFO] [stdout]     |
[INFO] [stdout] 160 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> 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] 160 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> 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:17:16
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> 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] 17 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> 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:38:16
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> 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] 38 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> 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:64:16
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> 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] 64 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> 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:100:16
[INFO] [stdout]     |
[INFO] [stdout] 100 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> 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] 100 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> 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:145:16
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn scatter(&self, _ray: Ray, _rec: &HitRecord, _rng: &mut ThreadRng) -> 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] 145 |     fn scatter(&self, _ray: Ray, _rec: &HitRecord, _rng: &mut ThreadRng) -> 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:170:16
[INFO] [stdout]     |
[INFO] [stdout] 170 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> 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] 170 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> Option<ScatterRecord<'_>> {
[INFO] [stdout]     |                                                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/medium.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> 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] 28 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/rotate.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> 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] 74 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/sphere.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<hittable::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] 36 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<hittable::HitRecord<'_>> {
[INFO] [stdout]    |                                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/sphere.rs:140:12
[INFO] [stdout]     |
[INFO] [stdout] 140 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<hittable::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] 140 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<hittable::HitRecord<'_>> {
[INFO] [stdout]     |                                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 31.71s
[INFO] running `Command { std: "docker" "inspect" "031492b25fcad70c2ca691618623504c4639d313c754cb9d165fb97ab1a3a323", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "031492b25fcad70c2ca691618623504c4639d313c754cb9d165fb97ab1a3a323" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `super::pdf`
[INFO] [stdout]  --> src/material.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use super::pdf;
[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: `super::bvh::BVH`
[INFO] [stdout]  --> src/scenes.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use super::bvh::BVH;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::medium::ConstantMedium`
[INFO] [stdout]  --> src/scenes.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use super::medium::ConstantMedium;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MovingSphere`
[INFO] [stdout]   --> src/scenes.rs:11:21
[INFO] [stdout]    |
[INFO] [stdout] 11 | use super::sphere::{MovingSphere, Sphere};
[INFO] [stdout]    |                     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Checkered`, `ImageTexture`, and `NoiseTexture`
[INFO] [stdout]   --> src/scenes.rs:12:22
[INFO] [stdout]    |
[INFO] [stdout] 12 | use super::texture::{Checkered, ImageTexture, NoiseTexture, SolidColor};
[INFO] [stdout]    |                      ^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::utils`
[INFO] [stdout]   --> src/scenes.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use super::utils;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `image`
[INFO] [stdout]   --> src/scenes.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use image;
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::scenes::Scene`
[INFO] [stdout]   --> src/lib.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | use crate::scenes::Scene;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/lib.rs:60:60
[INFO] [stdout]    |
[INFO] [stdout] 60 |     if let Some(hit) = world.hit(&ray_in, 0.001, std::f64::INFINITY) {
[INFO] [stdout]    |                                                            ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/aarect.rs:95:81
[INFO] [stdout]    |
[INFO] [stdout] 95 |         if let Some(rec) = self.hit(&Ray::new(origin, v, 0.0), 0.001, std::f64::INFINITY) {
[INFO] [stdout]    |                                                                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/medium.rs:31:34
[INFO] [stdout]    |
[INFO] [stdout] 31 |             .hit(ray, -std::f64::INFINITY, std::f64::INFINITY)
[INFO] [stdout]    |                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/medium.rs:31:54
[INFO] [stdout]    |
[INFO] [stdout] 31 |             .hit(ray, -std::f64::INFINITY, std::f64::INFINITY)
[INFO] [stdout]    |                                                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/medium.rs:33:87
[INFO] [stdout]    |
[INFO] [stdout] 33 |             if let Some(mut rec2) = self.boundary.hit(ray, rec1.t + 0.0001, std::f64::INFINITY) {
[INFO] [stdout]    |                                                                                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/rotate.rs:20:48
[INFO] [stdout]    |
[INFO] [stdout] 20 |             let mut min = Point::new(std::f64::INFINITY, std::f64::INFINITY, std::f64::INFINITY);
[INFO] [stdout]    |                                                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/rotate.rs:20:68
[INFO] [stdout]    |
[INFO] [stdout] 20 |             let mut min = Point::new(std::f64::INFINITY, std::f64::INFINITY, std::f64::INFINITY);
[INFO] [stdout]    |                                                                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/rotate.rs:20:88
[INFO] [stdout]    |
[INFO] [stdout] 20 |             let mut min = Point::new(std::f64::INFINITY, std::f64::INFINITY, std::f64::INFINITY);
[INFO] [stdout]    |                                                                                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/rotate.rs:22:28
[INFO] [stdout]    |
[INFO] [stdout] 22 |                 -std::f64::INFINITY,
[INFO] [stdout]    |                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/rotate.rs:23:28
[INFO] [stdout]    |
[INFO] [stdout] 23 |                 -std::f64::INFINITY,
[INFO] [stdout]    |                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/rotate.rs:24:28
[INFO] [stdout]    |
[INFO] [stdout] 24 |                 -std::f64::INFINITY,
[INFO] [stdout]    |                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/sphere.rs:88:76
[INFO] [stdout]    |
[INFO] [stdout] 88 |         if let Some(hit) = self.hit(&Ray::new(o, v, 0.0), 0.001, std::f64::INFINITY) {
[INFO] [stdout]    |                                                                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `o`
[INFO] [stdout]   --> src/hittable.rs:11:25
[INFO] [stdout]    |
[INFO] [stdout] 11 |     fn pdf_value(&self, o: Point, v: Vec3) -> f64 {
[INFO] [stdout]    |                         ^ help: if this is intentional, prefix it with an underscore: `_o`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/hittable.rs:11:35
[INFO] [stdout]    |
[INFO] [stdout] 11 |     fn pdf_value(&self, o: Point, v: Vec3) -> f64 {
[INFO] [stdout]    |                                   ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `o`
[INFO] [stdout]   --> src/hittable.rs:14:22
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn random(&self, o: Point) -> Vec3 {
[INFO] [stdout]    |                      ^ help: if this is intentional, prefix it with an underscore: `_o`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ray`
[INFO] [stdout]   --> src/material.rs:21:30
[INFO] [stdout]    |
[INFO] [stdout] 21 |     fn scattering_pdf(&self, ray: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]    |                              ^^^ help: if this is intentional, prefix it with an underscore: `_ray`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rec`
[INFO] [stdout]   --> src/material.rs:21:41
[INFO] [stdout]    |
[INFO] [stdout] 21 |     fn scattering_pdf(&self, ray: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]    |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_rec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scattered`
[INFO] [stdout]   --> src/material.rs:21:58
[INFO] [stdout]    |
[INFO] [stdout] 21 |     fn scattering_pdf(&self, ray: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]    |                                                          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scattered`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ray`
[INFO] [stdout]   --> src/material.rs:38:23
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> Option<ScatterRecord> {
[INFO] [stdout]    |                       ^^^ help: if this is intentional, prefix it with an underscore: `_ray`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rng`
[INFO] [stdout]   --> src/material.rs:38:50
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> Option<ScatterRecord> {
[INFO] [stdout]    |                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ray`
[INFO] [stdout]   --> src/material.rs:45:30
[INFO] [stdout]    |
[INFO] [stdout] 45 |     fn scattering_pdf(&self, ray: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]    |                              ^^^ help: if this is intentional, prefix it with an underscore: `_ray`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ray`
[INFO] [stdout]    --> src/material.rs:149:23
[INFO] [stdout]     |
[INFO] [stdout] 149 |     fn emitted(&self, ray: Ray, rec: &HitRecord) -> Color {
[INFO] [stdout]     |                       ^^^ help: if this is intentional, prefix it with an underscore: `_ray`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hit`
[INFO] [stdout]   --> src/sphere.rs:88:21
[INFO] [stdout]    |
[INFO] [stdout] 88 |         if let Some(hit) = self.hit(&Ray::new(o, v, 0.0), 0.001, std::f64::INFINITY) {
[INFO] [stdout]    |                     ^^^ help: if this is intentional, prefix it with an underscore: `_hit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]   --> src/texture.rs:65:21
[INFO] [stdout]    |
[INFO] [stdout] 65 |     fn value(&self, u: f64, v: f64, p: &Point) -> 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:65:29
[INFO] [stdout]    |
[INFO] [stdout] 65 |     fn value(&self, u: f64, v: f64, p: &Point) -> 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:89:37
[INFO] [stdout]    |
[INFO] [stdout] 89 |     fn value(&self, u: f64, v: f64, p: &Point) -> Color {
[INFO] [stdout]    |                                     ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `pdf_value` and `random` are never used
[INFO] [stdout]   --> src/hittable.rs:71:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | impl HittableList {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 71 |     fn pdf_value(&self, o: Point, v: Vec3) -> f64 {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     fn random(&self, o: Point) -> 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: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/aarect.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 51 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> 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] 51 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> 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:94:12
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn hit(&self, ray: &Ray, t_min: f64, mut t_max: f64) -> 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] 94 |     fn hit(&self, ray: &Ray, t_min: f64, mut t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/cube.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 83 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> 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] 83 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]  --> src/hittable.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> 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] 9 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>>;
[INFO] [stdout]   |                                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/hittable.rs:39:10
[INFO] [stdout]    |
[INFO] [stdout] 38 |         material: &'a dyn Material,
[INFO] [stdout]    |                    -- the lifetime is named here
[INFO] [stdout] 39 |     ) -> HitRecord {
[INFO] [stdout]    |          ^^^^^^^^^ 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: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 39 |     ) -> HitRecord<'a> {
[INFO] [stdout]    |                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hittable.rs:86:12
[INFO] [stdout]    |
[INFO] [stdout] 86 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> 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] 86 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/hittable.rs:136:12
[INFO] [stdout]     |
[INFO] [stdout] 136 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> 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] 136 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]     |                                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/hittable.rs:160:12
[INFO] [stdout]     |
[INFO] [stdout] 160 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> 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] 160 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> 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:17:16
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> 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] 17 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> 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:38:16
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> 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] 38 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> 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:64:16
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> 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] 64 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> 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:100:16
[INFO] [stdout]     |
[INFO] [stdout] 100 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> 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] 100 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> 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:145:16
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn scatter(&self, _ray: Ray, _rec: &HitRecord, _rng: &mut ThreadRng) -> 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] 145 |     fn scatter(&self, _ray: Ray, _rec: &HitRecord, _rng: &mut ThreadRng) -> 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:170:16
[INFO] [stdout]     |
[INFO] [stdout] 170 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> 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] 170 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> Option<ScatterRecord<'_>> {
[INFO] [stdout]     |                                                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/medium.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> 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] 28 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/rotate.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> 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] 74 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/sphere.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<hittable::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] 36 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<hittable::HitRecord<'_>> {
[INFO] [stdout]    |                                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/sphere.rs:140:12
[INFO] [stdout]     |
[INFO] [stdout] 140 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<hittable::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] 140 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<hittable::HitRecord<'_>> {
[INFO] [stdout]     |                                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling ray_trace v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `super::pdf`
[INFO] [stdout]  --> src/material.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use super::pdf;
[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: `super::bvh::BVH`
[INFO] [stdout]  --> src/scenes.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use super::bvh::BVH;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::medium::ConstantMedium`
[INFO] [stdout]  --> src/scenes.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use super::medium::ConstantMedium;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MovingSphere`
[INFO] [stdout]   --> src/scenes.rs:11:21
[INFO] [stdout]    |
[INFO] [stdout] 11 | use super::sphere::{MovingSphere, Sphere};
[INFO] [stdout]    |                     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Checkered`, `ImageTexture`, and `NoiseTexture`
[INFO] [stdout]   --> src/scenes.rs:12:22
[INFO] [stdout]    |
[INFO] [stdout] 12 | use super::texture::{Checkered, ImageTexture, NoiseTexture, SolidColor};
[INFO] [stdout]    |                      ^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::utils`
[INFO] [stdout]   --> src/scenes.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use super::utils;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `image`
[INFO] [stdout]   --> src/scenes.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use image;
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::scenes::Scene`
[INFO] [stdout]   --> src/lib.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | use crate::scenes::Scene;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/lib.rs:60:60
[INFO] [stdout]    |
[INFO] [stdout] 60 |     if let Some(hit) = world.hit(&ray_in, 0.001, std::f64::INFINITY) {
[INFO] [stdout]    |                                                            ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/aarect.rs:95:81
[INFO] [stdout]    |
[INFO] [stdout] 95 |         if let Some(rec) = self.hit(&Ray::new(origin, v, 0.0), 0.001, std::f64::INFINITY) {
[INFO] [stdout]    |                                                                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/medium.rs:31:34
[INFO] [stdout]    |
[INFO] [stdout] 31 |             .hit(ray, -std::f64::INFINITY, std::f64::INFINITY)
[INFO] [stdout]    |                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/medium.rs:31:54
[INFO] [stdout]    |
[INFO] [stdout] 31 |             .hit(ray, -std::f64::INFINITY, std::f64::INFINITY)
[INFO] [stdout]    |                                                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/medium.rs:33:87
[INFO] [stdout]    |
[INFO] [stdout] 33 |             if let Some(mut rec2) = self.boundary.hit(ray, rec1.t + 0.0001, std::f64::INFINITY) {
[INFO] [stdout]    |                                                                                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/rotate.rs:20:48
[INFO] [stdout]    |
[INFO] [stdout] 20 |             let mut min = Point::new(std::f64::INFINITY, std::f64::INFINITY, std::f64::INFINITY);
[INFO] [stdout]    |                                                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/rotate.rs:20:68
[INFO] [stdout]    |
[INFO] [stdout] 20 |             let mut min = Point::new(std::f64::INFINITY, std::f64::INFINITY, std::f64::INFINITY);
[INFO] [stdout]    |                                                                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/rotate.rs:20:88
[INFO] [stdout]    |
[INFO] [stdout] 20 |             let mut min = Point::new(std::f64::INFINITY, std::f64::INFINITY, std::f64::INFINITY);
[INFO] [stdout]    |                                                                                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/rotate.rs:22:28
[INFO] [stdout]    |
[INFO] [stdout] 22 |                 -std::f64::INFINITY,
[INFO] [stdout]    |                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/rotate.rs:23:28
[INFO] [stdout]    |
[INFO] [stdout] 23 |                 -std::f64::INFINITY,
[INFO] [stdout]    |                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/rotate.rs:24:28
[INFO] [stdout]    |
[INFO] [stdout] 24 |                 -std::f64::INFINITY,
[INFO] [stdout]    |                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]   --> src/sphere.rs:88:76
[INFO] [stdout]    |
[INFO] [stdout] 88 |         if let Some(hit) = self.hit(&Ray::new(o, v, 0.0), 0.001, std::f64::INFINITY) {
[INFO] [stdout]    |                                                                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `o`
[INFO] [stdout]   --> src/hittable.rs:11:25
[INFO] [stdout]    |
[INFO] [stdout] 11 |     fn pdf_value(&self, o: Point, v: Vec3) -> f64 {
[INFO] [stdout]    |                         ^ help: if this is intentional, prefix it with an underscore: `_o`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/hittable.rs:11:35
[INFO] [stdout]    |
[INFO] [stdout] 11 |     fn pdf_value(&self, o: Point, v: Vec3) -> f64 {
[INFO] [stdout]    |                                   ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `o`
[INFO] [stdout]   --> src/hittable.rs:14:22
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn random(&self, o: Point) -> Vec3 {
[INFO] [stdout]    |                      ^ help: if this is intentional, prefix it with an underscore: `_o`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ray`
[INFO] [stdout]   --> src/material.rs:21:30
[INFO] [stdout]    |
[INFO] [stdout] 21 |     fn scattering_pdf(&self, ray: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]    |                              ^^^ help: if this is intentional, prefix it with an underscore: `_ray`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rec`
[INFO] [stdout]   --> src/material.rs:21:41
[INFO] [stdout]    |
[INFO] [stdout] 21 |     fn scattering_pdf(&self, ray: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]    |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_rec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scattered`
[INFO] [stdout]   --> src/material.rs:21:58
[INFO] [stdout]    |
[INFO] [stdout] 21 |     fn scattering_pdf(&self, ray: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]    |                                                          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scattered`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ray`
[INFO] [stdout]   --> src/material.rs:38:23
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> Option<ScatterRecord> {
[INFO] [stdout]    |                       ^^^ help: if this is intentional, prefix it with an underscore: `_ray`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rng`
[INFO] [stdout]   --> src/material.rs:38:50
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> Option<ScatterRecord> {
[INFO] [stdout]    |                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ray`
[INFO] [stdout]   --> src/material.rs:45:30
[INFO] [stdout]    |
[INFO] [stdout] 45 |     fn scattering_pdf(&self, ray: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]    |                              ^^^ help: if this is intentional, prefix it with an underscore: `_ray`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ray`
[INFO] [stdout]    --> src/material.rs:149:23
[INFO] [stdout]     |
[INFO] [stdout] 149 |     fn emitted(&self, ray: Ray, rec: &HitRecord) -> Color {
[INFO] [stdout]     |                       ^^^ help: if this is intentional, prefix it with an underscore: `_ray`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hit`
[INFO] [stdout]   --> src/sphere.rs:88:21
[INFO] [stdout]    |
[INFO] [stdout] 88 |         if let Some(hit) = self.hit(&Ray::new(o, v, 0.0), 0.001, std::f64::INFINITY) {
[INFO] [stdout]    |                     ^^^ help: if this is intentional, prefix it with an underscore: `_hit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]   --> src/texture.rs:65:21
[INFO] [stdout]    |
[INFO] [stdout] 65 |     fn value(&self, u: f64, v: f64, p: &Point) -> 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:65:29
[INFO] [stdout]    |
[INFO] [stdout] 65 |     fn value(&self, u: f64, v: f64, p: &Point) -> 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:89:37
[INFO] [stdout]    |
[INFO] [stdout] 89 |     fn value(&self, u: f64, v: f64, p: &Point) -> Color {
[INFO] [stdout]    |                                     ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `pdf_value` and `random` are never used
[INFO] [stdout]   --> src/hittable.rs:71:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | impl HittableList {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 71 |     fn pdf_value(&self, o: Point, v: Vec3) -> f64 {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     fn random(&self, o: Point) -> 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: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/aarect.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 51 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> 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] 51 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> 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:94:12
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn hit(&self, ray: &Ray, t_min: f64, mut t_max: f64) -> 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] 94 |     fn hit(&self, ray: &Ray, t_min: f64, mut t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/cube.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 83 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> 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] 83 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]  --> src/hittable.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> 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] 9 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>>;
[INFO] [stdout]   |                                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/hittable.rs:39:10
[INFO] [stdout]    |
[INFO] [stdout] 38 |         material: &'a dyn Material,
[INFO] [stdout]    |                    -- the lifetime is named here
[INFO] [stdout] 39 |     ) -> HitRecord {
[INFO] [stdout]    |          ^^^^^^^^^ 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: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 39 |     ) -> HitRecord<'a> {
[INFO] [stdout]    |                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hittable.rs:86:12
[INFO] [stdout]    |
[INFO] [stdout] 86 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> 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] 86 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/hittable.rs:136:12
[INFO] [stdout]     |
[INFO] [stdout] 136 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> 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] 136 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]     |                                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/hittable.rs:160:12
[INFO] [stdout]     |
[INFO] [stdout] 160 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> 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] 160 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> 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:17:16
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> 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] 17 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> 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:38:16
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> 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] 38 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> 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:64:16
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> 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] 64 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> 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:100:16
[INFO] [stdout]     |
[INFO] [stdout] 100 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> 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] 100 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> 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:145:16
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn scatter(&self, _ray: Ray, _rec: &HitRecord, _rng: &mut ThreadRng) -> 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] 145 |     fn scatter(&self, _ray: Ray, _rec: &HitRecord, _rng: &mut ThreadRng) -> 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:170:16
[INFO] [stdout]     |
[INFO] [stdout] 170 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> 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] 170 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> Option<ScatterRecord<'_>> {
[INFO] [stdout]     |                                                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/medium.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> 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] 28 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/rotate.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> 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] 74 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/sphere.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<hittable::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] 36 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<hittable::HitRecord<'_>> {
[INFO] [stdout]    |                                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/sphere.rs:140:12
[INFO] [stdout]     |
[INFO] [stdout] 140 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<hittable::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] 140 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<hittable::HitRecord<'_>> {
[INFO] [stdout]     |                                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.57s
[INFO] running `Command { std: "docker" "inspect" "031492b25fcad70c2ca691618623504c4639d313c754cb9d165fb97ab1a3a323", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "031492b25fcad70c2ca691618623504c4639d313c754cb9d165fb97ab1a3a323" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `super::pdf`
[INFO] [stderr]  --> src/material.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use super::pdf;
[INFO] [stderr]   |     ^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `super::bvh::BVH`
[INFO] [stderr]  --> src/scenes.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use super::bvh::BVH;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `super::medium::ConstantMedium`
[INFO] [stderr]  --> src/scenes.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use super::medium::ConstantMedium;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `MovingSphere`
[INFO] [stderr]   --> src/scenes.rs:11:21
[INFO] [stderr]    |
[INFO] [stderr] 11 | use super::sphere::{MovingSphere, Sphere};
[INFO] [stderr]    |                     ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Checkered`, `ImageTexture`, and `NoiseTexture`
[INFO] [stderr]   --> src/scenes.rs:12:22
[INFO] [stderr]    |
[INFO] [stderr] 12 | use super::texture::{Checkered, ImageTexture, NoiseTexture, SolidColor};
[INFO] [stderr]    |                      ^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `super::utils`
[INFO] [stderr]   --> src/scenes.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 13 | use super::utils;
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `image`
[INFO] [stderr]   --> src/scenes.rs:16:5
[INFO] [stderr]    |
[INFO] [stderr] 16 | use image;
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::scenes::Scene`
[INFO] [stderr]   --> src/lib.rs:28:5
[INFO] [stderr]    |
[INFO] [stderr] 28 | use crate::scenes::Scene;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stderr]   --> src/lib.rs:60:60
[INFO] [stderr]    |
[INFO] [stderr] 60 |     if let Some(hit) = world.hit(&ray_in, 0.001, std::f64::INFINITY) {
[INFO] [stderr]    |                                                            ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stderr]   --> src/aarect.rs:95:81
[INFO] [stderr]    |
[INFO] [stderr] 95 |         if let Some(rec) = self.hit(&Ray::new(origin, v, 0.0), 0.001, std::f64::INFINITY) {
[INFO] [stderr]    |                                                                                 ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stderr]   --> src/medium.rs:31:34
[INFO] [stderr]    |
[INFO] [stderr] 31 |             .hit(ray, -std::f64::INFINITY, std::f64::INFINITY)
[INFO] [stderr]    |                                  ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stderr]   --> src/medium.rs:31:54
[INFO] [stderr]    |
[INFO] [stderr] 31 |             .hit(ray, -std::f64::INFINITY, std::f64::INFINITY)
[INFO] [stderr]    |                                                      ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stderr]   --> src/medium.rs:33:87
[INFO] [stderr]    |
[INFO] [stderr] 33 |             if let Some(mut rec2) = self.boundary.hit(ray, rec1.t + 0.0001, std::f64::INFINITY) {
[INFO] [stderr]    |                                                                                       ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stderr]   --> src/rotate.rs:20:48
[INFO] [stderr]    |
[INFO] [stderr] 20 |             let mut min = Point::new(std::f64::INFINITY, std::f64::INFINITY, std::f64::INFINITY);
[INFO] [stderr]    |                                                ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stderr]   --> src/rotate.rs:20:68
[INFO] [stderr]    |
[INFO] [stderr] 20 |             let mut min = Point::new(std::f64::INFINITY, std::f64::INFINITY, std::f64::INFINITY);
[INFO] [stderr]    |                                                                    ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stderr]   --> src/rotate.rs:20:88
[INFO] [stderr]    |
[INFO] [stderr] 20 |             let mut min = Point::new(std::f64::INFINITY, std::f64::INFINITY, std::f64::INFINITY);
[INFO] [stderr]    |                                                                                        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stderr]   --> src/rotate.rs:22:28
[INFO] [stderr]    |
[INFO] [stderr] 22 |                 -std::f64::INFINITY,
[INFO] [stderr]    |                            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stderr]   --> src/rotate.rs:23:28
[INFO] [stderr]    |
[INFO] [stderr] 23 |                 -std::f64::INFINITY,
[INFO] [stderr]    |                            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stderr]   --> src/rotate.rs:24:28
[INFO] [stderr]    |
[INFO] [stderr] 24 |                 -std::f64::INFINITY,
[INFO] [stderr]    |                            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stderr]   --> src/sphere.rs:88:76
[INFO] [stderr]    |
[INFO] [stderr] 88 |         if let Some(hit) = self.hit(&Ray::new(o, v, 0.0), 0.001, std::f64::INFINITY) {
[INFO] [stderr]    |                                                                            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `o`
[INFO] [stderr]   --> src/hittable.rs:11:25
[INFO] [stderr]    |
[INFO] [stderr] 11 |     fn pdf_value(&self, o: Point, v: Vec3) -> f64 {
[INFO] [stderr]    |                         ^ help: if this is intentional, prefix it with an underscore: `_o`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `v`
[INFO] [stderr]   --> src/hittable.rs:11:35
[INFO] [stderr]    |
[INFO] [stderr] 11 |     fn pdf_value(&self, o: Point, v: Vec3) -> f64 {
[INFO] [stderr]    |                                   ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `o`
[INFO] [stderr]   --> src/hittable.rs:14:22
[INFO] [stderr]    |
[INFO] [stderr] 14 |     fn random(&self, o: Point) -> Vec3 {
[INFO] [stderr]    |                      ^ help: if this is intentional, prefix it with an underscore: `_o`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ray`
[INFO] [stderr]   --> src/material.rs:21:30
[INFO] [stderr]    |
[INFO] [stderr] 21 |     fn scattering_pdf(&self, ray: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stderr]    |                              ^^^ help: if this is intentional, prefix it with an underscore: `_ray`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rec`
[INFO] [stderr]   --> src/material.rs:21:41
[INFO] [stderr]    |
[INFO] [stderr] 21 |     fn scattering_pdf(&self, ray: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stderr]    |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_rec`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `scattered`
[INFO] [stderr]   --> src/material.rs:21:58
[INFO] [stderr]    |
[INFO] [stderr] 21 |     fn scattering_pdf(&self, ray: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stderr]    |                                                          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scattered`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ray`
[INFO] [stderr]   --> src/material.rs:38:23
[INFO] [stderr]    |
[INFO] [stderr] 38 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> Option<ScatterRecord> {
[INFO] [stderr]    |                       ^^^ help: if this is intentional, prefix it with an underscore: `_ray`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rng`
[INFO] [stderr]   --> src/material.rs:38:50
[INFO] [stderr]    |
[INFO] [stderr] 38 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> Option<ScatterRecord> {
[INFO] [stderr]    |                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ray`
[INFO] [stderr]   --> src/material.rs:45:30
[INFO] [stderr]    |
[INFO] [stderr] 45 |     fn scattering_pdf(&self, ray: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stderr]    |                              ^^^ help: if this is intentional, prefix it with an underscore: `_ray`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ray`
[INFO] [stderr]    --> src/material.rs:149:23
[INFO] [stderr]     |
[INFO] [stderr] 149 |     fn emitted(&self, ray: Ray, rec: &HitRecord) -> Color {
[INFO] [stderr]     |                       ^^^ help: if this is intentional, prefix it with an underscore: `_ray`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `hit`
[INFO] [stderr]   --> src/sphere.rs:88:21
[INFO] [stderr]    |
[INFO] [stderr] 88 |         if let Some(hit) = self.hit(&Ray::new(o, v, 0.0), 0.001, std::f64::INFINITY) {
[INFO] [stderr]    |                     ^^^ help: if this is intentional, prefix it with an underscore: `_hit`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `u`
[INFO] [stderr]   --> src/texture.rs:65:21
[INFO] [stderr]    |
[INFO] [stderr] 65 |     fn value(&self, u: f64, v: f64, p: &Point) -> Color {
[INFO] [stderr]    |                     ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `v`
[INFO] [stderr]   --> src/texture.rs:65:29
[INFO] [stderr]    |
[INFO] [stderr] 65 |     fn value(&self, u: f64, v: f64, p: &Point) -> Color {
[INFO] [stderr]    |                             ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `p`
[INFO] [stderr]   --> src/texture.rs:89:37
[INFO] [stderr]    |
[INFO] [stderr] 89 |     fn value(&self, u: f64, v: f64, p: &Point) -> Color {
[INFO] [stderr]    |                                     ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stderr] 
[INFO] [stderr] warning: methods `pdf_value` and `random` are never used
[INFO] [stderr]   --> src/hittable.rs:71:8
[INFO] [stderr]    |
[INFO] [stderr] 56 | impl HittableList {
[INFO] [stderr]    | ----------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 71 |     fn pdf_value(&self, o: Point, v: Vec3) -> f64 {
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 78 |     fn random(&self, o: Point) -> Vec3 {
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/aarect.rs:51:12
[INFO] [stderr]    |
[INFO] [stderr] 51 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stderr]    |            ^^^^^ the lifetime is elided here                   ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 51 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stderr]    |                                                                         ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/bvh.rs:94:12
[INFO] [stderr]    |
[INFO] [stderr] 94 |     fn hit(&self, ray: &Ray, t_min: f64, mut t_max: f64) -> Option<HitRecord> {
[INFO] [stderr]    |            ^^^^^ the lifetime is elided here                       ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 94 |     fn hit(&self, ray: &Ray, t_min: f64, mut t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stderr]    |                                                                             ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/cube.rs:83:12
[INFO] [stderr]    |
[INFO] [stderr] 83 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stderr]    |            ^^^^^ the lifetime is elided here                   ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 83 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stderr]    |                                                                         ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]  --> src/hittable.rs:9:12
[INFO] [stderr]   |
[INFO] [stderr] 9 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord>;
[INFO] [stderr]   |            ^^^^^ the lifetime is elided here                   ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]   |
[INFO] [stderr]   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]   |
[INFO] [stderr] 9 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>>;
[INFO] [stderr]   |                                                                         ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stderr]   --> src/hittable.rs:39:10
[INFO] [stderr]    |
[INFO] [stderr] 38 |         material: &'a dyn Material,
[INFO] [stderr]    |                    -- the lifetime is named here
[INFO] [stderr] 39 |     ) -> HitRecord {
[INFO] [stderr]    |          ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: consistently use `'a`
[INFO] [stderr]    |
[INFO] [stderr] 39 |     ) -> HitRecord<'a> {
[INFO] [stderr]    |                   ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/hittable.rs:86:12
[INFO] [stderr]    |
[INFO] [stderr] 86 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stderr]    |            ^^^^^ the lifetime is elided here                   ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 86 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stderr]    |                                                                         ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/hittable.rs:136:12
[INFO] [stderr]     |
[INFO] [stderr] 136 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stderr]     |            ^^^^^ the lifetime is elided here                   ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 136 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stderr]     |                                                                         ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/hittable.rs:160:12
[INFO] [stderr]     |
[INFO] [stderr] 160 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stderr]     |            ^^^^^ the lifetime is elided here                   ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 160 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stderr]     |                                                                         ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/material.rs:17:16
[INFO] [stderr]    |
[INFO] [stderr] 17 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> Option<ScatterRecord>;
[INFO] [stderr]    |                ^^^^^ the lifetime is elided here                                ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 17 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> Option<ScatterRecord<'_>>;
[INFO] [stderr]    |                                                                                              ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/material.rs:38:16
[INFO] [stderr]    |
[INFO] [stderr] 38 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> Option<ScatterRecord> {
[INFO] [stderr]    |                ^^^^^ the lifetime is elided here                                ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 38 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> Option<ScatterRecord<'_>> {
[INFO] [stderr]    |                                                                                              ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/material.rs:64:16
[INFO] [stderr]    |
[INFO] [stderr] 64 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> Option<ScatterRecord> {
[INFO] [stderr]    |                ^^^^^ the lifetime is elided here                                ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 64 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> Option<ScatterRecord<'_>> {
[INFO] [stderr]    |                                                                                              ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/material.rs:100:16
[INFO] [stderr]     |
[INFO] [stderr] 100 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> Option<ScatterRecord> {
[INFO] [stderr]     |                ^^^^^ the lifetime is elided here                                ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 100 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> Option<ScatterRecord<'_>> {
[INFO] [stderr]     |                                                                                              ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/material.rs:145:16
[INFO] [stderr]     |
[INFO] [stderr] 145 |     fn scatter(&self, _ray: Ray, _rec: &HitRecord, _rng: &mut ThreadRng) -> Option<ScatterRecord> {
[INFO] [stderr]     |                ^^^^^ the lifetime is elided here                                   ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 145 |     fn scatter(&self, _ray: Ray, _rec: &HitRecord, _rng: &mut ThreadRng) -> Option<ScatterRecord<'_>> {
[INFO] [stderr]     |                                                                                                 ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/material.rs:170:16
[INFO] [stderr]     |
[INFO] [stderr] 170 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> Option<ScatterRecord> {
[INFO] [stderr]     |                ^^^^^ the lifetime is elided here                                ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 170 |     fn scatter(&self, ray: Ray, rec: &HitRecord, rng: &mut ThreadRng) -> Option<ScatterRecord<'_>> {
[INFO] [stderr]     |                                                                                              ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/medium.rs:28:12
[INFO] [stderr]    |
[INFO] [stderr] 28 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stderr]    |            ^^^^^ the lifetime is elided here                   ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 28 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stderr]    |                                                                         ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/rotate.rs:74:12
[INFO] [stderr]    |
[INFO] [stderr] 74 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stderr]    |            ^^^^^ the lifetime is elided here                   ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 74 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stderr]    |                                                                         ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/sphere.rs:36:12
[INFO] [stderr]    |
[INFO] [stderr] 36 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<hittable::HitRecord> {
[INFO] [stderr]    |            ^^^^^ the lifetime is elided here                   ^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 36 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<hittable::HitRecord<'_>> {
[INFO] [stderr]    |                                                                                   ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/sphere.rs:140:12
[INFO] [stderr]     |
[INFO] [stderr] 140 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<hittable::HitRecord> {
[INFO] [stderr]     |            ^^^^^ the lifetime is elided here                   ^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 140 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<hittable::HitRecord<'_>> {
[INFO] [stderr]     |                                                                                   ++++
[INFO] [stderr] 
[INFO] [stderr] warning: `ray_trace` (lib) generated 53 warnings (run `cargo fix --lib -p ray_trace` to apply 40 suggestions)
[INFO] [stderr] warning: `ray_trace` (lib test) generated 53 warnings (53 duplicates)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.06s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/deps/ray_trace-d39b75be7cb09068)
[INFO] [stdout] 
[INFO] [stdout] running 17 tests
[INFO] [stdout] test point::tests::tests_add::add_point_vector ... ok
[INFO] [stdout] test point::tests::tests_add::add_vector_point ... ok
[INFO] [stdout] test point::tests::tests_sub::sub_point_point ... ok
[INFO] [stdout] test point::tests::tests_sub::sub_point_vector ... ok
[INFO] [stdout] test point::tests::tests_sub::sub_vector_point ... ok
[INFO] [stdout] test vector::tests::tests_add::broadcast_add ... ok
[INFO] [stdout] test vector::tests::tests_add::vector_add ... ok
[INFO] [stdout] test vector::tests::tests_div::elem_div ... ok
[INFO] [stdout] test vector::tests::tests_div::scalar_div ... ok
[INFO] [stdout] test vector::tests::tests_dot::dot ... ok
[INFO] [stdout] test vector::tests::tests_len::len ... ok
[INFO] [stdout] test vector::tests::tests_mul::elem_mul ... ok
[INFO] [stdout] test vector::tests::tests_mul::scalar_mul ... ok
[INFO] [stdout] test vector::tests::tests_neg::neg_neg ... ok
[INFO] [stdout] test vector::tests::tests_sub::vector_sub ... ok
[INFO] [stdout] test vector::tests::tests_neg::neg_pos ... ok
[INFO] [stdout] test vector::tests::tests_sub::broadcast_sub ... ok
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/deps/ray_trace-ecfc2c73cf0d62e5)
[INFO] [stdout] test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests ray_trace
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "031492b25fcad70c2ca691618623504c4639d313c754cb9d165fb97ab1a3a323", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "031492b25fcad70c2ca691618623504c4639d313c754cb9d165fb97ab1a3a323", kill_on_drop: false }`
[INFO] [stdout] 031492b25fcad70c2ca691618623504c4639d313c754cb9d165fb97ab1a3a323
