[INFO] cloning repository https://github.com/sajis997/path_tracer
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/sajis997/path_tracer" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsajis997%2Fpath_tracer", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsajis997%2Fpath_tracer'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7a40d8bb667aacb564eeb1c7db3512312236e3a8
[INFO] building sajis997/path_tracer against master#ad85bc524b1ad696e42061ad8338d382dffbdbe5 for pr-146237-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsajis997%2Fpath_tracer" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/sajis997/path_tracer
[INFO] finished tweaking git repo https://github.com/sajis997/path_tracer
[INFO] tweaked toml for git repo https://github.com/sajis997/path_tracer written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/sajis997/path_tracer on toolchain ad85bc524b1ad696e42061ad8338d382dffbdbe5
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/sajis997/path_tracer 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" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded bytemuck v1.22.0
[INFO] [stderr]   Downloaded assert_approx_eq v1.1.0
[INFO] [stderr]   Downloaded glam v0.29.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 313d42312351468a525a342969f57c511889110bbc0540aeb900545eadf5e1c0
[INFO] running `Command { std: "docker" "start" "-a" "313d42312351468a525a342969f57c511889110bbc0540aeb900545eadf5e1c0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "313d42312351468a525a342969f57c511889110bbc0540aeb900545eadf5e1c0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "313d42312351468a525a342969f57c511889110bbc0540aeb900545eadf5e1c0", kill_on_drop: false }`
[INFO] [stdout] 313d42312351468a525a342969f57c511889110bbc0540aeb900545eadf5e1c0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 445e6dc366e1ddbef20112e814ddec7d5eebba25f2a45057b59aad7b3443cad8
[INFO] running `Command { std: "docker" "start" "-a" "445e6dc366e1ddbef20112e814ddec7d5eebba25f2a45057b59aad7b3443cad8", kill_on_drop: false }`
[INFO] [stderr]    Compiling cfg-if v1.0.0
[INFO] [stderr]    Compiling simd-adler32 v0.3.7
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling libc v0.2.172
[INFO] [stderr]    Compiling rayon-core v1.12.1
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling syn v2.0.100
[INFO] [stderr]    Compiling adler2 v2.0.0
[INFO] [stderr]    Compiling anyhow v1.0.98
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling miniz_oxide v0.8.8
[INFO] [stderr]    Compiling minimal-lexical v0.2.1
[INFO] [stderr]    Compiling memchr v2.7.4
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling aligned-vec v0.5.0
[INFO] [stderr]    Compiling arrayvec v0.7.6
[INFO] [stderr]    Compiling zerocopy v0.8.24
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling crc32fast v1.4.2
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling v_frame v0.3.8
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling rayon v1.10.0
[INFO] [stderr]    Compiling log v0.4.27
[INFO] [stderr]    Compiling flate2 v1.1.1
[INFO] [stderr]    Compiling rav1e v0.7.1
[INFO] [stderr]    Compiling getrandom v0.2.15
[INFO] [stderr]    Compiling itertools v0.12.1
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling av1-grain v0.2.3
[INFO] [stderr]    Compiling weezl v0.1.8
[INFO] [stderr]    Compiling maybe-rayon v0.1.1
[INFO] [stderr]    Compiling portable-atomic v1.11.0
[INFO] [stderr]    Compiling new_debug_unreachable v1.0.6
[INFO] [stderr]    Compiling quick-error v2.0.1
[INFO] [stderr]    Compiling bitstream-io v2.6.0
[INFO] [stderr]    Compiling imgref v1.11.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling loop9 v0.1.5
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling avif-serialize v0.8.3
[INFO] [stderr]    Compiling fdeflate v0.3.7
[INFO] [stderr]    Compiling zune-inflate v0.2.54
[INFO] [stderr]    Compiling half v2.6.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling profiling-procmacros v1.0.16
[INFO] [stderr]    Compiling profiling v1.0.16
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling arg_enum_proc_macro v0.3.4
[INFO] [stderr]    Compiling bytemuck v1.22.0
[INFO] [stderr]    Compiling color_quant v1.1.0
[INFO] [stderr]    Compiling jpeg-decoder v0.3.1
[INFO] [stderr]    Compiling rgb v0.8.50
[INFO] [stderr]    Compiling lebe v0.5.2
[INFO] [stderr]    Compiling unicode-width v0.2.0
[INFO] [stderr]    Compiling byteorder-lite v0.1.0
[INFO] [stderr]    Compiling smallvec v1.15.0
[INFO] [stderr]    Compiling bit_field v0.10.2
[INFO] [stderr]    Compiling zune-core v0.4.12
[INFO] [stderr]    Compiling bitflags v1.3.2
[INFO] [stderr]    Compiling png v0.17.16
[INFO] [stderr]    Compiling exr v1.73.0
[INFO] [stderr]    Compiling console v0.15.11
[INFO] [stderr]    Compiling zune-jpeg v0.4.14
[INFO] [stderr]    Compiling image-webp v0.2.1
[INFO] [stderr]    Compiling tiff v0.9.1
[INFO] [stderr]    Compiling gif v0.13.1
[INFO] [stderr]    Compiling qoi v0.4.1
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling number_prefix v0.4.0
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling glam v0.29.3
[INFO] [stderr]    Compiling assert_approx_eq v1.1.0
[INFO] [stderr]    Compiling indicatif v0.17.11
[INFO] [stderr]    Compiling ravif v0.11.12
[INFO] [stderr]    Compiling image v0.25.6
[INFO] [stderr]    Compiling path_tracer v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `HitRecord` and `Hit`
[INFO] [stdout]  --> src/utils/aabb.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::hit::{Hit, HitRecord};
[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: `crate::utils::aabb::Aabb`
[INFO] [stdout]  --> src/accelerators/accelerator.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::utils::aabb::Aabb;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ProgressBar`, `ProgressFinish`, and `ProgressStyle`
[INFO] [stdout]   --> src/main.rs:27:17
[INFO] [stdout]    |
[INFO] [stdout] 27 | use indicatif::{ProgressBar, ProgressFinish, ProgressStyle};
[INFO] [stdout]    |                 ^^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t_min`
[INFO] [stdout]   --> src/primitives/triangle.rs:24:30
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn hit(&self, ray: &Ray, t_min: f32, t_max: f32) -> Option<HitRecord> {
[INFO] [stdout]    |                              ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn hit(&self, ray: &Ray, _t_min: f32, t_max: f32) -> Option<HitRecord> {
[INFO] [stdout]    |                              +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `ASPECT_RATIO`
[INFO] [stdout]    |
[INFO] [stdout] 24 -     fn hit(&self, ray: &Ray, t_min: f32, t_max: f32) -> Option<HitRecord> {
[INFO] [stdout] 24 +     fn hit(&self, ray: &Ray, ASPECT_RATIO: f32, t_max: f32) -> Option<HitRecord> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t_max`
[INFO] [stdout]   --> src/primitives/triangle.rs:24:42
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn hit(&self, ray: &Ray, t_min: f32, t_max: f32) -> Option<HitRecord> {
[INFO] [stdout]    |                                          ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn hit(&self, ray: &Ray, t_min: f32, _t_max: f32) -> Option<HitRecord> {
[INFO] [stdout]    |                                          +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `ASPECT_RATIO`
[INFO] [stdout]    |
[INFO] [stdout] 24 -     fn hit(&self, ray: &Ray, t_min: f32, t_max: f32) -> Option<HitRecord> {
[INFO] [stdout] 24 +     fn hit(&self, ray: &Ray, t_min: f32, ASPECT_RATIO: f32) -> Option<HitRecord> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/accelerators/bvh.rs:183:17
[INFO] [stdout]     |
[INFO] [stdout] 173 |                 SplitMethod::Middle => {
[INFO] [stdout]     |                 ------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 183 |                 _ => {
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `depth`
[INFO] [stdout]    --> src/accelerators/bvh.rs:230:13
[INFO] [stdout]     |
[INFO] [stdout] 230 |         let depth = self.build_recursive(0, self.primitives.len(), 0);
[INFO] [stdout]     |             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 230 |         let _depth = self.build_recursive(0, self.primitives.len(), 0);
[INFO] [stdout]     |             +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `DIMENSION`
[INFO] [stdout]     |
[INFO] [stdout] 230 -         let depth = self.build_recursive(0, self.primitives.len(), 0);
[INFO] [stdout] 230 +         let utils::aabb::DIMENSION = self.build_recursive(0, self.primitives.len(), 0);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ray`
[INFO] [stdout]    --> src/accelerators/bvh.rs:240:25
[INFO] [stdout]     |
[INFO] [stdout] 240 |     fn intersect(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_ray`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t_min`
[INFO] [stdout]    --> src/accelerators/bvh.rs:240:36
[INFO] [stdout]     |
[INFO] [stdout] 240 |     fn intersect(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]     |                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_t_min`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t_max`
[INFO] [stdout]    --> src/accelerators/bvh.rs:240:48
[INFO] [stdout]     |
[INFO] [stdout] 240 |     fn intersect(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]     |                                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_t_max`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `to_rgb`, `random_in_hemisphere`, and `format_color` are never used
[INFO] [stdout]   --> src/utils/util.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Util {
[INFO] [stdout]    | --------- associated functions in this implementation
[INFO] [stdout] 11 |     /// Convert the Vec3 to Color Array
[INFO] [stdout] 12 |     pub fn to_rgb(vec: &Vec3) -> [u8; 3] {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn random_in_hemisphere(normal: &Vec3) -> Vec3 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn format_color(color: &Color) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_empty` is never used
[INFO] [stdout]   --> src/utils/stack.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout]  5 | impl<T> Stack<T> {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DIMENSION` is never used
[INFO] [stdout]  --> src/utils/aabb.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const DIMENSION : usize = 3;    
[INFO] [stdout]   |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/utils/aabb.rs:41:12
[INFO] [stdout]     |
[INFO] [stdout]  24 | impl Aabb {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  41 |     pub fn hit(&self, r: &Ray, t_min: f32, t_max: f32) -> bool {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  77 |     pub fn contains(&self, p: &Point3) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn approx_contains_eps(&self, p: &Point3, epsilon: f32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn approx_contains_aabb_eps(&self, other: &Aabb, epsilon: f32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn relative_eq(&self, other: &Aabb, epsilon: f32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn include_mut(&mut self, other: &Aabb) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn grow(&self, other: &Point3) -> Aabb {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn grow_mut(&mut self, other: &Point3) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn center(&self) -> Point3 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub fn surface_area(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub fn volume(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn get_min(&self) -> Point3 {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn get_max(&self) -> Point3 {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Triangle` is never constructed
[INFO] [stdout]  --> src/primitives/triangle.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct Triangle<M: Scatter> {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/primitives/triangle.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl <M: Scatter> Triangle<M>{
[INFO] [stdout]    | ----------------------------- associated function in this implementation
[INFO] [stdout] 15 |     pub fn new(vertices: [Point3; 3], material: M) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `intersect` is never used
[INFO] [stdout]   --> src/accelerators/accelerator.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub trait Accelerator {
[INFO] [stdout]    |           ----------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 10 |     fn intersect(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord>;
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `primitive_index` is never read
[INFO] [stdout]   --> src/accelerators/bvh.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct BVHPrimitiveInfo {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] 19 |     primitive_index: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `isLeaf` is never used
[INFO] [stdout]   --> src/accelerators/bvh.rs:97:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | impl BvhNode {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 97 |     pub fn isLeaf(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hit.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn hit(&self, r: &Ray, t_min: f32, t_max: f32) -> 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] 38 |     fn hit(&self, r: &Ray, t_min: f32, t_max: f32) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hit.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 92 |     fn hit(&self, r: &Ray, t_min: f32, t_max: f32) -> 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] 92 |     fn hit(&self, r: &Ray, t_min: f32, t_max: f32) -> Option<HitRecord<'_>>;
[INFO] [stdout]    |                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `random_U` should have a snake case name
[INFO] [stdout]   --> src/tracer.rs:78:30
[INFO] [stdout]    |
[INFO] [stdout] 78 |                         for (random_U,random_V) in random_samples {
[INFO] [stdout]    |                              ^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `random_u`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `random_V` should have a snake case name
[INFO] [stdout]   --> src/tracer.rs:78:39
[INFO] [stdout]    |
[INFO] [stdout] 78 |                         for (random_U,random_V) in random_samples {
[INFO] [stdout]    |                                       ^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `random_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/primitives/sphere.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 |     fn hit(&self, r: &Ray, t_min: f32, t_max: f32) -> 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] 26 |     fn hit(&self, r: &Ray, t_min: f32, t_max: f32) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/primitives/triangle.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn hit(&self, ray: &Ray, t_min: f32, t_max: f32) -> 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] 24 |     fn hit(&self, ray: &Ray, t_min: f32, t_max: f32) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/accelerators/accelerator.rs:10:18
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn intersect(&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] 10 |     fn intersect(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>>;
[INFO] [stdout]    |                                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `makeInterior` should have a snake case name
[INFO] [stdout]   --> src/accelerators/bvh.rs:81:12
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub fn makeInterior(&mut self, index: usize, split_axis: usize){
[INFO] [stdout]    |            ^^^^^^^^^^^^ help: convert the identifier to snake case: `make_interior`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `makeLeaf` should have a snake case name
[INFO] [stdout]   --> src/accelerators/bvh.rs:90:12
[INFO] [stdout]    |
[INFO] [stdout] 90 |     pub fn makeLeaf(&mut self, index: usize, num_primitives: usize){
[INFO] [stdout]    |            ^^^^^^^^ help: convert the identifier to snake case: `make_leaf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `isLeaf` should have a snake case name
[INFO] [stdout]   --> src/accelerators/bvh.rs:97:12
[INFO] [stdout]    |
[INFO] [stdout] 97 |     pub fn isLeaf(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^ help: convert the identifier to snake case: `is_leaf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `setNumPrimitives` should have a snake case name
[INFO] [stdout]    --> src/accelerators/bvh.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout] 106 |     pub fn setNumPrimitives(&mut self, num_primitives: usize){
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `set_num_primitives`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `maxPrimitivesPerNode` should have a snake case name
[INFO] [stdout]    --> src/accelerators/bvh.rs:120:16
[INFO] [stdout]     |
[INFO] [stdout] 120 |     pub fn new(maxPrimitivesPerNode: Option<usize>,
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `max_primitives_per_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `splitMethod` should have a snake case name
[INFO] [stdout]    --> src/accelerators/bvh.rs:121:16
[INFO] [stdout]     |
[INFO] [stdout] 121 |                splitMethod: Option<SplitMethod>) -> Self {
[INFO] [stdout]     |                ^^^^^^^^^^^ help: convert the identifier to snake case: `split_method`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/accelerators/bvh.rs:240:18
[INFO] [stdout]     |
[INFO] [stdout] 240 |     fn intersect(&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] 240 |     fn intersect(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]     |                                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [optimized + debuginfo] target(s) in 4m 04s
[INFO] running `Command { std: "docker" "inspect" "445e6dc366e1ddbef20112e814ddec7d5eebba25f2a45057b59aad7b3443cad8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "445e6dc366e1ddbef20112e814ddec7d5eebba25f2a45057b59aad7b3443cad8", kill_on_drop: false }`
[INFO] [stdout] 445e6dc366e1ddbef20112e814ddec7d5eebba25f2a45057b59aad7b3443cad8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 093a78a3e436df90d71a37944dbd1cb73fd58fafaa1cd38cfe87e0e067131f5f
[INFO] running `Command { std: "docker" "start" "-a" "093a78a3e436df90d71a37944dbd1cb73fd58fafaa1cd38cfe87e0e067131f5f", kill_on_drop: false }`
[INFO] [stderr]    Compiling path_tracer v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `HitRecord` and `Hit`
[INFO] [stdout]  --> src/utils/aabb.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::hit::{Hit, HitRecord};
[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: `crate::utils::aabb::Aabb`
[INFO] [stdout]  --> src/accelerators/accelerator.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::utils::aabb::Aabb;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ProgressBar`, `ProgressFinish`, and `ProgressStyle`
[INFO] [stdout]   --> src/main.rs:27:17
[INFO] [stdout]    |
[INFO] [stdout] 27 | use indicatif::{ProgressBar, ProgressFinish, ProgressStyle};
[INFO] [stdout]    |                 ^^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `aabb`
[INFO] [stdout]    --> src/utils/aabb.rs:265:13
[INFO] [stdout]     |
[INFO] [stdout] 265 |         let aabb = Aabb::new(Point3::new(-1.0, -1.0, -1.0), Point3::new(1.0, 1.0, 1.0));
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_aabb`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `point_barely_outside`
[INFO] [stdout]    --> src/utils/aabb.rs:266:13
[INFO] [stdout]     |
[INFO] [stdout] 266 |         let point_barely_outside = Point3::new(1.0000_0000_1, -1.0000_0000_1, 1.0000_0000_001);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_point_barely_outside`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `point_outside`
[INFO] [stdout]    --> src/utils/aabb.rs:267:13
[INFO] [stdout]     |
[INFO] [stdout] 267 |         let point_outside = Point3::new(1.0, -2.0, 4.0);
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_point_outside`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `axis`
[INFO] [stdout]    --> src/utils/aabb.rs:419:13
[INFO] [stdout]     |
[INFO] [stdout] 419 |         let axis = aabb.largest_axis();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_axis`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t_min`
[INFO] [stdout]   --> src/primitives/triangle.rs:24:30
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn hit(&self, ray: &Ray, t_min: f32, t_max: f32) -> Option<HitRecord> {
[INFO] [stdout]    |                              ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn hit(&self, ray: &Ray, _t_min: f32, t_max: f32) -> Option<HitRecord> {
[INFO] [stdout]    |                              +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `ASPECT_RATIO`
[INFO] [stdout]    |
[INFO] [stdout] 24 -     fn hit(&self, ray: &Ray, t_min: f32, t_max: f32) -> Option<HitRecord> {
[INFO] [stdout] 24 +     fn hit(&self, ray: &Ray, ASPECT_RATIO: f32, t_max: f32) -> Option<HitRecord> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t_max`
[INFO] [stdout]   --> src/primitives/triangle.rs:24:42
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn hit(&self, ray: &Ray, t_min: f32, t_max: f32) -> Option<HitRecord> {
[INFO] [stdout]    |                                          ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn hit(&self, ray: &Ray, t_min: f32, _t_max: f32) -> Option<HitRecord> {
[INFO] [stdout]    |                                          +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `ASPECT_RATIO`
[INFO] [stdout]    |
[INFO] [stdout] 24 -     fn hit(&self, ray: &Ray, t_min: f32, t_max: f32) -> Option<HitRecord> {
[INFO] [stdout] 24 +     fn hit(&self, ray: &Ray, t_min: f32, ASPECT_RATIO: f32) -> Option<HitRecord> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/accelerators/bvh.rs:183:17
[INFO] [stdout]     |
[INFO] [stdout] 173 |                 SplitMethod::Middle => {
[INFO] [stdout]     |                 ------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 183 |                 _ => {
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `depth`
[INFO] [stdout]    --> src/accelerators/bvh.rs:230:13
[INFO] [stdout]     |
[INFO] [stdout] 230 |         let depth = self.build_recursive(0, self.primitives.len(), 0);
[INFO] [stdout]     |             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 230 |         let _depth = self.build_recursive(0, self.primitives.len(), 0);
[INFO] [stdout]     |             +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `DIMENSION`
[INFO] [stdout]     |
[INFO] [stdout] 230 -         let depth = self.build_recursive(0, self.primitives.len(), 0);
[INFO] [stdout] 230 +         let utils::aabb::DIMENSION = self.build_recursive(0, self.primitives.len(), 0);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ray`
[INFO] [stdout]    --> src/accelerators/bvh.rs:240:25
[INFO] [stdout]     |
[INFO] [stdout] 240 |     fn intersect(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_ray`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t_min`
[INFO] [stdout]    --> src/accelerators/bvh.rs:240:36
[INFO] [stdout]     |
[INFO] [stdout] 240 |     fn intersect(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]     |                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_t_min`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t_max`
[INFO] [stdout]    --> src/accelerators/bvh.rs:240:48
[INFO] [stdout]     |
[INFO] [stdout] 240 |     fn intersect(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]     |                                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_t_max`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `to_rgb`, `random_in_hemisphere`, and `format_color` are never used
[INFO] [stdout]   --> src/utils/util.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Util {
[INFO] [stdout]    | --------- associated functions in this implementation
[INFO] [stdout] 11 |     /// Convert the Vec3 to Color Array
[INFO] [stdout] 12 |     pub fn to_rgb(vec: &Vec3) -> [u8; 3] {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn random_in_hemisphere(normal: &Vec3) -> Vec3 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn format_color(color: &Color) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DIMENSION` is never used
[INFO] [stdout]  --> src/utils/aabb.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const DIMENSION : usize = 3;    
[INFO] [stdout]   |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `hit`, `approx_contains_eps`, `approx_contains_aabb_eps`, `get_min`, and `get_max` are never used
[INFO] [stdout]    --> src/utils/aabb.rs:41:12
[INFO] [stdout]     |
[INFO] [stdout]  24 | impl Aabb {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  41 |     pub fn hit(&self, r: &Ray, t_min: f32, t_max: f32) -> bool {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn approx_contains_eps(&self, p: &Point3, epsilon: f32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn approx_contains_aabb_eps(&self, other: &Aabb, epsilon: f32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn get_min(&self) -> Point3 {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn get_max(&self) -> Point3 {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Triangle` is never constructed
[INFO] [stdout]  --> src/primitives/triangle.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct Triangle<M: Scatter> {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/primitives/triangle.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl <M: Scatter> Triangle<M>{
[INFO] [stdout]    | ----------------------------- associated function in this implementation
[INFO] [stdout] 15 |     pub fn new(vertices: [Point3; 3], material: M) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `intersect` is never used
[INFO] [stdout]   --> src/accelerators/accelerator.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub trait Accelerator {
[INFO] [stdout]    |           ----------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 10 |     fn intersect(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord>;
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `primitive_index` is never read
[INFO] [stdout]   --> src/accelerators/bvh.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct BVHPrimitiveInfo {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] 19 |     primitive_index: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `isLeaf` is never used
[INFO] [stdout]   --> src/accelerators/bvh.rs:97:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | impl BvhNode {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 97 |     pub fn isLeaf(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hit.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn hit(&self, r: &Ray, t_min: f32, t_max: f32) -> 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] 38 |     fn hit(&self, r: &Ray, t_min: f32, t_max: f32) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hit.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 92 |     fn hit(&self, r: &Ray, t_min: f32, t_max: f32) -> 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] 92 |     fn hit(&self, r: &Ray, t_min: f32, t_max: f32) -> Option<HitRecord<'_>>;
[INFO] [stdout]    |                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `random_U` should have a snake case name
[INFO] [stdout]   --> src/tracer.rs:78:30
[INFO] [stdout]    |
[INFO] [stdout] 78 |                         for (random_U,random_V) in random_samples {
[INFO] [stdout]    |                              ^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `random_u`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `random_V` should have a snake case name
[INFO] [stdout]   --> src/tracer.rs:78:39
[INFO] [stdout]    |
[INFO] [stdout] 78 |                         for (random_U,random_V) in random_samples {
[INFO] [stdout]    |                                       ^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `random_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/primitives/sphere.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 |     fn hit(&self, r: &Ray, t_min: f32, t_max: f32) -> 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] 26 |     fn hit(&self, r: &Ray, t_min: f32, t_max: f32) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/primitives/triangle.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn hit(&self, ray: &Ray, t_min: f32, t_max: f32) -> 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] 24 |     fn hit(&self, ray: &Ray, t_min: f32, t_max: f32) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/accelerators/accelerator.rs:10:18
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn intersect(&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] 10 |     fn intersect(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>>;
[INFO] [stdout]    |                                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `makeInterior` should have a snake case name
[INFO] [stdout]   --> src/accelerators/bvh.rs:81:12
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub fn makeInterior(&mut self, index: usize, split_axis: usize){
[INFO] [stdout]    |            ^^^^^^^^^^^^ help: convert the identifier to snake case: `make_interior`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `makeLeaf` should have a snake case name
[INFO] [stdout]   --> src/accelerators/bvh.rs:90:12
[INFO] [stdout]    |
[INFO] [stdout] 90 |     pub fn makeLeaf(&mut self, index: usize, num_primitives: usize){
[INFO] [stdout]    |            ^^^^^^^^ help: convert the identifier to snake case: `make_leaf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `isLeaf` should have a snake case name
[INFO] [stdout]   --> src/accelerators/bvh.rs:97:12
[INFO] [stdout]    |
[INFO] [stdout] 97 |     pub fn isLeaf(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^ help: convert the identifier to snake case: `is_leaf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `setNumPrimitives` should have a snake case name
[INFO] [stdout]    --> src/accelerators/bvh.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout] 106 |     pub fn setNumPrimitives(&mut self, num_primitives: usize){
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `set_num_primitives`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `maxPrimitivesPerNode` should have a snake case name
[INFO] [stdout]    --> src/accelerators/bvh.rs:120:16
[INFO] [stdout]     |
[INFO] [stdout] 120 |     pub fn new(maxPrimitivesPerNode: Option<usize>,
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `max_primitives_per_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `splitMethod` should have a snake case name
[INFO] [stdout]    --> src/accelerators/bvh.rs:121:16
[INFO] [stdout]     |
[INFO] [stdout] 121 |                splitMethod: Option<SplitMethod>) -> Self {
[INFO] [stdout]     |                ^^^^^^^^^^^ help: convert the identifier to snake case: `split_method`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/accelerators/bvh.rs:240:18
[INFO] [stdout]     |
[INFO] [stdout] 240 |     fn intersect(&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] 240 |     fn intersect(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]     |                                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [optimized + debuginfo] target(s) in 1.04s
[INFO] running `Command { std: "docker" "inspect" "093a78a3e436df90d71a37944dbd1cb73fd58fafaa1cd38cfe87e0e067131f5f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "093a78a3e436df90d71a37944dbd1cb73fd58fafaa1cd38cfe87e0e067131f5f", kill_on_drop: false }`
[INFO] [stdout] 093a78a3e436df90d71a37944dbd1cb73fd58fafaa1cd38cfe87e0e067131f5f
