[INFO] cloning repository https://github.com/christopherwebb/rust_ray_tracer [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/christopherwebb/rust_ray_tracer" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fchristopherwebb%2Frust_ray_tracer", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fchristopherwebb%2Frust_ray_tracer'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] a1c5cbcd8f385acd0e79e3f9b3a6a30cc81b9622 [INFO] checking christopherwebb/rust_ray_tracer against beta for pr-78714 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fchristopherwebb%2Frust_ray_tracer" "/workspace/builds/worker-8/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-8/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/christopherwebb/rust_ray_tracer on toolchain beta [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [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-8/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 `Command { std: "/workspace/cargo-home/bin/cargo" "+beta" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/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" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+beta" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 93898a5a8eb818a0ed213c6932daf20202be7c2619ace6a9294d8ee0ae1d78a2 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "93898a5a8eb818a0ed213c6932daf20202be7c2619ace6a9294d8ee0ae1d78a2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "93898a5a8eb818a0ed213c6932daf20202be7c2619ace6a9294d8ee0ae1d78a2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "93898a5a8eb818a0ed213c6932daf20202be7c2619ace6a9294d8ee0ae1d78a2", kill_on_drop: false }` [INFO] [stdout] 93898a5a8eb818a0ed213c6932daf20202be7c2619ace6a9294d8ee0ae1d78a2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/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" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+beta" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 28b35749325c086a0249a5abbfdd6476397b868e3f4c20b7e658b9a6a40b13cf [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "28b35749325c086a0249a5abbfdd6476397b868e3f4c20b7e658b9a6a40b13cf", kill_on_drop: false }` [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 syn v1.0.9 [INFO] [stderr] Compiling autocfg v0.1.4 [INFO] [stderr] Checking regex-syntax v0.6.12 [INFO] [stderr] Compiling serde v1.0.97 [INFO] [stderr] Checking number_prefix v0.3.0 [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 clicolors-control v1.0.1 [INFO] [stderr] Checking termios v0.3.1 [INFO] [stderr] Checking atty v0.2.13 [INFO] [stderr] Checking num_cpus v1.10.1 [INFO] [stderr] Checking rand_core v0.5.0 [INFO] [stderr] Checking clap v2.33.0 [INFO] [stderr] Compiling quote v1.0.2 [INFO] [stderr] Checking rand v0.7.0 [INFO] [stderr] Checking regex v1.3.1 [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] [stdout] warning: unused import: `rand::thread_rng` [INFO] [stdout] --> src/vector.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use rand::thread_rng; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rand::Rng` [INFO] [stdout] --> src/vector.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use rand::Rng; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `solve_quadratic` [INFO] [stdout] --> src/shapes/sphere.rs:15:27 [INFO] [stdout] | [INFO] [stdout] 15 | use crate::shapes::base::{solve_quadratic, Hitable}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rand::thread_rng` [INFO] [stdout] --> src/vector.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use rand::thread_rng; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rand::Rng` [INFO] [stdout] --> src/vector.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use rand::Rng; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `solve_quadratic` [INFO] [stdout] --> src/shapes/sphere.rs:15:27 [INFO] [stdout] | [INFO] [stdout] 15 | use crate::shapes::base::{solve_quadratic, Hitable}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `hit_rad` is assigned to, but never used [INFO] [stdout] --> src/shapes/cylinder.rs:68:17 [INFO] [stdout] | [INFO] [stdout] 68 | let mut hit_rad = (orig_hit.x * orig_hit.x + orig_hit.y * orig_hit.y).sqrt(); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] = note: consider using `_hit_rad` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `hit_rad` is never read [INFO] [stdout] --> src/shapes/cylinder.rs:95:17 [INFO] [stdout] | [INFO] [stdout] 95 | hit_rad = (orig_hit.x * orig_hit.x + orig_hit.y * orig_hit.y).sqrt(); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `u` [INFO] [stdout] --> src/shapes/cylinder.rs:120:17 [INFO] [stdout] | [INFO] [stdout] 120 | let u = phi / self.phi_max; [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/shapes/cylinder.rs:122:17 [INFO] [stdout] | [INFO] [stdout] 122 | let v = (orig_hit.z - oz_min) / (oz_max - oz_min); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dndu` [INFO] [stdout] --> src/shapes/cylinder.rs:145:17 [INFO] [stdout] | [INFO] [stdout] 145 | let dndu = &((f * F - e * G) * invEGF2 * dpdu + [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_dndu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dndv` [INFO] [stdout] --> src/shapes/cylinder.rs:147:17 [INFO] [stdout] | [INFO] [stdout] 147 | let dndv = &((g * F - f * G) * invEGF2 * dpdu + [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_dndv` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `hit_rad` is assigned to, but never used [INFO] [stdout] --> src/shapes/cylinder.rs:68:17 [INFO] [stdout] | [INFO] [stdout] 68 | let mut hit_rad = (orig_hit.x * orig_hit.x + orig_hit.y * orig_hit.y).sqrt(); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] = note: consider using `_hit_rad` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `hit_rad` is never read [INFO] [stdout] --> src/shapes/cylinder.rs:95:17 [INFO] [stdout] | [INFO] [stdout] 95 | hit_rad = (orig_hit.x * orig_hit.x + orig_hit.y * orig_hit.y).sqrt(); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `u` [INFO] [stdout] --> src/shapes/cylinder.rs:120:17 [INFO] [stdout] | [INFO] [stdout] 120 | let u = phi / self.phi_max; [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/shapes/cylinder.rs:122:17 [INFO] [stdout] | [INFO] [stdout] 122 | let v = (orig_hit.z - oz_min) / (oz_max - oz_min); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dndu` [INFO] [stdout] --> src/shapes/cylinder.rs:145:17 [INFO] [stdout] | [INFO] [stdout] 145 | let dndu = &((f * F - e * G) * invEGF2 * dpdu + [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_dndu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dndv` [INFO] [stdout] --> src/shapes/cylinder.rs:147:17 [INFO] [stdout] | [INFO] [stdout] 147 | let dndv = &((g * F - f * G) * invEGF2 * dpdu + [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_dndv` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `dot` [INFO] [stdout] --> src/core/normal.rs:52:8 [INFO] [stdout] | [INFO] [stdout] 52 | pub fn dot(l: &Normal3T, r: &Normal3T) -> T [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `gen_rotate` [INFO] [stdout] --> src/core/transforms.rs:115:8 [INFO] [stdout] | [INFO] [stdout] 115 | pub fn gen_rotate(theta: f32, axis: Vector3f) -> Transform { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `dot` [INFO] [stdout] --> src/core/normal.rs:52:8 [INFO] [stdout] | [INFO] [stdout] 52 | pub fn dot(l: &Normal3T, r: &Normal3T) -> T [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `gen_rotate` [INFO] [stdout] --> src/core/transforms.rs:115:8 [INFO] [stdout] | [INFO] [stdout] 115 | pub fn gen_rotate(theta: f32, axis: Vector3f) -> Transform { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `zMin` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | pub zMin: f32, [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `z_min` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `zMax` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | pub zMax: f32, [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `z_max` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `d2Pduu` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:131:17 [INFO] [stdout] | [INFO] [stdout] 131 | let d2Pduu = -self.phi_max * self.phi_max * Vector3f { x: orig_hit.x, y: orig_hit.y, z: 0.0 }; [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `d2_pduu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `d2Pduv` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:132:17 [INFO] [stdout] | [INFO] [stdout] 132 | let d2Pduv = Vector3f { x: 0.0, y: 0.0, z: 0.0 }; [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `d2_pduv` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `d2Pdvv` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:133:17 [INFO] [stdout] | [INFO] [stdout] 133 | let d2Pdvv = Vector3f { x: 0.0, y: 0.0, z: 0.0 }; [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `d2_pdvv` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `E` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:136:17 [INFO] [stdout] | [INFO] [stdout] 136 | let E = dot_vv(&dpdu, &dpdu); [INFO] [stdout] | ^ help: convert the identifier to snake case: `e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `F` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:137:17 [INFO] [stdout] | [INFO] [stdout] 137 | let F = dot_vv(&dpdu, &dpdv); [INFO] [stdout] | ^ help: convert the identifier to snake case (notice the capitalization): `f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `G` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:138:17 [INFO] [stdout] | [INFO] [stdout] 138 | let G = dot_vv(&dpdv, &dpdv); [INFO] [stdout] | ^ help: convert the identifier to snake case: `g` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `N` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:139:17 [INFO] [stdout] | [INFO] [stdout] 139 | let N = &cross(&dpdu, &dpdv).unit_vector(); [INFO] [stdout] | ^ help: convert the identifier to snake case: `n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `invEGF2` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:144:17 [INFO] [stdout] | [INFO] [stdout] 144 | let invEGF2 = 1.0 / (E * G - F * F); [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `inv_egf2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `zMin` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | pub zMin: f32, [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `z_min` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `zMax` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | pub zMax: f32, [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `z_max` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `d2Pduu` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:131:17 [INFO] [stdout] | [INFO] [stdout] 131 | let d2Pduu = -self.phi_max * self.phi_max * Vector3f { x: orig_hit.x, y: orig_hit.y, z: 0.0 }; [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `d2_pduu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `d2Pduv` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:132:17 [INFO] [stdout] | [INFO] [stdout] 132 | let d2Pduv = Vector3f { x: 0.0, y: 0.0, z: 0.0 }; [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `d2_pduv` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `d2Pdvv` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:133:17 [INFO] [stdout] | [INFO] [stdout] 133 | let d2Pdvv = Vector3f { x: 0.0, y: 0.0, z: 0.0 }; [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `d2_pdvv` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `E` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:136:17 [INFO] [stdout] | [INFO] [stdout] 136 | let E = dot_vv(&dpdu, &dpdu); [INFO] [stdout] | ^ help: convert the identifier to snake case: `e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `F` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:137:17 [INFO] [stdout] | [INFO] [stdout] 137 | let F = dot_vv(&dpdu, &dpdv); [INFO] [stdout] | ^ help: convert the identifier to snake case (notice the capitalization): `f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `G` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:138:17 [INFO] [stdout] | [INFO] [stdout] 138 | let G = dot_vv(&dpdv, &dpdv); [INFO] [stdout] | ^ help: convert the identifier to snake case: `g` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `N` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:139:17 [INFO] [stdout] | [INFO] [stdout] 139 | let N = &cross(&dpdu, &dpdv).unit_vector(); [INFO] [stdout] | ^ help: convert the identifier to snake case: `n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `invEGF2` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:144:17 [INFO] [stdout] | [INFO] [stdout] 144 | let invEGF2 = 1.0 / (E * G - F * F); [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `inv_egf2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 21 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 21 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Serialize` [INFO] [stdout] --> examples/cylinders.rs:4:13 [INFO] [stdout] | [INFO] [stdout] 4 | use serde::{Serialize}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Result`, `Value` [INFO] [stdout] --> examples/cylinders.rs:5:18 [INFO] [stdout] | [INFO] [stdout] 5 | use serde_json::{Result, Value}; [INFO] [stdout] | ^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rust_ray_tracing::shapes::base::Hitable` [INFO] [stdout] --> examples/cylinders.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use rust_ray_tracing::shapes::base::Hitable; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `MovingSphere`, `Sphere` [INFO] [stdout] --> examples/cylinders.rs:19:40 [INFO] [stdout] | [INFO] [stdout] 19 | use rust_ray_tracing::shapes::sphere::{Sphere, MovingSphere}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Serialize` [INFO] [stdout] --> examples/blue_red.rs:4:13 [INFO] [stdout] | [INFO] [stdout] 4 | use serde::{Serialize}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Result`, `Value` [INFO] [stdout] --> examples/blue_red.rs:5:18 [INFO] [stdout] | [INFO] [stdout] 5 | use serde_json::{Result, Value}; [INFO] [stdout] | ^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rust_ray_tracing::shapes::base::Hitable` [INFO] [stdout] --> examples/blue_red.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use rust_ray_tracing::shapes::base::Hitable; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rust_ray_tracing::shapes::cylinder::Cylinder` [INFO] [stdout] --> examples/blue_red.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | use rust_ray_tracing::shapes::cylinder::Cylinder; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MovingSphere` [INFO] [stdout] --> examples/blue_red.rs:19:48 [INFO] [stdout] | [INFO] [stdout] 19 | use rust_ray_tracing::shapes::sphere::{Sphere, MovingSphere}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Serialize` [INFO] [stdout] --> examples/3balls.rs:4:13 [INFO] [stdout] | [INFO] [stdout] 4 | use serde::{Serialize}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Result`, `Value` [INFO] [stdout] --> examples/3balls.rs:5:18 [INFO] [stdout] | [INFO] [stdout] 5 | use serde_json::{Result, Value}; [INFO] [stdout] | ^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rust_ray_tracing::shapes::base::Hitable` [INFO] [stdout] --> examples/3balls.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use rust_ray_tracing::shapes::base::Hitable; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rust_ray_tracing::shapes::cylinder::Cylinder` [INFO] [stdout] --> examples/3balls.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | use rust_ray_tracing::shapes::cylinder::Cylinder; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MovingSphere` [INFO] [stdout] --> examples/3balls.rs:19:48 [INFO] [stdout] | [INFO] [stdout] 19 | use rust_ray_tracing::shapes::sphere::{Sphere, MovingSphere}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Read` [INFO] [stdout] --> src/bin/rust_ray_assemble.rs:1:21 [INFO] [stdout] | [INFO] [stdout] 1 | use std::io::{self, Read}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 5 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Serialize` [INFO] [stdout] --> examples/final_weekend.rs:6:13 [INFO] [stdout] | [INFO] [stdout] 6 | use serde::{Serialize}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Result`, `Value` [INFO] [stdout] --> examples/final_weekend.rs:7:18 [INFO] [stdout] | [INFO] [stdout] 7 | use serde_json::{Result, Value}; [INFO] [stdout] | ^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rust_ray_tracing::shapes::base::Hitable` [INFO] [stdout] --> examples/final_weekend.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | use rust_ray_tracing::shapes::base::Hitable; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rust_ray_tracing::shapes::cylinder::Cylinder` [INFO] [stdout] --> examples/final_weekend.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use rust_ray_tracing::shapes::cylinder::Cylinder; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Read` [INFO] [stdout] --> src/bin/rust_ray_assemble.rs:1:21 [INFO] [stdout] | [INFO] [stdout] 1 | use std::io::{self, Read}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 5 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `solve_quadratic` [INFO] [stdout] --> src/shapes/sphere.rs:15:27 [INFO] [stdout] | [INFO] [stdout] 15 | use crate::shapes::base::{solve_quadratic, Hitable}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rand::thread_rng` [INFO] [stdout] --> src/vector.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use rand::thread_rng; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rand::Rng` [INFO] [stdout] --> src/vector.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use rand::Rng; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `solve_quadratic` [INFO] [stdout] --> src/shapes/sphere.rs:15:27 [INFO] [stdout] | [INFO] [stdout] 15 | use crate::shapes::base::{solve_quadratic, Hitable}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rand::thread_rng` [INFO] [stdout] --> src/vector.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use rand::thread_rng; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rand::Rng` [INFO] [stdout] --> src/vector.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use rand::Rng; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `hit_rad` is assigned to, but never used [INFO] [stdout] --> src/shapes/cylinder.rs:68:17 [INFO] [stdout] | [INFO] [stdout] 68 | let mut hit_rad = (orig_hit.x * orig_hit.x + orig_hit.y * orig_hit.y).sqrt(); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] = note: consider using `_hit_rad` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `hit_rad` is never read [INFO] [stdout] --> src/shapes/cylinder.rs:95:17 [INFO] [stdout] | [INFO] [stdout] 95 | hit_rad = (orig_hit.x * orig_hit.x + orig_hit.y * orig_hit.y).sqrt(); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `u` [INFO] [stdout] --> src/shapes/cylinder.rs:120:17 [INFO] [stdout] | [INFO] [stdout] 120 | let u = phi / self.phi_max; [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/shapes/cylinder.rs:122:17 [INFO] [stdout] | [INFO] [stdout] 122 | let v = (orig_hit.z - oz_min) / (oz_max - oz_min); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dndu` [INFO] [stdout] --> src/shapes/cylinder.rs:145:17 [INFO] [stdout] | [INFO] [stdout] 145 | let dndu = &((f * F - e * G) * invEGF2 * dpdu + [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_dndu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dndv` [INFO] [stdout] --> src/shapes/cylinder.rs:147:17 [INFO] [stdout] | [INFO] [stdout] 147 | let dndv = &((g * F - f * G) * invEGF2 * dpdu + [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_dndv` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `hit_rad` is assigned to, but never used [INFO] [stdout] --> src/shapes/cylinder.rs:68:17 [INFO] [stdout] | [INFO] [stdout] 68 | let mut hit_rad = (orig_hit.x * orig_hit.x + orig_hit.y * orig_hit.y).sqrt(); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] = note: consider using `_hit_rad` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `hit_rad` is never read [INFO] [stdout] --> src/shapes/cylinder.rs:95:17 [INFO] [stdout] | [INFO] [stdout] 95 | hit_rad = (orig_hit.x * orig_hit.x + orig_hit.y * orig_hit.y).sqrt(); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `u` [INFO] [stdout] --> src/shapes/cylinder.rs:120:17 [INFO] [stdout] | [INFO] [stdout] 120 | let u = phi / self.phi_max; [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/shapes/cylinder.rs:122:17 [INFO] [stdout] | [INFO] [stdout] 122 | let v = (orig_hit.z - oz_min) / (oz_max - oz_min); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dndu` [INFO] [stdout] --> src/shapes/cylinder.rs:145:17 [INFO] [stdout] | [INFO] [stdout] 145 | let dndu = &((f * F - e * G) * invEGF2 * dpdu + [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_dndu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dndv` [INFO] [stdout] --> src/shapes/cylinder.rs:147:17 [INFO] [stdout] | [INFO] [stdout] 147 | let dndv = &((g * F - f * G) * invEGF2 * dpdu + [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_dndv` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `create` [INFO] [stdout] --> src/camera.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 29 | pub fn create( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `make_lambertian` [INFO] [stdout] --> src/material.rs:144:12 [INFO] [stdout] | [INFO] [stdout] 144 | pub fn make_lambertian(albedo: Colour) -> Material { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `make_metal` [INFO] [stdout] --> src/material.rs:152:12 [INFO] [stdout] | [INFO] [stdout] 152 | pub fn make_metal(albedo: Colour, fuzz: f32) -> Material { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `make_dielectric` [INFO] [stdout] --> src/material.rs:160:12 [INFO] [stdout] | [INFO] [stdout] 160 | pub fn make_dielectric(ref_idx: f32) -> Material { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `dot` [INFO] [stdout] --> src/vector.rs:256:8 [INFO] [stdout] | [INFO] [stdout] 256 | pub fn dot(l: &Vec3, r: &Vec3) -> f32 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `cross` [INFO] [stdout] --> src/vector.rs:260:8 [INFO] [stdout] | [INFO] [stdout] 260 | pub fn cross(l: &Vec3, r: &Vec3) -> Vec3 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `unit_vector` [INFO] [stdout] --> src/vector.rs:268:8 [INFO] [stdout] | [INFO] [stdout] 268 | pub fn unit_vector(vec : &Vec3) -> Vec3 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `length` [INFO] [stdout] --> src/core/point.rs:35:12 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn length(&self) -> f32 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `squared_length` [INFO] [stdout] --> src/core/point.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 39 | pub fn squared_length(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias is never used: `Vector2i` [INFO] [stdout] --> src/core/vector.rs:39:1 [INFO] [stdout] | [INFO] [stdout] 39 | pub type Vector2i = Vector2T; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias is never used: `Vector2f` [INFO] [stdout] --> src/core/vector.rs:40:1 [INFO] [stdout] | [INFO] [stdout] 40 | pub type Vector2f = Vector2T; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias is never used: `Vector3i` [INFO] [stdout] --> src/core/vector.rs:41:1 [INFO] [stdout] | [INFO] [stdout] 41 | pub type Vector3i = Vector3T; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `length` [INFO] [stdout] --> src/core/vector.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn length(&self) -> f32 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `squared_length` [INFO] [stdout] --> src/core/vector.rs:49:12 [INFO] [stdout] | [INFO] [stdout] 49 | pub fn squared_length(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias is never used: `Normal2i` [INFO] [stdout] --> src/core/normal.rs:33:1 [INFO] [stdout] | [INFO] [stdout] 33 | pub type Normal2i = Normal2T; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias is never used: `Normal2f` [INFO] [stdout] --> src/core/normal.rs:34:1 [INFO] [stdout] | [INFO] [stdout] 34 | pub type Normal2f = Normal2T; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias is never used: `Normal3i` [INFO] [stdout] --> src/core/normal.rs:35:1 [INFO] [stdout] | [INFO] [stdout] 35 | pub type Normal3i = Normal3T; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `dot` [INFO] [stdout] --> src/core/normal.rs:52:8 [INFO] [stdout] | [INFO] [stdout] 52 | pub fn dot(l: &Normal3T, r: &Normal3T) -> T [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias is never used: `Matrix4x4i` [INFO] [stdout] --> src/core/matrix.rs:21:1 [INFO] [stdout] | [INFO] [stdout] 21 | pub type Matrix4x4i = Matrix4x4; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `transpose` [INFO] [stdout] --> src/core/matrix.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn transpose(self) -> Matrix4x4f { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `indentity` [INFO] [stdout] --> src/core/matrix.rs:37:8 [INFO] [stdout] | [INFO] [stdout] 37 | pub fn indentity() -> Matrix4x4f { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `gen_translate` [INFO] [stdout] --> src/core/transforms.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn gen_translate(delta: Vector3f) -> Transform { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `gen_scale` [INFO] [stdout] --> src/core/transforms.rs:43:8 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn gen_scale(x: f32, y: f32, z: f32) -> Transform { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `gen_rotate_x` [INFO] [stdout] --> src/core/transforms.rs:64:8 [INFO] [stdout] | [INFO] [stdout] 64 | pub fn gen_rotate_x(theta: f32) -> Transform { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `gen_rotate_y` [INFO] [stdout] --> src/core/transforms.rs:81:8 [INFO] [stdout] | [INFO] [stdout] 81 | pub fn gen_rotate_y(theta: f32) -> Transform { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `gen_rotate_z` [INFO] [stdout] --> src/core/transforms.rs:98:8 [INFO] [stdout] | [INFO] [stdout] 98 | pub fn gen_rotate_z(theta: f32) -> Transform { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `gen_rotate` [INFO] [stdout] --> src/core/transforms.rs:115:8 [INFO] [stdout] | [INFO] [stdout] 115 | pub fn gen_rotate(theta: f32, axis: Vector3f) -> Transform { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `dot_nv` [INFO] [stdout] --> src/core/mod.rs:72:8 [INFO] [stdout] | [INFO] [stdout] 72 | pub fn dot_nv(l: &Normal3T, r: &Vector3T) -> T [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `dot_nn` [INFO] [stdout] --> src/core/mod.rs:81:8 [INFO] [stdout] | [INFO] [stdout] 81 | pub fn dot_nn(l: &Normal3T, r: &Normal3T) -> T [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `NTHREADS` should have a snake case name [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | let NTHREADS = num_cpus::get() as u32; [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `nthreads` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/main.rs:117:5 [INFO] [stdout] | [INFO] [stdout] 117 | io::stdin().read_to_string(&mut buffer); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `zMin` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | pub zMin: f32, [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `z_min` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `zMax` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | pub zMax: f32, [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `z_max` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `d2Pduu` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:131:17 [INFO] [stdout] | [INFO] [stdout] 131 | let d2Pduu = -self.phi_max * self.phi_max * Vector3f { x: orig_hit.x, y: orig_hit.y, z: 0.0 }; [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `d2_pduu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `d2Pduv` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:132:17 [INFO] [stdout] | [INFO] [stdout] 132 | let d2Pduv = Vector3f { x: 0.0, y: 0.0, z: 0.0 }; [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `d2_pduv` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `d2Pdvv` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:133:17 [INFO] [stdout] | [INFO] [stdout] 133 | let d2Pdvv = Vector3f { x: 0.0, y: 0.0, z: 0.0 }; [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `d2_pdvv` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `E` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:136:17 [INFO] [stdout] | [INFO] [stdout] 136 | let E = dot_vv(&dpdu, &dpdu); [INFO] [stdout] | ^ help: convert the identifier to snake case: `e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `F` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:137:17 [INFO] [stdout] | [INFO] [stdout] 137 | let F = dot_vv(&dpdu, &dpdv); [INFO] [stdout] | ^ help: convert the identifier to snake case (notice the capitalization): `f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `G` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:138:17 [INFO] [stdout] | [INFO] [stdout] 138 | let G = dot_vv(&dpdv, &dpdv); [INFO] [stdout] | ^ help: convert the identifier to snake case: `g` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `N` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:139:17 [INFO] [stdout] | [INFO] [stdout] 139 | let N = &cross(&dpdu, &dpdv).unit_vector(); [INFO] [stdout] | ^ help: convert the identifier to snake case: `n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `invEGF2` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:144:17 [INFO] [stdout] | [INFO] [stdout] 144 | let invEGF2 = 1.0 / (E * G - F * F); [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `inv_egf2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `create` [INFO] [stdout] --> src/camera.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 29 | pub fn create( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `make_lambertian` [INFO] [stdout] --> src/material.rs:144:12 [INFO] [stdout] | [INFO] [stdout] 144 | pub fn make_lambertian(albedo: Colour) -> Material { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `make_metal` [INFO] [stdout] --> src/material.rs:152:12 [INFO] [stdout] | [INFO] [stdout] 152 | pub fn make_metal(albedo: Colour, fuzz: f32) -> Material { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `make_dielectric` [INFO] [stdout] --> src/material.rs:160:12 [INFO] [stdout] | [INFO] [stdout] 160 | pub fn make_dielectric(ref_idx: f32) -> Material { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `dot` [INFO] [stdout] --> src/vector.rs:256:8 [INFO] [stdout] | [INFO] [stdout] 256 | pub fn dot(l: &Vec3, r: &Vec3) -> f32 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `cross` [INFO] [stdout] --> src/vector.rs:260:8 [INFO] [stdout] | [INFO] [stdout] 260 | pub fn cross(l: &Vec3, r: &Vec3) -> Vec3 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `unit_vector` [INFO] [stdout] --> src/vector.rs:268:8 [INFO] [stdout] | [INFO] [stdout] 268 | pub fn unit_vector(vec : &Vec3) -> Vec3 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `length` [INFO] [stdout] --> src/core/point.rs:35:12 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn length(&self) -> f32 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `squared_length` [INFO] [stdout] --> src/core/point.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 39 | pub fn squared_length(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias is never used: `Vector2i` [INFO] [stdout] --> src/core/vector.rs:39:1 [INFO] [stdout] | [INFO] [stdout] 39 | pub type Vector2i = Vector2T; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias is never used: `Vector2f` [INFO] [stdout] --> src/core/vector.rs:40:1 [INFO] [stdout] | [INFO] [stdout] 40 | pub type Vector2f = Vector2T; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias is never used: `Vector3i` [INFO] [stdout] --> src/core/vector.rs:41:1 [INFO] [stdout] | [INFO] [stdout] 41 | pub type Vector3i = Vector3T; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `length` [INFO] [stdout] --> src/core/vector.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn length(&self) -> f32 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `squared_length` [INFO] [stdout] --> src/core/vector.rs:49:12 [INFO] [stdout] | [INFO] [stdout] 49 | pub fn squared_length(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias is never used: `Normal2i` [INFO] [stdout] --> src/core/normal.rs:33:1 [INFO] [stdout] | [INFO] [stdout] 33 | pub type Normal2i = Normal2T; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias is never used: `Normal2f` [INFO] [stdout] --> src/core/normal.rs:34:1 [INFO] [stdout] | [INFO] [stdout] 34 | pub type Normal2f = Normal2T; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias is never used: `Normal3i` [INFO] [stdout] --> src/core/normal.rs:35:1 [INFO] [stdout] | [INFO] [stdout] 35 | pub type Normal3i = Normal3T; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `dot` [INFO] [stdout] --> src/core/normal.rs:52:8 [INFO] [stdout] | [INFO] [stdout] 52 | pub fn dot(l: &Normal3T, r: &Normal3T) -> T [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias is never used: `Matrix4x4i` [INFO] [stdout] --> src/core/matrix.rs:21:1 [INFO] [stdout] | [INFO] [stdout] 21 | pub type Matrix4x4i = Matrix4x4; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `transpose` [INFO] [stdout] --> src/core/matrix.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn transpose(self) -> Matrix4x4f { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `indentity` [INFO] [stdout] --> src/core/matrix.rs:37:8 [INFO] [stdout] | [INFO] [stdout] 37 | pub fn indentity() -> Matrix4x4f { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `gen_translate` [INFO] [stdout] --> src/core/transforms.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn gen_translate(delta: Vector3f) -> Transform { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `gen_scale` [INFO] [stdout] --> src/core/transforms.rs:43:8 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn gen_scale(x: f32, y: f32, z: f32) -> Transform { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `gen_rotate_x` [INFO] [stdout] --> src/core/transforms.rs:64:8 [INFO] [stdout] | [INFO] [stdout] 64 | pub fn gen_rotate_x(theta: f32) -> Transform { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `gen_rotate_y` [INFO] [stdout] --> src/core/transforms.rs:81:8 [INFO] [stdout] | [INFO] [stdout] 81 | pub fn gen_rotate_y(theta: f32) -> Transform { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `gen_rotate_z` [INFO] [stdout] --> src/core/transforms.rs:98:8 [INFO] [stdout] | [INFO] [stdout] 98 | pub fn gen_rotate_z(theta: f32) -> Transform { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `gen_rotate` [INFO] [stdout] --> src/core/transforms.rs:115:8 [INFO] [stdout] | [INFO] [stdout] 115 | pub fn gen_rotate(theta: f32, axis: Vector3f) -> Transform { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `dot_nv` [INFO] [stdout] --> src/core/mod.rs:72:8 [INFO] [stdout] | [INFO] [stdout] 72 | pub fn dot_nv(l: &Normal3T, r: &Vector3T) -> T [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `dot_nn` [INFO] [stdout] --> src/core/mod.rs:81:8 [INFO] [stdout] | [INFO] [stdout] 81 | pub fn dot_nn(l: &Normal3T, r: &Normal3T) -> T [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `NTHREADS` should have a snake case name [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | let NTHREADS = num_cpus::get() as u32; [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `nthreads` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 50 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/main.rs:117:5 [INFO] [stdout] | [INFO] [stdout] 117 | io::stdin().read_to_string(&mut buffer); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `zMin` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | pub zMin: f32, [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `z_min` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `zMax` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | pub zMax: f32, [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `z_max` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `d2Pduu` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:131:17 [INFO] [stdout] | [INFO] [stdout] 131 | let d2Pduu = -self.phi_max * self.phi_max * Vector3f { x: orig_hit.x, y: orig_hit.y, z: 0.0 }; [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `d2_pduu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `d2Pduv` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:132:17 [INFO] [stdout] | [INFO] [stdout] 132 | let d2Pduv = Vector3f { x: 0.0, y: 0.0, z: 0.0 }; [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `d2_pduv` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `d2Pdvv` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:133:17 [INFO] [stdout] | [INFO] [stdout] 133 | let d2Pdvv = Vector3f { x: 0.0, y: 0.0, z: 0.0 }; [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `d2_pdvv` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `E` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:136:17 [INFO] [stdout] | [INFO] [stdout] 136 | let E = dot_vv(&dpdu, &dpdu); [INFO] [stdout] | ^ help: convert the identifier to snake case: `e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `F` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:137:17 [INFO] [stdout] | [INFO] [stdout] 137 | let F = dot_vv(&dpdu, &dpdv); [INFO] [stdout] | ^ help: convert the identifier to snake case (notice the capitalization): `f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `G` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:138:17 [INFO] [stdout] | [INFO] [stdout] 138 | let G = dot_vv(&dpdv, &dpdv); [INFO] [stdout] | ^ help: convert the identifier to snake case: `g` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `N` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:139:17 [INFO] [stdout] | [INFO] [stdout] 139 | let N = &cross(&dpdu, &dpdv).unit_vector(); [INFO] [stdout] | ^ help: convert the identifier to snake case: `n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `invEGF2` should have a snake case name [INFO] [stdout] --> src/shapes/cylinder.rs:144:17 [INFO] [stdout] | [INFO] [stdout] 144 | let invEGF2 = 1.0 / (E * G - F * F); [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `inv_egf2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 50 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 40.16s [INFO] running `Command { std: "docker" "inspect" "28b35749325c086a0249a5abbfdd6476397b868e3f4c20b7e658b9a6a40b13cf", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "28b35749325c086a0249a5abbfdd6476397b868e3f4c20b7e658b9a6a40b13cf", kill_on_drop: false }` [INFO] [stdout] 28b35749325c086a0249a5abbfdd6476397b868e3f4c20b7e658b9a6a40b13cf