[INFO] cloning repository https://github.com/piemot/raytracing
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/piemot/raytracing" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpiemot%2Fraytracing", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpiemot%2Fraytracing'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e313e5c587ec23f09d2b02f681d0d4d2aef7c2c7
[INFO] checking piemot/raytracing against f4dd856795debe636f2ba39a900f162f5abeb7e8 for pr-160904
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpiemot%2Fraytracing" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/piemot/raytracing
[INFO] finished tweaking git repo https://github.com/piemot/raytracing
[INFO] tweaked toml for git repo https://github.com/piemot/raytracing written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/piemot/raytracing on toolchain f4dd856795debe636f2ba39a900f162f5abeb7e8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f4dd856795debe636f2ba39a900f162f5abeb7e8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/piemot/raytracing 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" "+f4dd856795debe636f2ba39a900f162f5abeb7e8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded owo-colors v4.2.0
[INFO] [stderr]   Downloaded miette v7.5.0
[INFO] [stderr]   Downloaded rand_core v0.9.1
[INFO] [stderr]   Downloaded miette-derive v7.5.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] efe5ad2fa24b2e228c281e77e7fb8161d2b28cc6c5c2f356b0ff4190c11f22a9
[INFO] running `Command { std: "docker" "start" "efe5ad2fa24b2e228c281e77e7fb8161d2b28cc6c5c2f356b0ff4190c11f22a9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "efe5ad2fa24b2e228c281e77e7fb8161d2b28cc6c5c2f356b0ff4190c11f22a9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "efe5ad2fa24b2e228c281e77e7fb8161d2b28cc6c5c2f356b0ff4190c11f22a9" "/opt/rustwide/cargo-home/bin/cargo" "+f4dd856795debe636f2ba39a900f162f5abeb7e8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "efe5ad2fa24b2e228c281e77e7fb8161d2b28cc6c5c2f356b0ff4190c11f22a9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "efe5ad2fa24b2e228c281e77e7fb8161d2b28cc6c5c2f356b0ff4190c11f22a9" "/opt/rustwide/cargo-home/bin/cargo" "+f4dd856795debe636f2ba39a900f162f5abeb7e8" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.16
[INFO] [stderr]    Compiling libc v0.2.169
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling zerocopy v0.8.18
[INFO] [stderr]    Compiling getrandom v0.3.1
[INFO] [stderr]    Compiling object v0.36.7
[INFO] [stderr]     Checking gimli v0.31.1
[INFO] [stderr]     Checking memchr v2.7.4
[INFO] [stderr]    Compiling proc-macro2 v1.0.93
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling portable-atomic v1.11.0
[INFO] [stderr]    Compiling owo-colors v4.2.0
[INFO] [stderr]    Compiling quote v1.0.38
[INFO] [stderr]     Checking winnow v0.7.4
[INFO] [stderr]     Checking is_ci v1.2.0
[INFO] [stderr]    Compiling syn v2.0.98
[INFO] [stderr]     Checking once_cell v1.20.3
[INFO] [stderr]     Checking either v1.14.0
[INFO] [stderr]     Checking console v0.15.10
[INFO] [stderr]     Checking rayon v1.10.0
[INFO] [stderr]     Checking textwrap v0.16.1
[INFO] [stderr]     Checking rand_core v0.9.1
[INFO] [stderr]     Checking terminal_size v0.4.1
[INFO] [stderr]     Checking supports-color v3.0.2
[INFO] [stderr]     Checking supports-hyperlinks v3.1.0
[INFO] [stderr]     Checking supports-unicode v3.0.0
[INFO] [stderr]     Checking toml_datetime v0.6.8
[INFO] [stderr]     Checking serde_spanned v0.6.8
[INFO] [stderr]     Checking toml_edit v0.22.24
[INFO] [stderr]     Checking addr2line v0.24.2
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling miette-derive v7.5.0
[INFO] [stderr]     Checking zerocopy v0.7.35
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking backtrace v0.3.74
[INFO] [stderr]     Checking indicatif v0.17.11
[INFO] [stderr]     Checking ppv-lite86 v0.2.20
[INFO] [stderr]     Checking backtrace-ext v0.2.1
[INFO] [stderr]     Checking miette v7.5.0
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking toml v0.8.20
[INFO] [stderr]     Checking rand v0.9.0
[INFO] [stderr]     Checking raytracing v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]    --> src/hittable.rs:380:39
[INFO] [stdout]     |
[INFO] [stdout] 380 |             Interval::new(0.001, f64::INFINITY),
[INFO] [stdout]     |                                       ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]    --> src/hittable.rs:734:40
[INFO] [stdout]     |
[INFO] [stdout] 734 |         let mut min = Point3::new(f64::INFINITY, f64::INFINITY, f64::INFINITY);
[INFO] [stdout]     |                                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]    --> src/hittable.rs:734:55
[INFO] [stdout]     |
[INFO] [stdout] 734 |         let mut min = Point3::new(f64::INFINITY, f64::INFINITY, f64::INFINITY);
[INFO] [stdout]     |                                                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]    --> src/hittable.rs:734:70
[INFO] [stdout]     |
[INFO] [stdout] 734 |         let mut min = Point3::new(f64::INFINITY, f64::INFINITY, f64::INFINITY);
[INFO] [stdout]     |                                                                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::NEG_INFINITY`: replaced by the `NEG_INFINITY` associated constant on `f64`
[INFO] [stdout]    --> src/hittable.rs:735:40
[INFO] [stdout]     |
[INFO] [stdout] 735 |         let mut max = Point3::new(f64::NEG_INFINITY, f64::NEG_INFINITY, f64::NEG_INFINITY);
[INFO] [stdout]     |                                        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::NEG_INFINITY`: replaced by the `NEG_INFINITY` associated constant on `f64`
[INFO] [stdout]    --> src/hittable.rs:735:59
[INFO] [stdout]     |
[INFO] [stdout] 735 |         let mut max = Point3::new(f64::NEG_INFINITY, f64::NEG_INFINITY, f64::NEG_INFINITY);
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::NEG_INFINITY`: replaced by the `NEG_INFINITY` associated constant on `f64`
[INFO] [stdout]    --> src/hittable.rs:735:78
[INFO] [stdout]     |
[INFO] [stdout] 735 |         let mut max = Point3::new(f64::NEG_INFINITY, f64::NEG_INFINITY, f64::NEG_INFINITY);
[INFO] [stdout]     |                                                                              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]    --> src/hittable.rs:851:59
[INFO] [stdout]     |
[INFO] [stdout] 851 |             .hit(ray, Interval::new(rec1.t + 0.0001, f64::INFINITY))?;
[INFO] [stdout]     |                                                           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::NAN`: replaced by the `NAN` associated constant on `f64`
[INFO] [stdout]    --> src/hittable.rs:883:21
[INFO] [stdout]     |
[INFO] [stdout] 883 |             u: f64::NAN,
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::NAN`: replaced by the `NAN` associated constant on `f64`
[INFO] [stdout]    --> src/hittable.rs:884:21
[INFO] [stdout]     |
[INFO] [stdout] 884 |             v: f64::NAN,
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]    --> src/hittable.rs:380:39
[INFO] [stdout]     |
[INFO] [stdout] 380 |             Interval::new(0.001, f64::INFINITY),
[INFO] [stdout]     |                                       ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]    --> src/hittable.rs:734:40
[INFO] [stdout]     |
[INFO] [stdout] 734 |         let mut min = Point3::new(f64::INFINITY, f64::INFINITY, f64::INFINITY);
[INFO] [stdout]     |                                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]    --> src/hittable.rs:734:55
[INFO] [stdout]     |
[INFO] [stdout] 734 |         let mut min = Point3::new(f64::INFINITY, f64::INFINITY, f64::INFINITY);
[INFO] [stdout]     |                                                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]    --> src/hittable.rs:734:70
[INFO] [stdout]     |
[INFO] [stdout] 734 |         let mut min = Point3::new(f64::INFINITY, f64::INFINITY, f64::INFINITY);
[INFO] [stdout]     |                                                                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::NEG_INFINITY`: replaced by the `NEG_INFINITY` associated constant on `f64`
[INFO] [stdout]    --> src/hittable.rs:735:40
[INFO] [stdout]     |
[INFO] [stdout] 735 |         let mut max = Point3::new(f64::NEG_INFINITY, f64::NEG_INFINITY, f64::NEG_INFINITY);
[INFO] [stdout]     |                                        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::NEG_INFINITY`: replaced by the `NEG_INFINITY` associated constant on `f64`
[INFO] [stdout]    --> src/hittable.rs:735:59
[INFO] [stdout]     |
[INFO] [stdout] 735 |         let mut max = Point3::new(f64::NEG_INFINITY, f64::NEG_INFINITY, f64::NEG_INFINITY);
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::NEG_INFINITY`: replaced by the `NEG_INFINITY` associated constant on `f64`
[INFO] [stdout]    --> src/hittable.rs:735:78
[INFO] [stdout]     |
[INFO] [stdout] 735 |         let mut max = Point3::new(f64::NEG_INFINITY, f64::NEG_INFINITY, f64::NEG_INFINITY);
[INFO] [stdout]     |                                                                              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::INFINITY`: replaced by the `INFINITY` associated constant on `f64`
[INFO] [stdout]    --> src/hittable.rs:851:59
[INFO] [stdout]     |
[INFO] [stdout] 851 |             .hit(ray, Interval::new(rec1.t + 0.0001, f64::INFINITY))?;
[INFO] [stdout]     |                                                           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::NAN`: replaced by the `NAN` associated constant on `f64`
[INFO] [stdout]    --> src/hittable.rs:883:21
[INFO] [stdout]     |
[INFO] [stdout] 883 |             u: f64::NAN,
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::NAN`: replaced by the `NAN` associated constant on `f64`
[INFO] [stdout]    --> src/hittable.rs:884:21
[INFO] [stdout]     |
[INFO] [stdout] 884 |             v: f64::NAN,
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/material.rs:129:13
[INFO] [stdout]     |
[INFO] [stdout] 128 |             pdf: todo!(),
[INFO] [stdout]     |                  ------- any code following this expression is unreachable
[INFO] [stdout] 129 |             scattered,
[INFO] [stdout]     |             ^^^^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/material.rs:180:24
[INFO] [stdout]     |
[INFO] [stdout] 179 |             pdf: todo!(),
[INFO] [stdout]     |                  ------- any code following this expression is unreachable
[INFO] [stdout] 180 |             scattered: Ray4::new(record.point(), direction, ray_in.time()),
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/material.rs:129:13
[INFO] [stdout]     |
[INFO] [stdout] 128 |             pdf: todo!(),
[INFO] [stdout]     |                  ------- any code following this expression is unreachable
[INFO] [stdout] 129 |             scattered,
[INFO] [stdout]     |             ^^^^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/material.rs:180:24
[INFO] [stdout]     |
[INFO] [stdout] 179 |             pdf: todo!(),
[INFO] [stdout]     |                  ------- any code following this expression is unreachable
[INFO] [stdout] 180 |             scattered: Ray4::new(record.point(), direction, ray_in.time()),
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `objects`
[INFO] [stdout]    --> src/config.rs:503:9
[INFO] [stdout]     |
[INFO] [stdout] 503 |         objects: &mut Vec<Self>,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_objects`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `objects`
[INFO] [stdout]    --> src/config.rs:503:9
[INFO] [stdout]     |
[INFO] [stdout] 503 |         objects: &mut Vec<Self>,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_objects`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `points`
[INFO] [stdout]    --> src/config.rs:617:37
[INFO] [stdout]     |
[INFO] [stdout] 617 |             ObjectModel::Triangle { points, material } => todo!(),
[INFO] [stdout]     |                                     ^^^^^^ help: try ignoring the field: `points: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `points`
[INFO] [stdout]    --> src/config.rs:617:37
[INFO] [stdout]     |
[INFO] [stdout] 617 |             ObjectModel::Triangle { points, material } => todo!(),
[INFO] [stdout]     |                                     ^^^^^^ help: try ignoring the field: `points: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `material`
[INFO] [stdout]    --> src/config.rs:617:45
[INFO] [stdout]     |
[INFO] [stdout] 617 |             ObjectModel::Triangle { points, material } => todo!(),
[INFO] [stdout]     |                                             ^^^^^^^^ help: try ignoring the field: `material: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `center`
[INFO] [stdout]    --> src/config.rs:619:17
[INFO] [stdout]     |
[INFO] [stdout] 619 |                 center,
[INFO] [stdout]     |                 ^^^^^^ help: try ignoring the field: `center: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vectors`
[INFO] [stdout]    --> src/config.rs:620:17
[INFO] [stdout]     |
[INFO] [stdout] 620 |                 vectors,
[INFO] [stdout]     |                 ^^^^^^^ help: try ignoring the field: `vectors: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `material`
[INFO] [stdout]    --> src/config.rs:621:17
[INFO] [stdout]     |
[INFO] [stdout] 621 |                 material,
[INFO] [stdout]     |                 ^^^^^^^^ help: try ignoring the field: `material: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `material`
[INFO] [stdout]    --> src/config.rs:617:45
[INFO] [stdout]     |
[INFO] [stdout] 617 |             ObjectModel::Triangle { points, material } => todo!(),
[INFO] [stdout]     |                                             ^^^^^^^^ help: try ignoring the field: `material: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `center`
[INFO] [stdout]    --> src/config.rs:619:17
[INFO] [stdout]     |
[INFO] [stdout] 619 |                 center,
[INFO] [stdout]     |                 ^^^^^^ help: try ignoring the field: `center: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vectors`
[INFO] [stdout]    --> src/config.rs:620:17
[INFO] [stdout]     |
[INFO] [stdout] 620 |                 vectors,
[INFO] [stdout]     |                 ^^^^^^^ help: try ignoring the field: `vectors: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `material`
[INFO] [stdout]    --> src/config.rs:621:17
[INFO] [stdout]     |
[INFO] [stdout] 621 |                 material,
[INFO] [stdout]     |                 ^^^^^^^^ help: try ignoring the field: `material: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ray_in`
[INFO] [stdout]   --> src/material.rs:16:23
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn emitted(&self, ray_in: &Ray4, record: &HitRecord, u: f64, v: f64, point: &Point3) -> Color {
[INFO] [stdout]    |                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_ray_in`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `record`
[INFO] [stdout]   --> src/material.rs:16:38
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn emitted(&self, ray_in: &Ray4, record: &HitRecord, u: f64, v: f64, point: &Point3) -> Color {
[INFO] [stdout]    |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_record`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ray_in`
[INFO] [stdout]   --> src/material.rs:16:23
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn emitted(&self, ray_in: &Ray4, record: &HitRecord, u: f64, v: f64, point: &Point3) -> Color {
[INFO] [stdout]    |                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_ray_in`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `record`
[INFO] [stdout]   --> src/material.rs:16:38
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn emitted(&self, ray_in: &Ray4, record: &HitRecord, u: f64, v: f64, point: &Point3) -> Color {
[INFO] [stdout]    |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_record`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]   --> src/material.rs:16:58
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn emitted(&self, ray_in: &Ray4, record: &HitRecord, u: f64, v: f64, point: &Point3) -> Color {
[INFO] [stdout]    |                                                          ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/material.rs:16:66
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn emitted(&self, ray_in: &Ray4, record: &HitRecord, u: f64, v: f64, point: &Point3) -> Color {
[INFO] [stdout]    |                                                                  ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]   --> src/material.rs:16:58
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn emitted(&self, ray_in: &Ray4, record: &HitRecord, u: f64, v: f64, point: &Point3) -> Color {
[INFO] [stdout]    |                                                          ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/material.rs:16:66
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn emitted(&self, ray_in: &Ray4, record: &HitRecord, u: f64, v: f64, point: &Point3) -> Color {
[INFO] [stdout]    |                                                                  ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `point`
[INFO] [stdout]   --> src/material.rs:16:74
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn emitted(&self, ray_in: &Ray4, record: &HitRecord, u: f64, v: f64, point: &Point3) -> Color {
[INFO] [stdout]    |                                                                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_point`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ray_in`
[INFO] [stdout]   --> src/material.rs:27:30
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn scattering_pdf(&self, ray_in: &Ray4, record: &HitRecord, scattered: &Ray4) -> f64 {
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_ray_in`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `record`
[INFO] [stdout]   --> src/material.rs:27:45
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn scattering_pdf(&self, ray_in: &Ray4, record: &HitRecord, scattered: &Ray4) -> f64 {
[INFO] [stdout]    |                                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_record`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scattered`
[INFO] [stdout]   --> src/material.rs:27:65
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn scattering_pdf(&self, ray_in: &Ray4, record: &HitRecord, scattered: &Ray4) -> f64 {
[INFO] [stdout]    |                                                                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scattered`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `point`
[INFO] [stdout]   --> src/material.rs:16:74
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn emitted(&self, ray_in: &Ray4, record: &HitRecord, u: f64, v: f64, point: &Point3) -> Color {
[INFO] [stdout]    |                                                                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_point`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ray_in`
[INFO] [stdout]   --> src/material.rs:27:30
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn scattering_pdf(&self, ray_in: &Ray4, record: &HitRecord, scattered: &Ray4) -> f64 {
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_ray_in`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `record`
[INFO] [stdout]   --> src/material.rs:27:45
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn scattering_pdf(&self, ray_in: &Ray4, record: &HitRecord, scattered: &Ray4) -> f64 {
[INFO] [stdout]    |                                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_record`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scattered`
[INFO] [stdout]   --> src/material.rs:27:65
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn scattering_pdf(&self, ray_in: &Ray4, record: &HitRecord, scattered: &Ray4) -> f64 {
[INFO] [stdout]    |                                                                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scattered`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ray_in`
[INFO] [stdout]   --> src/material.rs:59:30
[INFO] [stdout]    |
[INFO] [stdout] 59 |     fn scattering_pdf(&self, ray_in: &Ray4, record: &HitRecord, scattered: &Ray4) -> f64 {
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_ray_in`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ray_in`
[INFO] [stdout]   --> src/material.rs:59:30
[INFO] [stdout]    |
[INFO] [stdout] 59 |     fn scattering_pdf(&self, ray_in: &Ray4, record: &HitRecord, scattered: &Ray4) -> f64 {
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_ray_in`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scattered`
[INFO] [stdout]    --> src/material.rs:119:13
[INFO] [stdout]     |
[INFO] [stdout] 119 |         let scattered = Ray4::new(record.point(), reflected, ray_in.time());
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scattered`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `direction`
[INFO] [stdout]    --> src/material.rs:171:13
[INFO] [stdout]     |
[INFO] [stdout] 171 |         let direction = if will_reflect {
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_direction`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scattered`
[INFO] [stdout]    --> src/material.rs:119:13
[INFO] [stdout]     |
[INFO] [stdout] 119 |         let scattered = Ray4::new(record.point(), reflected, ray_in.time());
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scattered`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `direction`
[INFO] [stdout]    --> src/material.rs:171:13
[INFO] [stdout]     |
[INFO] [stdout] 171 |         let direction = if will_reflect {
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_direction`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `antialiasing_type` and `samples_per_px` are never read
[INFO] [stdout]    --> src/camera.rs:237:5
[INFO] [stdout]     |
[INFO] [stdout] 223 | pub struct Camera<'a> {
[INFO] [stdout]     |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 237 |     antialiasing_type: AntialiasingType,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 238 |     /// How many random samples are made per pixel during antialiasing.
[INFO] [stdout] 239 |     samples_per_px: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Camera` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `textures` is never read
[INFO] [stdout]   --> src/config.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct ConfigModel {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 13 |     textures: TextureStorage,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ConfigModel` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `path` is never read
[INFO] [stdout]   --> src/config.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |     Image {
[INFO] [stdout]    |     ----- field in this variant
[INFO] [stdout] 29 |         path: PathBuf,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TextureModel` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Triangle` is never constructed
[INFO] [stdout]   --> src/config.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 43 | enum ObjectModel {
[INFO] [stdout]    |      ----------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 55 |     Triangle {
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ObjectModel` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/config.rs:82:12
[INFO] [stdout]    |
[INFO] [stdout] 81 | impl TextureStorage {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 82 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `antialiasing_type` and `samples_per_px` are never read
[INFO] [stdout]    --> src/camera.rs:237:5
[INFO] [stdout]     |
[INFO] [stdout] 223 | pub struct Camera<'a> {
[INFO] [stdout]     |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 237 |     antialiasing_type: AntialiasingType,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 238 |     /// How many random samples are made per pixel during antialiasing.
[INFO] [stdout] 239 |     samples_per_px: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Camera` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `textures` is never read
[INFO] [stdout]   --> src/config.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct ConfigModel {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 13 |     textures: TextureStorage,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ConfigModel` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `path` is never read
[INFO] [stdout]   --> src/config.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |     Image {
[INFO] [stdout]    |     ----- field in this variant
[INFO] [stdout] 29 |         path: PathBuf,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TextureModel` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Triangle` is never constructed
[INFO] [stdout]   --> src/config.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 43 | enum ObjectModel {
[INFO] [stdout]    |      ----------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 55 |     Triangle {
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ObjectModel` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/config.rs:82:12
[INFO] [stdout]    |
[INFO] [stdout] 81 | impl TextureStorage {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 82 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 27.78s
[INFO] running `Command { std: "docker" "inspect" "efe5ad2fa24b2e228c281e77e7fb8161d2b28cc6c5c2f356b0ff4190c11f22a9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "efe5ad2fa24b2e228c281e77e7fb8161d2b28cc6c5c2f356b0ff4190c11f22a9", kill_on_drop: false }`
[INFO] [stdout] efe5ad2fa24b2e228c281e77e7fb8161d2b28cc6c5c2f356b0ff4190c11f22a9
