[INFO] updating cached repository https://github.com/christopherwebb/rust_ray_tracer [INFO] running `"git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "-c" "remote.origin.fetch=refs/heads/*:refs/heads/*" "fetch" "origin" "--force" "--prune"` [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 0ba68f444d26595bae0e5b369c07cca2e3836e12 [INFO] checking christopherwebb/rust_ray_tracer against master#45d050cde277b22a755847338f2acc2c7b834141 for pr-71393 [INFO] running `"git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fchristopherwebb%2Frust_ray_tracer" "/workspace/builds/worker-3/source"` [INFO] [stderr] Cloning into '/workspace/builds/worker-3/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/christopherwebb/rust_ray_tracer on toolchain 45d050cde277b22a755847338f2acc2c7b834141 [INFO] running `"/workspace/cargo-home/bin/cargo" "+45d050cde277b22a755847338f2acc2c7b834141" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started tweaking git repo https://github.com/christopherwebb/rust_ray_tracer [INFO] finished tweaking git repo https://github.com/christopherwebb/rust_ray_tracer [INFO] tweaked toml for git repo https://github.com/christopherwebb/rust_ray_tracer written to /workspace/builds/worker-3/source/Cargo.toml [INFO] crate git repo https://github.com/christopherwebb/rust_ray_tracer already has a lockfile, it will not be regenerated [INFO] running `"/workspace/cargo-home/bin/cargo" "+45d050cde277b22a755847338f2acc2c7b834141" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+45d050cde277b22a755847338f2acc2c7b834141" "check" "--frozen" "--all" "--all-targets"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] dae2593132b2fb65e0304d5b10d56ab35b9eaa593ebabb198abebf4645218624 [INFO] running `"docker" "start" "-a" "dae2593132b2fb65e0304d5b10d56ab35b9eaa593ebabb198abebf4645218624"` [INFO] [stderr] Compiling libc v0.2.58 [INFO] [stderr] Checking spin v0.5.0 [INFO] [stderr] Compiling proc-macro2 v1.0.6 [INFO] [stderr] Compiling unicode-xid v0.2.0 [INFO] [stderr] Compiling syn v1.0.9 [INFO] [stderr] Compiling autocfg v0.1.4 [INFO] [stderr] Compiling bitflags v1.1.0 [INFO] [stderr] Checking regex-syntax v0.6.12 [INFO] [stderr] Compiling serde v1.0.97 [INFO] [stderr] Compiling ryu v1.0.2 [INFO] [stderr] Checking itoa v0.4.4 [INFO] [stderr] Checking lazy_static v1.3.0 [INFO] [stderr] Checking c2-chacha v0.2.2 [INFO] [stderr] Compiling rand_chacha v0.2.0 [INFO] [stderr] Checking getrandom v0.1.6 [INFO] [stderr] Checking termios v0.3.1 [INFO] [stderr] Checking clicolors-control v1.0.1 [INFO] [stderr] Checking atty v0.2.13 [INFO] [stderr] Checking num_cpus v1.10.1 [INFO] [stderr] Compiling quote v1.0.2 [INFO] [stderr] Checking clap v2.33.0 [INFO] [stderr] Checking rand_core v0.5.0 [INFO] [stderr] Checking regex v1.3.1 [INFO] [stderr] Checking rand v0.7.0 [INFO] [stderr] Checking console v0.9.1 [INFO] [stderr] Checking indicatif v0.13.0 [INFO] [stderr] Compiling serde_derive v1.0.103 [INFO] [stderr] Checking serde_json v1.0.42 [INFO] [stderr] Checking rust_ray_tracing v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] warning: unused import: `solve_quadratic` [INFO] [stderr] --> src/shapes/sphere.rs:15:27 [INFO] [stderr] | [INFO] [stderr] 15 | use crate::shapes::base::{solve_quadratic, Hitable}; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `solve_quadratic` [INFO] [stderr] --> src/shapes/sphere.rs:15:27 [INFO] [stderr] | [INFO] [stderr] 15 | use crate::shapes::base::{solve_quadratic, Hitable}; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable `hit_rad` is assigned to, but never used [INFO] [stderr] --> src/shapes/cylinder.rs:68:17 [INFO] [stderr] | [INFO] [stderr] 68 | let mut hit_rad = (orig_hit.x * orig_hit.x + orig_hit.y * orig_hit.y).sqrt(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] = note: consider using `_hit_rad` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `hit_rad` is never read [INFO] [stderr] --> src/shapes/cylinder.rs:95:17 [INFO] [stderr] | [INFO] [stderr] 95 | hit_rad = (orig_hit.x * orig_hit.x + orig_hit.y * orig_hit.y).sqrt(); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_assignments)]` on by default [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: unused variable: `u` [INFO] [stderr] --> src/shapes/cylinder.rs:120:17 [INFO] [stderr] | [INFO] [stderr] 120 | let u = phi / self.phi_max; [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_u` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `v` [INFO] [stderr] --> src/shapes/cylinder.rs:122:17 [INFO] [stderr] | [INFO] [stderr] 122 | let v = (orig_hit.z - oz_min) / (oz_max - oz_min); [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `dndu` [INFO] [stderr] --> src/shapes/cylinder.rs:146:17 [INFO] [stderr] | [INFO] [stderr] 146 | let dndu = unit_vector(&((f * F - e * G) * invEGF2 * dpdu + [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_dndu` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `dndv` [INFO] [stderr] --> src/shapes/cylinder.rs:148:17 [INFO] [stderr] | [INFO] [stderr] 148 | let dndv = unit_vector(&((g * F - f * G) * invEGF2 * dpdu + [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_dndv` [INFO] [stderr] [INFO] [stderr] warning: variable `hit_rad` is assigned to, but never used [INFO] [stderr] --> src/shapes/cylinder.rs:68:17 [INFO] [stderr] | [INFO] [stderr] 68 | let mut hit_rad = (orig_hit.x * orig_hit.x + orig_hit.y * orig_hit.y).sqrt(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] = note: consider using `_hit_rad` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `hit_rad` is never read [INFO] [stderr] --> src/shapes/cylinder.rs:95:17 [INFO] [stderr] | [INFO] [stderr] 95 | hit_rad = (orig_hit.x * orig_hit.x + orig_hit.y * orig_hit.y).sqrt(); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_assignments)]` on by default [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: unused variable: `u` [INFO] [stderr] --> src/shapes/cylinder.rs:120:17 [INFO] [stderr] | [INFO] [stderr] 120 | let u = phi / self.phi_max; [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_u` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `v` [INFO] [stderr] --> src/shapes/cylinder.rs:122:17 [INFO] [stderr] | [INFO] [stderr] 122 | let v = (orig_hit.z - oz_min) / (oz_max - oz_min); [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `dndu` [INFO] [stderr] --> src/shapes/cylinder.rs:146:17 [INFO] [stderr] | [INFO] [stderr] 146 | let dndu = unit_vector(&((f * F - e * G) * invEGF2 * dpdu + [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_dndu` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `dndv` [INFO] [stderr] --> src/shapes/cylinder.rs:148:17 [INFO] [stderr] | [INFO] [stderr] 148 | let dndv = unit_vector(&((g * F - f * G) * invEGF2 * dpdu + [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_dndv` [INFO] [stderr] [INFO] [stderr] warning: structure field `zMin` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:24:9 [INFO] [stderr] | [INFO] [stderr] 24 | pub zMin: f32, [INFO] [stderr] | ^^^^ help: convert the identifier to snake case: `z_min` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_snake_case)]` on by default [INFO] [stderr] [INFO] [stderr] warning: structure field `zMax` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:25:9 [INFO] [stderr] | [INFO] [stderr] 25 | pub zMax: f32, [INFO] [stderr] | ^^^^ help: convert the identifier to snake case: `z_max` [INFO] [stderr] [INFO] [stderr] warning: variable `d2Pduu` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:132:17 [INFO] [stderr] | [INFO] [stderr] 132 | let d2Pduu = -self.phi_max * self.phi_max * Vec3 { e: [orig_hit.x, orig_hit.y, 0.0]}; [INFO] [stderr] | ^^^^^^ help: convert the identifier to snake case: `d2_pduu` [INFO] [stderr] [INFO] [stderr] warning: variable `d2Pduv` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:133:17 [INFO] [stderr] | [INFO] [stderr] 133 | let d2Pduv = Vec3 { e: [0.0, 0.0, 0.0]}; [INFO] [stderr] | ^^^^^^ help: convert the identifier to snake case: `d2_pduv` [INFO] [stderr] [INFO] [stderr] warning: variable `d2Pdvv` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:134:17 [INFO] [stderr] | [INFO] [stderr] 134 | let d2Pdvv = Vec3 { e: [0.0, 0.0, 0.0]}; [INFO] [stderr] | ^^^^^^ help: convert the identifier to snake case: `d2_pdvv` [INFO] [stderr] [INFO] [stderr] warning: variable `E` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:137:17 [INFO] [stderr] | [INFO] [stderr] 137 | let E = dot(&dpdu, &dpdu); [INFO] [stderr] | ^ help: convert the identifier to snake case: `e` [INFO] [stderr] [INFO] [stderr] warning: variable `F` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:138:17 [INFO] [stderr] | [INFO] [stderr] 138 | let F = dot(&dpdu, &dpdv); [INFO] [stderr] | ^ help: convert the identifier to snake case (notice the capitalization): `f` [INFO] [stderr] [INFO] [stderr] warning: variable `G` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:139:17 [INFO] [stderr] | [INFO] [stderr] 139 | let G = dot(&dpdv, &dpdv); [INFO] [stderr] | ^ help: convert the identifier to snake case: `g` [INFO] [stderr] [INFO] [stderr] warning: variable `N` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:140:17 [INFO] [stderr] | [INFO] [stderr] 140 | let N = unit_vector(&cross(&dpdu, &dpdv)); [INFO] [stderr] | ^ help: convert the identifier to snake case: `n` [INFO] [stderr] [INFO] [stderr] warning: variable `invEGF2` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:145:17 [INFO] [stderr] | [INFO] [stderr] 145 | let invEGF2 = 1.0 / (E * G - F * F); [INFO] [stderr] | ^^^^^^^ help: convert the identifier to snake case: `inv_egf2` [INFO] [stderr] [INFO] [stderr] warning: 17 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: structure field `zMin` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:24:9 [INFO] [stderr] | [INFO] [stderr] 24 | pub zMin: f32, [INFO] [stderr] | ^^^^ help: convert the identifier to snake case: `z_min` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_snake_case)]` on by default [INFO] [stderr] [INFO] [stderr] warning: structure field `zMax` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:25:9 [INFO] [stderr] | [INFO] [stderr] 25 | pub zMax: f32, [INFO] [stderr] | ^^^^ help: convert the identifier to snake case: `z_max` [INFO] [stderr] [INFO] [stderr] warning: variable `d2Pduu` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:132:17 [INFO] [stderr] | [INFO] [stderr] 132 | let d2Pduu = -self.phi_max * self.phi_max * Vec3 { e: [orig_hit.x, orig_hit.y, 0.0]}; [INFO] [stderr] | ^^^^^^ help: convert the identifier to snake case: `d2_pduu` [INFO] [stderr] [INFO] [stderr] warning: variable `d2Pduv` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:133:17 [INFO] [stderr] | [INFO] [stderr] 133 | let d2Pduv = Vec3 { e: [0.0, 0.0, 0.0]}; [INFO] [stderr] | ^^^^^^ help: convert the identifier to snake case: `d2_pduv` [INFO] [stderr] [INFO] [stderr] warning: variable `d2Pdvv` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:134:17 [INFO] [stderr] | [INFO] [stderr] 134 | let d2Pdvv = Vec3 { e: [0.0, 0.0, 0.0]}; [INFO] [stderr] | ^^^^^^ help: convert the identifier to snake case: `d2_pdvv` [INFO] [stderr] [INFO] [stderr] warning: variable `E` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:137:17 [INFO] [stderr] | [INFO] [stderr] 137 | let E = dot(&dpdu, &dpdu); [INFO] [stderr] | ^ help: convert the identifier to snake case: `e` [INFO] [stderr] [INFO] [stderr] warning: variable `F` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:138:17 [INFO] [stderr] | [INFO] [stderr] 138 | let F = dot(&dpdu, &dpdv); [INFO] [stderr] | ^ help: convert the identifier to snake case (notice the capitalization): `f` [INFO] [stderr] [INFO] [stderr] warning: variable `G` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:139:17 [INFO] [stderr] | [INFO] [stderr] 139 | let G = dot(&dpdv, &dpdv); [INFO] [stderr] | ^ help: convert the identifier to snake case: `g` [INFO] [stderr] [INFO] [stderr] warning: variable `N` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:140:17 [INFO] [stderr] | [INFO] [stderr] 140 | let N = unit_vector(&cross(&dpdu, &dpdv)); [INFO] [stderr] | ^ help: convert the identifier to snake case: `n` [INFO] [stderr] [INFO] [stderr] warning: variable `invEGF2` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:145:17 [INFO] [stderr] | [INFO] [stderr] 145 | let invEGF2 = 1.0 / (E * G - F * F); [INFO] [stderr] | ^^^^^^^ help: convert the identifier to snake case: `inv_egf2` [INFO] [stderr] [INFO] [stderr] warning: 17 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: unused import: `Read` [INFO] [stderr] --> src/bin/rust_ray_assemble.rs:1:21 [INFO] [stderr] | [INFO] [stderr] 1 | use std::io::{self, Read}; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: 1 warning emitted [INFO] [stderr] [INFO] [stderr] warning: unused import: `Read` [INFO] [stderr] --> src/bin/rust_ray_assemble.rs:1:21 [INFO] [stderr] | [INFO] [stderr] 1 | use std::io::{self, Read}; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `Serialize` [INFO] [stderr] --> examples/final_weekend.rs:6:13 [INFO] [stderr] | [INFO] [stderr] 6 | use serde::{Serialize}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Result`, `Value` [INFO] [stderr] --> examples/final_weekend.rs:7:18 [INFO] [stderr] | [INFO] [stderr] 7 | use serde_json::{Result, Value}; [INFO] [stderr] | ^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rust_ray_tracing::shapes::base::Hitable` [INFO] [stderr] --> examples/final_weekend.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | use rust_ray_tracing::shapes::base::Hitable; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rust_ray_tracing::shapes::cylinder::Cylinder` [INFO] [stderr] --> examples/final_weekend.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | use rust_ray_tracing::shapes::cylinder::Cylinder; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Serialize` [INFO] [stderr] --> examples/3balls.rs:4:13 [INFO] [stderr] | [INFO] [stderr] 4 | use serde::{Serialize}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Result`, `Value` [INFO] [stderr] --> examples/3balls.rs:5:18 [INFO] [stderr] | [INFO] [stderr] 5 | use serde_json::{Result, Value}; [INFO] [stderr] | ^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rust_ray_tracing::shapes::base::Hitable` [INFO] [stderr] --> examples/3balls.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | use rust_ray_tracing::shapes::base::Hitable; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rust_ray_tracing::shapes::cylinder::Cylinder` [INFO] [stderr] --> examples/3balls.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | use rust_ray_tracing::shapes::cylinder::Cylinder; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `MovingSphere` [INFO] [stderr] --> examples/3balls.rs:16:48 [INFO] [stderr] | [INFO] [stderr] 16 | use rust_ray_tracing::shapes::sphere::{Sphere, MovingSphere}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: 1 warning emitted [INFO] [stderr] [INFO] [stderr] warning: unused import: `Serialize` [INFO] [stderr] --> examples/blue_red.rs:4:13 [INFO] [stderr] | [INFO] [stderr] 4 | use serde::{Serialize}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Result`, `Value` [INFO] [stderr] --> examples/blue_red.rs:5:18 [INFO] [stderr] | [INFO] [stderr] 5 | use serde_json::{Result, Value}; [INFO] [stderr] | ^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rust_ray_tracing::shapes::base::Hitable` [INFO] [stderr] --> examples/blue_red.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | use rust_ray_tracing::shapes::base::Hitable; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rust_ray_tracing::shapes::cylinder::Cylinder` [INFO] [stderr] --> examples/blue_red.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | use rust_ray_tracing::shapes::cylinder::Cylinder; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `MovingSphere` [INFO] [stderr] --> examples/blue_red.rs:16:48 [INFO] [stderr] | [INFO] [stderr] 16 | use rust_ray_tracing::shapes::sphere::{Sphere, MovingSphere}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Serialize` [INFO] [stderr] --> examples/cylinders.rs:4:13 [INFO] [stderr] | [INFO] [stderr] 4 | use serde::{Serialize}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Result`, `Value` [INFO] [stderr] --> examples/cylinders.rs:5:18 [INFO] [stderr] | [INFO] [stderr] 5 | use serde_json::{Result, Value}; [INFO] [stderr] | ^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rust_ray_tracing::shapes::base::Hitable` [INFO] [stderr] --> examples/cylinders.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | use rust_ray_tracing::shapes::base::Hitable; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `MovingSphere`, `Sphere` [INFO] [stderr] --> examples/cylinders.rs:16:40 [INFO] [stderr] | [INFO] [stderr] 16 | use rust_ray_tracing::shapes::sphere::{Sphere, MovingSphere}; [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: 5 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: 4 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: 5 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: 4 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: unused import: `solve_quadratic` [INFO] [stderr] --> src/shapes/sphere.rs:15:27 [INFO] [stderr] | [INFO] [stderr] 15 | use crate::shapes::base::{solve_quadratic, Hitable}; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `solve_quadratic` [INFO] [stderr] --> src/shapes/sphere.rs:15:27 [INFO] [stderr] | [INFO] [stderr] 15 | use crate::shapes::base::{solve_quadratic, Hitable}; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable `hit_rad` is assigned to, but never used [INFO] [stderr] --> src/shapes/cylinder.rs:68:17 [INFO] [stderr] | [INFO] [stderr] 68 | let mut hit_rad = (orig_hit.x * orig_hit.x + orig_hit.y * orig_hit.y).sqrt(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] = note: consider using `_hit_rad` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `hit_rad` is never read [INFO] [stderr] --> src/shapes/cylinder.rs:95:17 [INFO] [stderr] | [INFO] [stderr] 95 | hit_rad = (orig_hit.x * orig_hit.x + orig_hit.y * orig_hit.y).sqrt(); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_assignments)]` on by default [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: unused variable: `u` [INFO] [stderr] --> src/shapes/cylinder.rs:120:17 [INFO] [stderr] | [INFO] [stderr] 120 | let u = phi / self.phi_max; [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_u` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `v` [INFO] [stderr] --> src/shapes/cylinder.rs:122:17 [INFO] [stderr] | [INFO] [stderr] 122 | let v = (orig_hit.z - oz_min) / (oz_max - oz_min); [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `dndu` [INFO] [stderr] --> src/shapes/cylinder.rs:146:17 [INFO] [stderr] | [INFO] [stderr] 146 | let dndu = unit_vector(&((f * F - e * G) * invEGF2 * dpdu + [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_dndu` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `dndv` [INFO] [stderr] --> src/shapes/cylinder.rs:148:17 [INFO] [stderr] | [INFO] [stderr] 148 | let dndv = unit_vector(&((g * F - f * G) * invEGF2 * dpdu + [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_dndv` [INFO] [stderr] [INFO] [stderr] warning: variable `hit_rad` is assigned to, but never used [INFO] [stderr] --> src/shapes/cylinder.rs:68:17 [INFO] [stderr] | [INFO] [stderr] 68 | let mut hit_rad = (orig_hit.x * orig_hit.x + orig_hit.y * orig_hit.y).sqrt(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] = note: consider using `_hit_rad` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `hit_rad` is never read [INFO] [stderr] --> src/shapes/cylinder.rs:95:17 [INFO] [stderr] | [INFO] [stderr] 95 | hit_rad = (orig_hit.x * orig_hit.x + orig_hit.y * orig_hit.y).sqrt(); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_assignments)]` on by default [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: unused variable: `u` [INFO] [stderr] --> src/shapes/cylinder.rs:120:17 [INFO] [stderr] | [INFO] [stderr] 120 | let u = phi / self.phi_max; [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_u` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `v` [INFO] [stderr] --> src/shapes/cylinder.rs:122:17 [INFO] [stderr] | [INFO] [stderr] 122 | let v = (orig_hit.z - oz_min) / (oz_max - oz_min); [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `dndu` [INFO] [stderr] --> src/shapes/cylinder.rs:146:17 [INFO] [stderr] | [INFO] [stderr] 146 | let dndu = unit_vector(&((f * F - e * G) * invEGF2 * dpdu + [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_dndu` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `dndv` [INFO] [stderr] --> src/shapes/cylinder.rs:148:17 [INFO] [stderr] | [INFO] [stderr] 148 | let dndv = unit_vector(&((g * F - f * G) * invEGF2 * dpdu + [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_dndv` [INFO] [stderr] [INFO] [stderr] warning: method is never used: `create` [INFO] [stderr] --> src/camera.rs:31:5 [INFO] [stderr] | [INFO] [stderr] 31 | / pub fn create( [INFO] [stderr] 32 | | look_from : Point3f, [INFO] [stderr] 33 | | look_at : Point3f, [INFO] [stderr] 34 | | up : Vec3, [INFO] [stderr] ... | [INFO] [stderr] 69 | | } [INFO] [stderr] 70 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `make_lambertian` [INFO] [stderr] --> src/material.rs:141:5 [INFO] [stderr] | [INFO] [stderr] 141 | pub fn make_lambertian(albedo: Vec3) -> Material { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `make_metal` [INFO] [stderr] --> src/material.rs:149:5 [INFO] [stderr] | [INFO] [stderr] 149 | pub fn make_metal(albedo: Vec3, fuzz: f32) -> Material { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `make_dielectric` [INFO] [stderr] --> src/material.rs:157:5 [INFO] [stderr] | [INFO] [stderr] 157 | pub fn make_dielectric(ref_idx: f32) -> Material { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `length` [INFO] [stderr] --> src/core/point.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | pub fn length(&self) -> f32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `squared_length` [INFO] [stderr] --> src/core/point.rs:41:5 [INFO] [stderr] | [INFO] [stderr] 41 | pub fn squared_length(&self) -> f32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `NTHREADS` should have a snake case name [INFO] [stderr] --> src/main.rs:112:9 [INFO] [stderr] | [INFO] [stderr] 112 | let NTHREADS = num_cpus::get() as u32; [INFO] [stderr] | ^^^^^^^^ help: convert the identifier to snake case: `nthreads` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_snake_case)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:122:5 [INFO] [stderr] | [INFO] [stderr] 122 | io::stdin().read_to_string(&mut buffer); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: structure field `zMin` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:24:9 [INFO] [stderr] | [INFO] [stderr] 24 | pub zMin: f32, [INFO] [stderr] | ^^^^ help: convert the identifier to snake case: `z_min` [INFO] [stderr] [INFO] [stderr] warning: structure field `zMax` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:25:9 [INFO] [stderr] | [INFO] [stderr] 25 | pub zMax: f32, [INFO] [stderr] | ^^^^ help: convert the identifier to snake case: `z_max` [INFO] [stderr] [INFO] [stderr] warning: variable `d2Pduu` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:132:17 [INFO] [stderr] | [INFO] [stderr] 132 | let d2Pduu = -self.phi_max * self.phi_max * Vec3 { e: [orig_hit.x, orig_hit.y, 0.0]}; [INFO] [stderr] | ^^^^^^ help: convert the identifier to snake case: `d2_pduu` [INFO] [stderr] [INFO] [stderr] warning: variable `d2Pduv` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:133:17 [INFO] [stderr] | [INFO] [stderr] 133 | let d2Pduv = Vec3 { e: [0.0, 0.0, 0.0]}; [INFO] [stderr] | ^^^^^^ help: convert the identifier to snake case: `d2_pduv` [INFO] [stderr] [INFO] [stderr] warning: variable `d2Pdvv` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:134:17 [INFO] [stderr] | [INFO] [stderr] 134 | let d2Pdvv = Vec3 { e: [0.0, 0.0, 0.0]}; [INFO] [stderr] | ^^^^^^ help: convert the identifier to snake case: `d2_pdvv` [INFO] [stderr] [INFO] [stderr] warning: variable `E` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:137:17 [INFO] [stderr] | [INFO] [stderr] 137 | let E = dot(&dpdu, &dpdu); [INFO] [stderr] | ^ help: convert the identifier to snake case: `e` [INFO] [stderr] [INFO] [stderr] warning: variable `F` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:138:17 [INFO] [stderr] | [INFO] [stderr] 138 | let F = dot(&dpdu, &dpdv); [INFO] [stderr] | ^ help: convert the identifier to snake case (notice the capitalization): `f` [INFO] [stderr] [INFO] [stderr] warning: variable `G` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:139:17 [INFO] [stderr] | [INFO] [stderr] 139 | let G = dot(&dpdv, &dpdv); [INFO] [stderr] | ^ help: convert the identifier to snake case: `g` [INFO] [stderr] [INFO] [stderr] warning: variable `N` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:140:17 [INFO] [stderr] | [INFO] [stderr] 140 | let N = unit_vector(&cross(&dpdu, &dpdv)); [INFO] [stderr] | ^ help: convert the identifier to snake case: `n` [INFO] [stderr] [INFO] [stderr] warning: variable `invEGF2` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:145:17 [INFO] [stderr] | [INFO] [stderr] 145 | let invEGF2 = 1.0 / (E * G - F * F); [INFO] [stderr] | ^^^^^^^ help: convert the identifier to snake case: `inv_egf2` [INFO] [stderr] [INFO] [stderr] warning: 25 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: method is never used: `create` [INFO] [stderr] --> src/camera.rs:31:5 [INFO] [stderr] | [INFO] [stderr] 31 | / pub fn create( [INFO] [stderr] 32 | | look_from : Point3f, [INFO] [stderr] 33 | | look_at : Point3f, [INFO] [stderr] 34 | | up : Vec3, [INFO] [stderr] ... | [INFO] [stderr] 69 | | } [INFO] [stderr] 70 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `make_lambertian` [INFO] [stderr] --> src/material.rs:141:5 [INFO] [stderr] | [INFO] [stderr] 141 | pub fn make_lambertian(albedo: Vec3) -> Material { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `make_metal` [INFO] [stderr] --> src/material.rs:149:5 [INFO] [stderr] | [INFO] [stderr] 149 | pub fn make_metal(albedo: Vec3, fuzz: f32) -> Material { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `make_dielectric` [INFO] [stderr] --> src/material.rs:157:5 [INFO] [stderr] | [INFO] [stderr] 157 | pub fn make_dielectric(ref_idx: f32) -> Material { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `length` [INFO] [stderr] --> src/core/point.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | pub fn length(&self) -> f32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `squared_length` [INFO] [stderr] --> src/core/point.rs:41:5 [INFO] [stderr] | [INFO] [stderr] 41 | pub fn squared_length(&self) -> f32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `NTHREADS` should have a snake case name [INFO] [stderr] --> src/main.rs:112:9 [INFO] [stderr] | [INFO] [stderr] 112 | let NTHREADS = num_cpus::get() as u32; [INFO] [stderr] | ^^^^^^^^ help: convert the identifier to snake case: `nthreads` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_snake_case)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:122:5 [INFO] [stderr] | [INFO] [stderr] 122 | io::stdin().read_to_string(&mut buffer); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: structure field `zMin` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:24:9 [INFO] [stderr] | [INFO] [stderr] 24 | pub zMin: f32, [INFO] [stderr] | ^^^^ help: convert the identifier to snake case: `z_min` [INFO] [stderr] [INFO] [stderr] warning: structure field `zMax` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:25:9 [INFO] [stderr] | [INFO] [stderr] 25 | pub zMax: f32, [INFO] [stderr] | ^^^^ help: convert the identifier to snake case: `z_max` [INFO] [stderr] [INFO] [stderr] warning: variable `d2Pduu` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:132:17 [INFO] [stderr] | [INFO] [stderr] 132 | let d2Pduu = -self.phi_max * self.phi_max * Vec3 { e: [orig_hit.x, orig_hit.y, 0.0]}; [INFO] [stderr] | ^^^^^^ help: convert the identifier to snake case: `d2_pduu` [INFO] [stderr] [INFO] [stderr] warning: variable `d2Pduv` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:133:17 [INFO] [stderr] | [INFO] [stderr] 133 | let d2Pduv = Vec3 { e: [0.0, 0.0, 0.0]}; [INFO] [stderr] | ^^^^^^ help: convert the identifier to snake case: `d2_pduv` [INFO] [stderr] [INFO] [stderr] warning: variable `d2Pdvv` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:134:17 [INFO] [stderr] | [INFO] [stderr] 134 | let d2Pdvv = Vec3 { e: [0.0, 0.0, 0.0]}; [INFO] [stderr] | ^^^^^^ help: convert the identifier to snake case: `d2_pdvv` [INFO] [stderr] [INFO] [stderr] warning: variable `E` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:137:17 [INFO] [stderr] | [INFO] [stderr] 137 | let E = dot(&dpdu, &dpdu); [INFO] [stderr] | ^ help: convert the identifier to snake case: `e` [INFO] [stderr] [INFO] [stderr] warning: variable `F` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:138:17 [INFO] [stderr] | [INFO] [stderr] 138 | let F = dot(&dpdu, &dpdv); [INFO] [stderr] | ^ help: convert the identifier to snake case (notice the capitalization): `f` [INFO] [stderr] [INFO] [stderr] warning: variable `G` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:139:17 [INFO] [stderr] | [INFO] [stderr] 139 | let G = dot(&dpdv, &dpdv); [INFO] [stderr] | ^ help: convert the identifier to snake case: `g` [INFO] [stderr] [INFO] [stderr] warning: variable `N` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:140:17 [INFO] [stderr] | [INFO] [stderr] 140 | let N = unit_vector(&cross(&dpdu, &dpdv)); [INFO] [stderr] | ^ help: convert the identifier to snake case: `n` [INFO] [stderr] [INFO] [stderr] warning: variable `invEGF2` should have a snake case name [INFO] [stderr] --> src/shapes/cylinder.rs:145:17 [INFO] [stderr] | [INFO] [stderr] 145 | let invEGF2 = 1.0 / (E * G - F * F); [INFO] [stderr] | ^^^^^^^ help: convert the identifier to snake case: `inv_egf2` [INFO] [stderr] [INFO] [stderr] warning: 25 warnings emitted [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 52.42s [INFO] running `"docker" "inspect" "dae2593132b2fb65e0304d5b10d56ab35b9eaa593ebabb198abebf4645218624"` [INFO] running `"docker" "rm" "-f" "dae2593132b2fb65e0304d5b10d56ab35b9eaa593ebabb198abebf4645218624"` [INFO] [stdout] dae2593132b2fb65e0304d5b10d56ab35b9eaa593ebabb198abebf4645218624