[INFO] cloning repository https://github.com/ashvin-verma/pobert
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ashvin-verma/pobert" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fashvin-verma%2Fpobert", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fashvin-verma%2Fpobert'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2551959b45022b146a81022d131a251a36e9e293
[INFO] checking ashvin-verma/pobert against try#3a4cb0edb4040379c037e06efeb5409e44be7b77 for pr-146377
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fashvin-verma%2Fpobert" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ashvin-verma/pobert
[INFO] finished tweaking git repo https://github.com/ashvin-verma/pobert
[INFO] tweaked toml for git repo https://github.com/ashvin-verma/pobert written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ashvin-verma/pobert on toolchain 3a4cb0edb4040379c037e06efeb5409e44be7b77
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3a4cb0edb4040379c037e06efeb5409e44be7b77" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ashvin-verma/pobert 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" "+3a4cb0edb4040379c037e06efeb5409e44be7b77" "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] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:94a0c148923f5b2b52a63ef0eeb1882ad339ab61bce784c8077cbe41c61feb6c" "/opt/rustwide/cargo-home/bin/cargo" "+3a4cb0edb4040379c037e06efeb5409e44be7b77" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] b2b625b8d9bee602ac50eef60f58294aa140d903d4e681170c14a16688185439
[INFO] running `Command { std: "docker" "start" "-a" "b2b625b8d9bee602ac50eef60f58294aa140d903d4e681170c14a16688185439", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b2b625b8d9bee602ac50eef60f58294aa140d903d4e681170c14a16688185439", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b2b625b8d9bee602ac50eef60f58294aa140d903d4e681170c14a16688185439", kill_on_drop: false }`
[INFO] [stdout] b2b625b8d9bee602ac50eef60f58294aa140d903d4e681170c14a16688185439
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:94a0c148923f5b2b52a63ef0eeb1882ad339ab61bce784c8077cbe41c61feb6c" "/opt/rustwide/cargo-home/bin/cargo" "+3a4cb0edb4040379c037e06efeb5409e44be7b77" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7fef5e765a755e948afe043c46bd92d0d33f9c359f862e7f15809fc73280047c
[INFO] running `Command { std: "docker" "start" "-a" "7fef5e765a755e948afe043c46bd92d0d33f9c359f862e7f15809fc73280047c", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.158
[INFO] [stderr]    Compiling portable-atomic v1.7.0
[INFO] [stderr]     Checking unicode-width v0.1.13
[INFO] [stderr]    Compiling proc-macro2 v1.0.86
[INFO] [stderr]     Checking number_prefix v0.4.0
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]    Compiling syn v2.0.76
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]     Checking console v0.15.8
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking indicatif v0.17.8
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]     Checking zerocopy v0.7.35
[INFO] [stderr]     Checking ppv-lite86 v0.2.20
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking pobert v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Initialize`
[INFO] [stdout]  --> src/main.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | use camera::{Camera, Initialize, Render};
[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: `indicatif::ProgressBar`
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use indicatif::ProgressBar;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `interval::Interval`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use interval::Interval;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `point3::Point3`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use point3::Point3;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ray::At`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use ray::At;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `INF`
[INFO] [stdout]  --> src/main.rs:6:38
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rtweekend::{random_double_range, INF};
[INFO] [stdout]   |                                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HitRecord` and `Hit`
[INFO] [stdout]  --> src/main.rs:7:19
[INFO] [stdout]   |
[INFO] [stdout] 7 | use sphere::{Add, Hit, HitRecord, HittableList, MovingSphere, New, Sphere};
[INFO] [stdout]   |                   ^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LengthSquared`, `Unit`, and `dot`
[INFO] [stdout]  --> src/main.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | use vec3::{dot, element_wise_mul, random, random_range, Length, LengthSquared, Unit, Vec3};
[INFO] [stdout]   |            ^^^                                                  ^^^^^^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::min`
[INFO] [stdout]  --> src/vec3.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cmp::min;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mul`
[INFO] [stdout]  --> src/ray.rs:1:19
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::vec3::{mul, Vec3};
[INFO] [stdout]   |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Mul`
[INFO] [stdout]  --> src/sphere.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::Mul;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Scatter`
[INFO] [stdout]  --> src/sphere.rs:3:39
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::material::{self, Material, Scatter};
[INFO] [stdout]   |                                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `div` and `mul`
[INFO] [stdout]  --> src/sphere.rs:4:19
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::vec3::{div, LengthSquared, mul, Dot, Vec3};
[INFO] [stdout]   |                   ^^^                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Length`, `random_on_hemisphere`, `random_unit_vector`, and `self`
[INFO] [stdout]  --> src/camera.rs:3:96
[INFO] [stdout]   |
[INFO] [stdout] 3 | ...::{self, Direction, Ray}, rtweekend::{degrees_to_radians, random_double, INF}, sphere::{Hit, HitRecord, HittableList, New}, vec3::{cross, element_wise_mul, random_in_unit_disk, random_on_hemisphere, random_unit_vector, Length, U...
[INFO] [stdout]   |       ^^^^                                                                                                                                                                          ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/camera.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 51 |         if (depth <= 0) {
[INFO] [stdout]    |            ^          ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 51 -         if (depth <= 0) {
[INFO] [stdout] 51 +         if depth <= 0  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Initialize`
[INFO] [stdout]  --> src/main.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | use camera::{Camera, Initialize, Render};
[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: `indicatif::ProgressBar`
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use indicatif::ProgressBar;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `interval::Interval`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use interval::Interval;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `point3::Point3`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use point3::Point3;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ray::At`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use ray::At;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `INF`
[INFO] [stdout]  --> src/main.rs:6:38
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rtweekend::{random_double_range, INF};
[INFO] [stdout]   |                                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HitRecord` and `Hit`
[INFO] [stdout]  --> src/main.rs:7:19
[INFO] [stdout]   |
[INFO] [stdout] 7 | use sphere::{Add, Hit, HitRecord, HittableList, MovingSphere, New, Sphere};
[INFO] [stdout]   |                   ^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LengthSquared`, `Unit`, and `dot`
[INFO] [stdout]  --> src/main.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | use vec3::{dot, element_wise_mul, random, random_range, Length, LengthSquared, Unit, Vec3};
[INFO] [stdout]   |            ^^^                                                  ^^^^^^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::min`
[INFO] [stdout]  --> src/vec3.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cmp::min;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mul`
[INFO] [stdout]  --> src/ray.rs:1:19
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::vec3::{mul, Vec3};
[INFO] [stdout]   |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Mul`
[INFO] [stdout]  --> src/sphere.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::Mul;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Scatter`
[INFO] [stdout]  --> src/sphere.rs:3:39
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::material::{self, Material, Scatter};
[INFO] [stdout]   |                                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `div` and `mul`
[INFO] [stdout]  --> src/sphere.rs:4:19
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::vec3::{div, LengthSquared, mul, Dot, Vec3};
[INFO] [stdout]   |                   ^^^                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Length`, `random_on_hemisphere`, `random_unit_vector`, and `self`
[INFO] [stdout]  --> src/camera.rs:3:96
[INFO] [stdout]   |
[INFO] [stdout] 3 | ...::{self, Direction, Ray}, rtweekend::{degrees_to_radians, random_double, INF}, sphere::{Hit, HitRecord, HittableList, New}, vec3::{cross, element_wise_mul, random_in_unit_disk, random_on_hemisphere, random_unit_vector, Length, U...
[INFO] [stdout]   |       ^^^^                                                                                                                                                                          ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/camera.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 51 |         if (depth <= 0) {
[INFO] [stdout]    |            ^          ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 51 -         if (depth <= 0) {
[INFO] [stdout] 51 +         if depth <= 0  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/material.rs:77:56
[INFO] [stdout]    |
[INFO] [stdout] 77 |     fn scatter(&self, r_in: &Ray, rec: &mut HitRecord, mut attenuation: &mut Vec3, mut scattered: &mut Ray) -> bool {
[INFO] [stdout]    |                                                        ----^^^^^^^^^^^
[INFO] [stdout]    |                                                        |
[INFO] [stdout]    |                                                        help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/material.rs:77:84
[INFO] [stdout]    |
[INFO] [stdout] 77 |     fn scatter(&self, r_in: &Ray, rec: &mut HitRecord, mut attenuation: &mut Vec3, mut scattered: &mut Ray) -> bool {
[INFO] [stdout]    |                                                                                    ----^^^^^^^^^
[INFO] [stdout]    |                                                                                    |
[INFO] [stdout]    |                                                                                    help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/material.rs:94:56
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn scatter(&self, r_in: &Ray, rec: &mut HitRecord, mut attenuation: &mut Color, mut scattered: &mut Ray) -> bool {
[INFO] [stdout]    |                                                        ----^^^^^^^^^^^
[INFO] [stdout]    |                                                        |
[INFO] [stdout]    |                                                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/material.rs:94:85
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn scatter(&self, r_in: &Ray, rec: &mut HitRecord, mut attenuation: &mut Color, mut scattered: &mut Ray) -> bool {
[INFO] [stdout]    |                                                                                     ----^^^^^^^^^
[INFO] [stdout]    |                                                                                     |
[INFO] [stdout]    |                                                                                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/material.rs:117:56
[INFO] [stdout]     |
[INFO] [stdout] 117 |     fn scatter(&self, r_in: &Ray, rec: &mut HitRecord, mut attenuation: &mut Color, mut scattered: &mut Ray) -> bool {
[INFO] [stdout]     |                                                        ----^^^^^^^^^^^
[INFO] [stdout]     |                                                        |
[INFO] [stdout]     |                                                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/material.rs:117:85
[INFO] [stdout]     |
[INFO] [stdout] 117 |     fn scatter(&self, r_in: &Ray, rec: &mut HitRecord, mut attenuation: &mut Color, mut scattered: &mut Ray) -> bool {
[INFO] [stdout]     |                                                                                     ----^^^^^^^^^
[INFO] [stdout]     |                                                                                     |
[INFO] [stdout]     |                                                                                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Cross` is never used
[INFO] [stdout]   --> src/vec3.rs:27:11
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub trait Cross {
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Division` is never used
[INFO] [stdout]   --> src/vec3.rs:35:11
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub trait Division {
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Multiplication` is never used
[INFO] [stdout]   --> src/vec3.rs:40:11
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub trait Multiplication {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/material.rs:77:56
[INFO] [stdout]    |
[INFO] [stdout] 77 |     fn scatter(&self, r_in: &Ray, rec: &mut HitRecord, mut attenuation: &mut Vec3, mut scattered: &mut Ray) -> bool {
[INFO] [stdout]    |                                                        ----^^^^^^^^^^^
[INFO] [stdout]    |                                                        |
[INFO] [stdout]    |                                                        help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/material.rs:77:84
[INFO] [stdout]    |
[INFO] [stdout] 77 |     fn scatter(&self, r_in: &Ray, rec: &mut HitRecord, mut attenuation: &mut Vec3, mut scattered: &mut Ray) -> bool {
[INFO] [stdout]    |                                                                                    ----^^^^^^^^^
[INFO] [stdout]    |                                                                                    |
[INFO] [stdout]    |                                                                                    help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mul` is never used
[INFO] [stdout]    --> src/vec3.rs:158:8
[INFO] [stdout]     |
[INFO] [stdout] 158 | pub fn mul (v: Vec3, t: f32) -> Vec3 {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/material.rs:94:56
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn scatter(&self, r_in: &Ray, rec: &mut HitRecord, mut attenuation: &mut Color, mut scattered: &mut Ray) -> bool {
[INFO] [stdout]    |                                                        ----^^^^^^^^^^^
[INFO] [stdout]    |                                                        |
[INFO] [stdout]    |                                                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/material.rs:94:85
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn scatter(&self, r_in: &Ray, rec: &mut HitRecord, mut attenuation: &mut Color, mut scattered: &mut Ray) -> bool {
[INFO] [stdout]    |                                                                                     ----^^^^^^^^^
[INFO] [stdout]    |                                                                                     |
[INFO] [stdout]    |                                                                                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/material.rs:117:56
[INFO] [stdout]     |
[INFO] [stdout] 117 |     fn scatter(&self, r_in: &Ray, rec: &mut HitRecord, mut attenuation: &mut Color, mut scattered: &mut Ray) -> bool {
[INFO] [stdout]     |                                                        ----^^^^^^^^^^^
[INFO] [stdout]     |                                                        |
[INFO] [stdout]     |                                                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/material.rs:117:85
[INFO] [stdout]     |
[INFO] [stdout] 117 |     fn scatter(&self, r_in: &Ray, rec: &mut HitRecord, mut attenuation: &mut Color, mut scattered: &mut Ray) -> bool {
[INFO] [stdout]     |                                                                                     ----^^^^^^^^^
[INFO] [stdout]     |                                                                                     |
[INFO] [stdout]     |                                                                                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Cross` is never used
[INFO] [stdout]   --> src/vec3.rs:27:11
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub trait Cross {
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Division` is never used
[INFO] [stdout]   --> src/vec3.rs:35:11
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub trait Division {
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Multiplication` is never used
[INFO] [stdout]   --> src/vec3.rs:40:11
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub trait Multiplication {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mul` is never used
[INFO] [stdout]    --> src/vec3.rs:158:8
[INFO] [stdout]     |
[INFO] [stdout] 158 | pub fn mul (v: Vec3, t: f32) -> Vec3 {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `div` is never used
[INFO] [stdout]    --> src/vec3.rs:166:8
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub fn div (v: Vec3, t: f32) -> Vec3 {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `random_on_hemisphere` is never used
[INFO] [stdout]    --> src/vec3.rs:249:8
[INFO] [stdout]     |
[INFO] [stdout] 249 | pub fn random_on_hemisphere(normal: &Vec3) -> Vec3 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Clear` is never used
[INFO] [stdout]   --> src/sphere.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub trait Clear {
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/sphere.rs:181:12
[INFO] [stdout]     |
[INFO] [stdout] 180 | impl Sphere {
[INFO] [stdout]     | ----------- associated function in this implementation
[INFO] [stdout] 181 |     pub fn new(center: Point3, radius: f32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Size` is never used
[INFO] [stdout]  --> src/interval.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub trait Size {
[INFO] [stdout]   |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Contains` is never used
[INFO] [stdout]  --> src/interval.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub trait Contains {
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constants `EMPTY` and `UNIVERSE` are never used
[INFO] [stdout]   --> src/interval.rs:50:11
[INFO] [stdout]    |
[INFO] [stdout] 49 | impl Interval {
[INFO] [stdout]    | ------------- associated constants in this implementation
[INFO] [stdout] 50 |     const EMPTY: Interval = Interval { min: INF, max: -INF };
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 51 |     const UNIVERSE: Interval = Interval { min: -INF, max: INF };
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `div` is never used
[INFO] [stdout]    --> src/vec3.rs:166:8
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub fn div (v: Vec3, t: f32) -> Vec3 {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `random_on_hemisphere` is never used
[INFO] [stdout]    --> src/vec3.rs:249:8
[INFO] [stdout]     |
[INFO] [stdout] 249 | pub fn random_on_hemisphere(normal: &Vec3) -> Vec3 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Clear` is never used
[INFO] [stdout]   --> src/sphere.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub trait Clear {
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/sphere.rs:181:12
[INFO] [stdout]     |
[INFO] [stdout] 180 | impl Sphere {
[INFO] [stdout]     | ----------- associated function in this implementation
[INFO] [stdout] 181 |     pub fn new(center: Point3, radius: f32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Size` is never used
[INFO] [stdout]  --> src/interval.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub trait Size {
[INFO] [stdout]   |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Contains` is never used
[INFO] [stdout]  --> src/interval.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub trait Contains {
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constants `EMPTY` and `UNIVERSE` are never used
[INFO] [stdout]   --> src/interval.rs:50:11
[INFO] [stdout]    |
[INFO] [stdout] 49 | impl Interval {
[INFO] [stdout]    | ------------- associated constants in this implementation
[INFO] [stdout] 50 |     const EMPTY: Interval = Interval { min: INF, max: -INF };
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 51 |     const UNIVERSE: Interval = Interval { min: -INF, max: INF };
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.50s
[INFO] running `Command { std: "docker" "inspect" "7fef5e765a755e948afe043c46bd92d0d33f9c359f862e7f15809fc73280047c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7fef5e765a755e948afe043c46bd92d0d33f9c359f862e7f15809fc73280047c", kill_on_drop: false }`
[INFO] [stdout] 7fef5e765a755e948afe043c46bd92d0d33f9c359f862e7f15809fc73280047c
