[INFO] cloning repository https://github.com/sayZhongWen/raytracing-2023
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/sayZhongWen/raytracing-2023" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FsayZhongWen%2Fraytracing-2023", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FsayZhongWen%2Fraytracing-2023'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c922e6d813aae7e51a7b42e466ac148d554fcabc
[INFO] checking sayZhongWen/raytracing-2023 against try#5ef65a4ed75279dc1b7a26cedc27293a9f4ca8db for pr-143717
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FsayZhongWen%2Fraytracing-2023" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-6-tc2/source/rust-toolchain
[INFO] started tweaking git repo https://github.com/sayZhongWen/raytracing-2023
[INFO] finished tweaking git repo https://github.com/sayZhongWen/raytracing-2023
[INFO] tweaked toml for git repo https://github.com/sayZhongWen/raytracing-2023 written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/sayZhongWen/raytracing-2023 on toolchain 5ef65a4ed75279dc1b7a26cedc27293a9f4ca8db
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5ef65a4ed75279dc1b7a26cedc27293a9f4ca8db" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/sayZhongWen/raytracing-2023 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" "+5ef65a4ed75279dc1b7a26cedc27293a9f4ca8db" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr] note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+5ef65a4ed75279dc1b7a26cedc27293a9f4ca8db" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a8184b7f2ce79b697482353beefc4b4e0f7d9e08b694f393d7ebdae4b2797304
[INFO] running `Command { std: "docker" "start" "-a" "a8184b7f2ce79b697482353beefc4b4e0f7d9e08b694f393d7ebdae4b2797304", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a8184b7f2ce79b697482353beefc4b4e0f7d9e08b694f393d7ebdae4b2797304", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a8184b7f2ce79b697482353beefc4b4e0f7d9e08b694f393d7ebdae4b2797304", kill_on_drop: false }`
[INFO] [stdout] a8184b7f2ce79b697482353beefc4b4e0f7d9e08b694f393d7ebdae4b2797304
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+5ef65a4ed75279dc1b7a26cedc27293a9f4ca8db" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c25fe048c24c5f4eb8669e29ea3b7782ed72c467e5026a334b163fc3998479ea
[INFO] running `Command { std: "docker" "start" "-a" "c25fe048c24c5f4eb8669e29ea3b7782ed72c467e5026a334b163fc3998479ea", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr] note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr]    Compiling autocfg v1.0.0
[INFO] [stderr]    Compiling libc v0.2.146
[INFO] [stderr]     Checking cfg-if v1.0.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.16
[INFO] [stderr]     Checking scopeguard v1.1.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.60
[INFO] [stderr]     Checking simd-adler32 v0.3.5
[INFO] [stderr]    Compiling unicode-ident v1.0.9
[INFO] [stderr]    Compiling quote v1.0.28
[INFO] [stderr]    Compiling rayon-core v1.11.0
[INFO] [stderr]    Compiling crc32fast v1.2.0
[INFO] [stderr]     Checking adler v1.0.2
[INFO] [stderr]     Checking miniz_oxide v0.7.1
[INFO] [stderr]    Compiling futures-core v0.3.28
[INFO] [stderr]     Checking cfg-if v0.1.10
[INFO] [stderr]     Checking lock_api v0.4.6
[INFO] [stderr]    Compiling bitflags v1.2.1
[INFO] [stderr]     Checking either v1.5.3
[INFO] [stderr]    Compiling memoffset v0.9.0
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.15
[INFO] [stderr]     Checking crossbeam-channel v0.5.8
[INFO] [stderr]    Compiling num-traits v0.2.12
[INFO] [stderr]    Compiling num-integer v0.1.43
[INFO] [stderr]     Checking flate2 v1.0.26
[INFO] [stderr]    Compiling num-rational v0.4.1
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]     Checking crossbeam-deque v0.8.3
[INFO] [stderr]    Compiling syn v2.0.18
[INFO] [stderr]     Checking getrandom v0.2.10
[INFO] [stderr]     Checking num_cpus v1.13.0
[INFO] [stderr]    Compiling byteorder v1.3.4
[INFO] [stderr]     Checking futures-sink v0.3.28
[INFO] [stderr]     Checking weezl v0.1.7
[INFO] [stderr]     Checking fdeflate v0.3.0
[INFO] [stderr]     Checking nanorand v0.7.0
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking zune-inflate v0.2.54
[INFO] [stderr]     Checking bit_field v0.10.2
[INFO] [stderr]     Checking regex-syntax v0.6.18
[INFO] [stderr]     Checking smallvec v1.10.0
[INFO] [stderr]     Checking color_quant v1.1.0
[INFO] [stderr]     Checking half v2.2.1
[INFO] [stderr]     Checking unicode-width v0.1.8
[INFO] [stderr]     Checking lebe v0.5.2
[INFO] [stderr]     Checking bytemuck v1.13.1
[INFO] [stderr]     Checking ppv-lite86 v0.2.17
[INFO] [stderr]     Checking lazy_static v1.4.0
[INFO] [stderr]     Checking console v0.15.7
[INFO] [stderr]     Checking rayon v1.7.0
[INFO] [stderr]     Checking png v0.17.9
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]     Checking regex v1.3.9
[INFO] [stderr]     Checking gif v0.12.0
[INFO] [stderr]     Checking number_prefix v0.4.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking threadpool v1.8.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking indicatif v0.16.2
[INFO] [stderr]     Checking jpeg-decoder v0.3.0
[INFO] [stderr]     Checking tiff v0.8.1
[INFO] [stderr]    Compiling pin-project-internal v1.1.0
[INFO] [stderr]     Checking pin-project v1.1.0
[INFO] [stderr]     Checking flume v0.10.14
[INFO] [stderr]     Checking exr v1.6.4
[INFO] [stderr]     Checking image v0.24.6
[INFO] [stderr]     Checking raytracer v0.1.0 (/opt/rustwide/workdir/raytracer)
[INFO] [stdout] warning: unused variable: `o`
[INFO] [stdout]   --> raytracer/src/hittable.rs:10:25
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn pdf_value(&self, o: &Point3, v: &Vec3) -> f64 {
[INFO] [stdout]    |                         ^ help: if this is intentional, prefix it with an underscore: `_o`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> raytracer/src/hittable.rs:10:37
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn pdf_value(&self, o: &Point3, 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]   --> raytracer/src/hittable.rs:13:22
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn random(&self, o: &Vec3) -> Vec3 {
[INFO] [stdout]    |                      ^ help: if this is intentional, prefix it with an underscore: `_o`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r_in`
[INFO] [stdout]   --> raytracer/src/material.rs:10:23
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn scatter(&self, r_in: &Ray, rec: &HitRecord, pdf: &mut f64) -> Option<(Ray, Color)> {
[INFO] [stdout]    |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_r_in`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rec`
[INFO] [stdout]   --> raytracer/src/material.rs:10:35
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn scatter(&self, r_in: &Ray, rec: &HitRecord, pdf: &mut f64) -> Option<(Ray, Color)> {
[INFO] [stdout]    |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_rec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pdf`
[INFO] [stdout]   --> raytracer/src/material.rs:10:52
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn scatter(&self, r_in: &Ray, rec: &HitRecord, pdf: &mut f64) -> Option<(Ray, Color)> {
[INFO] [stdout]    |                                                    ^^^ help: if this is intentional, prefix it with an underscore: `_pdf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r_in`
[INFO] [stdout]   --> raytracer/src/material.rs:13:30
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn scattering_pdf(&self, r_in: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_r_in`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rec`
[INFO] [stdout]   --> raytracer/src/material.rs:13:42
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn scattering_pdf(&self, r_in: &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]   --> raytracer/src/material.rs:13:59
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn scattering_pdf(&self, r_in: &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: `r_in`
[INFO] [stdout]   --> raytracer/src/material.rs:53:30
[INFO] [stdout]    |
[INFO] [stdout] 53 |     fn scattering_pdf(&self, r_in: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_r_in`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pdf`
[INFO] [stdout]   --> raytracer/src/material.rs:76:52
[INFO] [stdout]    |
[INFO] [stdout] 76 |     fn scatter(&self, r_in: &Ray, rec: &HitRecord, pdf: &mut f64) -> Option<(Ray, Vec3)> {
[INFO] [stdout]    |                                                    ^^^ help: if this is intentional, prefix it with an underscore: `_pdf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pdf`
[INFO] [stdout]    --> raytracer/src/material.rs:106:52
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn scatter(&self, r_in: &Ray, rec: &HitRecord, pdf: &mut f64) -> Option<(Ray, Vec3)> {
[INFO] [stdout]     |                                                    ^^^ help: if this is intentional, prefix it with an underscore: `_pdf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pdf`
[INFO] [stdout]    --> raytracer/src/material.rs:169:52
[INFO] [stdout]     |
[INFO] [stdout] 169 |     fn scatter(&self, r_in: &Ray, rec: &HitRecord, pdf: &mut f64) -> Option<(Ray, Vec3)> {
[INFO] [stdout]     |                                                    ^^^ help: if this is intentional, prefix it with an underscore: `_pdf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `local` is never used
[INFO] [stdout]   --> raytracer/src/onb.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 7  | impl Onb {
[INFO] [stdout]    | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub fn local(&self, a: f64, b: f64, c: f64) -> Vec3 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `random_in_hemisphere` is never used
[INFO] [stdout]   --> raytracer/src/vec3.rs:86:8
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub fn random_in_hemisphere(normal: Vec3) -> Vec3 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `random_unit_vector` is never used
[INFO] [stdout]   --> raytracer/src/vec3.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub fn random_unit_vector() -> Vec3 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> raytracer/src/aarect.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]    |            ^^^^^ this lifetime flows to the output           --------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> raytracer/src/aarect.rs:78:12
[INFO] [stdout]    |
[INFO] [stdout] 78 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]    |            ^^^^^ this lifetime flows to the output           --------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 78 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> raytracer/src/aarect.rs:140:12
[INFO] [stdout]     |
[INFO] [stdout] 140 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]     |            ^^^^^ this lifetime flows to the output           --------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 140 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]     |                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> raytracer/src/box.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]    |            ^^^^^ this lifetime flows to the output           --------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 74 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> raytracer/src/bvh.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]    |            ^^^^^ this lifetime flows to the output           --------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 46 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]  --> raytracer/src/hittable.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord>;
[INFO] [stdout]   |            ^^^^^ this lifetime flows to the output           --------- the lifetime gets resolved as `'_`
[INFO] [stdout]   |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>>;
[INFO] [stdout]   |                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> raytracer/src/hittable.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 66 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]    |            ^^^^^ this lifetime flows to the output           --------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 66 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> raytracer/src/hittable.rs:141:12
[INFO] [stdout]     |
[INFO] [stdout] 141 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]     |            ^^^^^ this lifetime flows to the output           --------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 141 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]     |                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> raytracer/src/hittable.rs:183:12
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]     |            ^^^^^ this lifetime flows to the output           --------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]     |                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> raytracer/src/hittable_list.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]    |            ^^^^^ this lifetime flows to the output           --------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> raytracer/src/medium.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]    |            ^^^^^ this lifetime flows to the output           --------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> raytracer/src/sphere.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]    |            ^^^^^ this lifetime flows to the output           --------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> raytracer/src/sphere.rs:98:12
[INFO] [stdout]    |
[INFO] [stdout] 98 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]    |            ^^^^^ this lifetime flows to the output           --------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 98 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `o`
[INFO] [stdout]   --> raytracer/src/hittable.rs:10:25
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn pdf_value(&self, o: &Point3, v: &Vec3) -> f64 {
[INFO] [stdout]    |                         ^ help: if this is intentional, prefix it with an underscore: `_o`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> raytracer/src/hittable.rs:10:37
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn pdf_value(&self, o: &Point3, 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]   --> raytracer/src/hittable.rs:13:22
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn random(&self, o: &Vec3) -> Vec3 {
[INFO] [stdout]    |                      ^ help: if this is intentional, prefix it with an underscore: `_o`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r_in`
[INFO] [stdout]   --> raytracer/src/material.rs:10:23
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn scatter(&self, r_in: &Ray, rec: &HitRecord, pdf: &mut f64) -> Option<(Ray, Color)> {
[INFO] [stdout]    |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_r_in`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rec`
[INFO] [stdout]   --> raytracer/src/material.rs:10:35
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn scatter(&self, r_in: &Ray, rec: &HitRecord, pdf: &mut f64) -> Option<(Ray, Color)> {
[INFO] [stdout]    |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_rec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pdf`
[INFO] [stdout]   --> raytracer/src/material.rs:10:52
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn scatter(&self, r_in: &Ray, rec: &HitRecord, pdf: &mut f64) -> Option<(Ray, Color)> {
[INFO] [stdout]    |                                                    ^^^ help: if this is intentional, prefix it with an underscore: `_pdf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r_in`
[INFO] [stdout]   --> raytracer/src/material.rs:13:30
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn scattering_pdf(&self, r_in: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_r_in`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rec`
[INFO] [stdout]   --> raytracer/src/material.rs:13:42
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn scattering_pdf(&self, r_in: &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]   --> raytracer/src/material.rs:13:59
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn scattering_pdf(&self, r_in: &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: `r_in`
[INFO] [stdout]   --> raytracer/src/material.rs:53:30
[INFO] [stdout]    |
[INFO] [stdout] 53 |     fn scattering_pdf(&self, r_in: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_r_in`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pdf`
[INFO] [stdout]   --> raytracer/src/material.rs:76:52
[INFO] [stdout]    |
[INFO] [stdout] 76 |     fn scatter(&self, r_in: &Ray, rec: &HitRecord, pdf: &mut f64) -> Option<(Ray, Vec3)> {
[INFO] [stdout]    |                                                    ^^^ help: if this is intentional, prefix it with an underscore: `_pdf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pdf`
[INFO] [stdout]    --> raytracer/src/material.rs:106:52
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn scatter(&self, r_in: &Ray, rec: &HitRecord, pdf: &mut f64) -> Option<(Ray, Vec3)> {
[INFO] [stdout]     |                                                    ^^^ help: if this is intentional, prefix it with an underscore: `_pdf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pdf`
[INFO] [stdout]    --> raytracer/src/material.rs:169:52
[INFO] [stdout]     |
[INFO] [stdout] 169 |     fn scatter(&self, r_in: &Ray, rec: &HitRecord, pdf: &mut f64) -> Option<(Ray, Vec3)> {
[INFO] [stdout]     |                                                    ^^^ help: if this is intentional, prefix it with an underscore: `_pdf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `local` is never used
[INFO] [stdout]   --> raytracer/src/onb.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 7  | impl Onb {
[INFO] [stdout]    | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub fn local(&self, a: f64, b: f64, c: f64) -> Vec3 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `random_in_hemisphere` is never used
[INFO] [stdout]   --> raytracer/src/vec3.rs:86:8
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub fn random_in_hemisphere(normal: Vec3) -> Vec3 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `random_unit_vector` is never used
[INFO] [stdout]   --> raytracer/src/vec3.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub fn random_unit_vector() -> Vec3 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> raytracer/src/aarect.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]    |            ^^^^^ this lifetime flows to the output           --------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> raytracer/src/aarect.rs:78:12
[INFO] [stdout]    |
[INFO] [stdout] 78 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]    |            ^^^^^ this lifetime flows to the output           --------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 78 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> raytracer/src/aarect.rs:140:12
[INFO] [stdout]     |
[INFO] [stdout] 140 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]     |            ^^^^^ this lifetime flows to the output           --------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 140 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]     |                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> raytracer/src/box.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]    |            ^^^^^ this lifetime flows to the output           --------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 74 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> raytracer/src/bvh.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]    |            ^^^^^ this lifetime flows to the output           --------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 46 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]  --> raytracer/src/hittable.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord>;
[INFO] [stdout]   |            ^^^^^ this lifetime flows to the output           --------- the lifetime gets resolved as `'_`
[INFO] [stdout]   |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>>;
[INFO] [stdout]   |                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> raytracer/src/hittable.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 66 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]    |            ^^^^^ this lifetime flows to the output           --------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 66 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> raytracer/src/hittable.rs:141:12
[INFO] [stdout]     |
[INFO] [stdout] 141 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]     |            ^^^^^ this lifetime flows to the output           --------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 141 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]     |                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> raytracer/src/hittable.rs:183:12
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]     |            ^^^^^ this lifetime flows to the output           --------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]     |                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> raytracer/src/hittable_list.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]    |            ^^^^^ this lifetime flows to the output           --------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> raytracer/src/medium.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]    |            ^^^^^ this lifetime flows to the output           --------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> raytracer/src/sphere.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]    |            ^^^^^ this lifetime flows to the output           --------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> raytracer/src/sphere.rs:98:12
[INFO] [stdout]    |
[INFO] [stdout] 98 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]    |            ^^^^^ this lifetime flows to the output           --------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 98 |     fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 31.43s
[INFO] running `Command { std: "docker" "inspect" "c25fe048c24c5f4eb8669e29ea3b7782ed72c467e5026a334b163fc3998479ea", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c25fe048c24c5f4eb8669e29ea3b7782ed72c467e5026a334b163fc3998479ea", kill_on_drop: false }`
[INFO] [stdout] c25fe048c24c5f4eb8669e29ea3b7782ed72c467e5026a334b163fc3998479ea
