[INFO] cloning repository https://github.com/Albu231311/Raytracing [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Albu231311/Raytracing" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAlbu231311%2FRaytracing", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAlbu231311%2FRaytracing'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 1d706d84bc3a88f9763e000b7f4940b8b25393f0 [INFO] linting Albu231311/Raytracing against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAlbu231311%2FRaytracing" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Albu231311/Raytracing [INFO] finished tweaking git repo https://github.com/Albu231311/Raytracing [INFO] tweaked toml for git repo https://github.com/Albu231311/Raytracing written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Albu231311/Raytracing on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/Albu231311/Raytracing already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded cmake v0.1.54 [INFO] [stderr] Downloaded regex v1.11.3 [INFO] [stderr] Downloaded cc v1.2.39 [INFO] [stderr] Downloaded raylib v5.5.1 [INFO] [stderr] Downloaded regex-automata v0.4.11 [INFO] [stderr] Downloaded libc v0.2.176 [INFO] [stderr] Downloaded raylib-sys v5.5.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 25a43834da3794dab863b699ba4cf09b52e044066eea44d2fdc7c6bde8bc0631 [INFO] running `Command { std: "docker" "start" "-a" "25a43834da3794dab863b699ba4cf09b52e044066eea44d2fdc7c6bde8bc0631", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "25a43834da3794dab863b699ba4cf09b52e044066eea44d2fdc7c6bde8bc0631", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "25a43834da3794dab863b699ba4cf09b52e044066eea44d2fdc7c6bde8bc0631", kill_on_drop: false }` [INFO] [stdout] 25a43834da3794dab863b699ba4cf09b52e044066eea44d2fdc7c6bde8bc0631 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 4d5d6b4715061eedfdb4b57aa4f108a79f614b51b997818e541b44c67f8da613 [INFO] running `Command { std: "docker" "start" "-a" "4d5d6b4715061eedfdb4b57aa4f108a79f614b51b997818e541b44c67f8da613", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.101 [INFO] [stderr] Compiling unicode-ident v1.0.19 [INFO] [stderr] Compiling glob v0.3.3 [INFO] [stderr] Checking cfg-if v1.0.3 [INFO] [stderr] Compiling libc v0.2.176 [INFO] [stderr] Compiling prettyplease v0.2.37 [INFO] [stderr] Compiling memchr v2.7.6 [INFO] [stderr] Compiling regex-syntax v0.8.6 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling find-msvc-tools v0.1.2 [INFO] [stderr] Compiling bindgen v0.70.1 [INFO] [stderr] Compiling crc32fast v1.5.0 [INFO] [stderr] Checking adler2 v2.0.1 [INFO] [stderr] Compiling bitflags v2.9.4 [INFO] [stderr] Compiling log v0.4.28 [INFO] [stderr] Compiling libloading v0.8.9 [INFO] [stderr] Checking miniz_oxide v0.8.9 [INFO] [stderr] Checking weezl v0.1.10 [INFO] [stderr] Compiling cc v1.2.39 [INFO] [stderr] Compiling itertools v0.13.0 [INFO] [stderr] Checking half v2.6.0 [INFO] [stderr] Checking fdeflate v0.3.7 [INFO] [stderr] Checking rayon v1.11.0 [INFO] [stderr] Checking zune-inflate v0.2.54 [INFO] [stderr] Checking lebe v0.5.3 [INFO] [stderr] Checking bytemuck v1.23.2 [INFO] [stderr] Checking bit_field v0.10.3 [INFO] [stderr] Checking smallvec v1.15.1 [INFO] [stderr] Checking gif v0.13.3 [INFO] [stderr] Compiling seq-macro v0.3.6 [INFO] [stderr] Checking flate2 v1.1.2 [INFO] [stderr] Compiling clang-sys v1.8.1 [INFO] [stderr] Checking qoi v0.4.1 [INFO] [stderr] Checking exr v1.73.0 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Compiling regex-automata v0.4.11 [INFO] [stderr] Checking png v0.17.16 [INFO] [stderr] Compiling syn v2.0.106 [INFO] [stderr] Compiling cmake v0.1.54 [INFO] [stderr] Compiling regex v1.11.3 [INFO] [stderr] Compiling cexpr v0.6.0 [INFO] [stderr] Checking jpeg-decoder v0.3.2 [INFO] [stderr] Checking tiff v0.9.1 [INFO] [stderr] Checking image v0.24.9 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Compiling raylib-sys v5.5.1 [INFO] [stderr] Checking raylib v5.5.1 [INFO] [stderr] Checking proyecto2_raytracing v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `BlockType` [INFO] [stdout] --> src/raytracer.rs:7:34 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::block::{BlockManager, BlockType}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::vector3::Vector3` [INFO] [stdout] --> src/world.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::vector3::Vector3; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::cube::Cube` [INFO] [stdout] --> src/world.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::cube::Cube; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BlockType` [INFO] [stdout] --> src/raytracer.rs:7:34 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::block::{BlockManager, BlockType}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::vector3::Vector3` [INFO] [stdout] --> src/world.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::vector3::Vector3; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::cube::Cube` [INFO] [stdout] --> src/world.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::cube::Cube; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `normal` is never read [INFO] [stdout] --> src/cube.rs:85:26 [INFO] [stdout] | [INFO] [stdout] 85 | let mut normal = Vector3::zero(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `normal` is never read [INFO] [stdout] --> src/cube.rs:85:26 [INFO] [stdout] | [INFO] [stdout] 85 | let mut normal = Vector3::zero(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `normal` is never read [INFO] [stdout] --> src/cube.rs:224:26 [INFO] [stdout] | [INFO] [stdout] 224 | let mut normal = Vector3::zero(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `normal` is never read [INFO] [stdout] --> src/cube.rs:224:26 [INFO] [stdout] | [INFO] [stdout] 224 | let mut normal = Vector3::zero(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `closest_t` is never read [INFO] [stdout] --> src/raytracer.rs:79:13 [INFO] [stdout] | [INFO] [stdout] 79 | closest_t = hit.t; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `closest_t` is never read [INFO] [stdout] --> src/raytracer.rs:79:13 [INFO] [stdout] | [INFO] [stdout] 79 | closest_t = hit.t; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `material` is never read [INFO] [stdout] --> src/ray.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 24 | pub struct HitRecord { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 30 | pub material: Option, // Complete material information for enhanced rendering [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `HitRecord` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/ray.rs:68:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl HitRecord { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn get_albedo(&self) -> Vector3 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | pub fn get_specular(&self) -> Vector3 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn get_transparency(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub fn get_reflectivity(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 100 | pub fn get_roughness(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 108 | pub fn get_metallic(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 116 | pub fn is_transparent(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn is_reflective(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `near` and `far` are never read [INFO] [stdout] --> src/camera.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Camera { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 11 | pub near: f32, [INFO] [stdout] | ^^^^ [INFO] [stdout] 12 | pub far: f32, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/cube.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 21 | impl MultiFaceCube { [INFO] [stdout] | ------------------ associated function in this implementation [INFO] [stdout] 22 | pub fn new(min: Vector3, max: Vector3, materials: [Material; 6]) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `block_manager` is never read [INFO] [stdout] --> src/raytracer.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct Scene { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] ... [INFO] [stdout] 17 | pub block_manager: BlockManager, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `solid_color` is never used [INFO] [stdout] --> src/texture.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 12 | impl Texture { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] 13 | // Create a solid color texture (fallback) [INFO] [stdout] 14 | pub fn solid_color(color: Vector3) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `specular`, `transparency`, `reflectivity`, `roughness`, and `metallic` are never read [INFO] [stdout] --> src/texture.rs:70:9 [INFO] [stdout] | [INFO] [stdout] 67 | pub struct Material { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 70 | pub specular: Vector3, // Specular reflectance color [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 71 | pub transparency: f32, // 0.0 = opaque, 1.0 = fully transparent [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 72 | pub reflectivity: f32, // Mirror-like reflection strength (0.0 to 1.0) [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 73 | pub roughness: f32, // Surface roughness (0.0 = mirror, 1.0 = completely rough) [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 74 | pub metallic: f32, // Metallic property (0.0 = dielectric, 1.0 = metallic) [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Material` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `with_texture`, `solid_color`, `get_specular_color`, `is_transparent`, `is_reflective`, and `get_effective_reflectivity` are never used [INFO] [stdout] --> src/texture.rs:100:12 [INFO] [stdout] | [INFO] [stdout] 77 | impl Material { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 100 | pub fn with_texture(texture: Texture) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 112 | pub fn solid_color(color: Vector3) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 139 | pub fn get_specular_color(&self) -> Vector3 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 144 | pub fn is_transparent(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 149 | pub fn is_reflective(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 154 | pub fn get_effective_reflectivity(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `get_all_types` is never used [INFO] [stdout] --> src/block.rs:224:12 [INFO] [stdout] | [INFO] [stdout] 21 | impl BlockManager { [INFO] [stdout] | ----------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 224 | pub fn get_all_types() -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `name` and `get_properties_description` are never used [INFO] [stdout] --> src/block.rs:238:12 [INFO] [stdout] | [INFO] [stdout] 237 | impl BlockType { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] 238 | pub fn name(&self) -> &'static str { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 251 | pub fn get_properties_description(&self) -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_block` is never used [INFO] [stdout] --> src/world.rs:33:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl World { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn get_block(&self, x: usize, y: usize, z: usize) -> Option { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `material` is never read [INFO] [stdout] --> src/ray.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 24 | pub struct HitRecord { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 30 | pub material: Option, // Complete material information for enhanced rendering [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `HitRecord` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/ray.rs:68:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl HitRecord { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn get_albedo(&self) -> Vector3 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | pub fn get_specular(&self) -> Vector3 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn get_transparency(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub fn get_reflectivity(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 100 | pub fn get_roughness(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 108 | pub fn get_metallic(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 116 | pub fn is_transparent(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn is_reflective(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `near` and `far` are never read [INFO] [stdout] --> src/camera.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Camera { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 11 | pub near: f32, [INFO] [stdout] | ^^^^ [INFO] [stdout] 12 | pub far: f32, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/cube.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 21 | impl MultiFaceCube { [INFO] [stdout] | ------------------ associated function in this implementation [INFO] [stdout] 22 | pub fn new(min: Vector3, max: Vector3, materials: [Material; 6]) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `block_manager` is never read [INFO] [stdout] --> src/raytracer.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct Scene { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] ... [INFO] [stdout] 17 | pub block_manager: BlockManager, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `solid_color` is never used [INFO] [stdout] --> src/texture.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 12 | impl Texture { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] 13 | // Create a solid color texture (fallback) [INFO] [stdout] 14 | pub fn solid_color(color: Vector3) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `specular`, `transparency`, `reflectivity`, `roughness`, and `metallic` are never read [INFO] [stdout] --> src/texture.rs:70:9 [INFO] [stdout] | [INFO] [stdout] 67 | pub struct Material { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 70 | pub specular: Vector3, // Specular reflectance color [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 71 | pub transparency: f32, // 0.0 = opaque, 1.0 = fully transparent [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 72 | pub reflectivity: f32, // Mirror-like reflection strength (0.0 to 1.0) [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 73 | pub roughness: f32, // Surface roughness (0.0 = mirror, 1.0 = completely rough) [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 74 | pub metallic: f32, // Metallic property (0.0 = dielectric, 1.0 = metallic) [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Material` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `with_texture`, `solid_color`, `get_specular_color`, `is_transparent`, `is_reflective`, and `get_effective_reflectivity` are never used [INFO] [stdout] --> src/texture.rs:100:12 [INFO] [stdout] | [INFO] [stdout] 77 | impl Material { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 100 | pub fn with_texture(texture: Texture) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 112 | pub fn solid_color(color: Vector3) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 139 | pub fn get_specular_color(&self) -> Vector3 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 144 | pub fn is_transparent(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 149 | pub fn is_reflective(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 154 | pub fn get_effective_reflectivity(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `get_all_types` is never used [INFO] [stdout] --> src/block.rs:224:12 [INFO] [stdout] | [INFO] [stdout] 21 | impl BlockManager { [INFO] [stdout] | ----------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 224 | pub fn get_all_types() -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `name` and `get_properties_description` are never used [INFO] [stdout] --> src/block.rs:238:12 [INFO] [stdout] | [INFO] [stdout] 237 | impl BlockType { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] 238 | pub fn name(&self) -> &'static str { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 251 | pub fn get_properties_description(&self) -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_block` is never used [INFO] [stdout] --> src/world.rs:33:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl World { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn get_block(&self, x: usize, y: usize, z: usize) -> Option { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/raytracer.rs:91:20 [INFO] [stdout] | [INFO] [stdout] 91 | if let Some(_) = block.hit(&shadow_ray, 0.001, f32::INFINITY) { [INFO] [stdout] | -------^^^^^^^----------------------------------------------- help: try: `if block.hit(&shadow_ray, 0.001, f32::INFINITY).is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/raytracer.rs:98:20 [INFO] [stdout] | [INFO] [stdout] 98 | if let Some(_) = grass_block.hit(&shadow_ray, 0.001, f32::INFINITY) { [INFO] [stdout] | -------^^^^^^^----------------------------------------------------- help: try: `if grass_block.hit(&shadow_ray, 0.001, f32::INFINITY).is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> src/raytracer.rs:171:26 [INFO] [stdout] | [INFO] [stdout] 171 | let r = (color.x.min(1.0).max(0.0) * 255.0) as u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `color.x.clamp(0.0, 1.0)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min, min.is_nan(), or max.is_nan() [INFO] [stdout] = note: clamp returns NaN if the input is NaN [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] = note: `#[warn(clippy::manual_clamp)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> src/raytracer.rs:172:26 [INFO] [stdout] | [INFO] [stdout] 172 | let g = (color.y.min(1.0).max(0.0) * 255.0) as u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `color.y.clamp(0.0, 1.0)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min, min.is_nan(), or max.is_nan() [INFO] [stdout] = note: clamp returns NaN if the input is NaN [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> src/raytracer.rs:173:26 [INFO] [stdout] | [INFO] [stdout] 173 | let b = (color.z.min(1.0).max(0.0) * 255.0) as u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `color.z.clamp(0.0, 1.0)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min, min.is_nan(), or max.is_nan() [INFO] [stdout] = note: clamp returns NaN if the input is NaN [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/raytracer.rs:91:20 [INFO] [stdout] | [INFO] [stdout] 91 | if let Some(_) = block.hit(&shadow_ray, 0.001, f32::INFINITY) { [INFO] [stdout] | -------^^^^^^^----------------------------------------------- help: try: `if block.hit(&shadow_ray, 0.001, f32::INFINITY).is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/raytracer.rs:98:20 [INFO] [stdout] | [INFO] [stdout] 98 | if let Some(_) = grass_block.hit(&shadow_ray, 0.001, f32::INFINITY) { [INFO] [stdout] | -------^^^^^^^----------------------------------------------------- help: try: `if grass_block.hit(&shadow_ray, 0.001, f32::INFINITY).is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> src/raytracer.rs:171:26 [INFO] [stdout] | [INFO] [stdout] 171 | let r = (color.x.min(1.0).max(0.0) * 255.0) as u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `color.x.clamp(0.0, 1.0)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min, min.is_nan(), or max.is_nan() [INFO] [stdout] = note: clamp returns NaN if the input is NaN [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] = note: `#[warn(clippy::manual_clamp)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> src/raytracer.rs:172:26 [INFO] [stdout] | [INFO] [stdout] 172 | let g = (color.y.min(1.0).max(0.0) * 255.0) as u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `color.y.clamp(0.0, 1.0)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min, min.is_nan(), or max.is_nan() [INFO] [stdout] = note: clamp returns NaN if the input is NaN [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> src/raytracer.rs:173:26 [INFO] [stdout] | [INFO] [stdout] 173 | let b = (color.z.min(1.0).max(0.0) * 255.0) as u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `color.z.clamp(0.0, 1.0)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min, min.is_nan(), or max.is_nan() [INFO] [stdout] = note: clamp returns NaN if the input is NaN [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/world.rs:805:24 [INFO] [stdout] | [INFO] [stdout] 805 | if !(dx == 0 && dz == 0) && !(dx.abs() == 2 && dz.abs() == 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!(dx == 0 && dz == 0 || dx.abs() == 2 && dz.abs() == 2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/world.rs:819:24 [INFO] [stdout] | [INFO] [stdout] 819 | if !(dx == 0 && dz == 0) && !(dx.abs() == 2 && dz.abs() == 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!(dx == 0 && dz == 0 || dx.abs() == 2 && dz.abs() == 2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/world.rs:805:24 [INFO] [stdout] | [INFO] [stdout] 805 | if !(dx == 0 && dz == 0) && !(dx.abs() == 2 && dz.abs() == 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!(dx == 0 && dz == 0 || dx.abs() == 2 && dz.abs() == 2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/world.rs:819:24 [INFO] [stdout] | [INFO] [stdout] 819 | if !(dx == 0 && dz == 0) && !(dx.abs() == 2 && dz.abs() == 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!(dx == 0 && dz == 0 || dx.abs() == 2 && dz.abs() == 2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 39.65s [INFO] running `Command { std: "docker" "inspect" "4d5d6b4715061eedfdb4b57aa4f108a79f614b51b997818e541b44c67f8da613", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4d5d6b4715061eedfdb4b57aa4f108a79f614b51b997818e541b44c67f8da613", kill_on_drop: false }` [INFO] [stdout] 4d5d6b4715061eedfdb4b57aa4f108a79f614b51b997818e541b44c67f8da613