[INFO] updating cached repository https://github.com/alsor/durer_renderer [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] 5c91997c3b183b501cdd06c4d33f9045e05878f9 [INFO] checking alsor/durer_renderer against try#ba14a92a10441c4b839ce71e6ef5f7a48bbff18f for prs-64470-and-65389 [INFO] running `"git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falsor%2Fdurer_renderer" "/workspace/builds/worker-5/source"` [INFO] [stderr] Cloning into '/workspace/builds/worker-5/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/alsor/durer_renderer on toolchain ba14a92a10441c4b839ce71e6ef5f7a48bbff18f [INFO] running `"/workspace/cargo-home/bin/cargo" "+ba14a92a10441c4b839ce71e6ef5f7a48bbff18f" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started tweaking git repo https://github.com/alsor/durer_renderer [INFO] finished tweaking git repo https://github.com/alsor/durer_renderer [INFO] tweaked toml for git repo https://github.com/alsor/durer_renderer written to /workspace/builds/worker-5/source/Cargo.toml [INFO] crate git repo https://github.com/alsor/durer_renderer already has a lockfile, it will not be regenerated [INFO] running `"/workspace/cargo-home/bin/cargo" "+ba14a92a10441c4b839ce71e6ef5f7a48bbff18f" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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" "+ba14a92a10441c4b839ce71e6ef5f7a48bbff18f" "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] 2b2e402f934a3170b429fd4724dbc78c06dea568758e5f35e058ece86499f62a [INFO] running `"docker" "start" "-a" "2b2e402f934a3170b429fd4724dbc78c06dea568758e5f35e058ece86499f62a"` [INFO] [stderr] Compiling num-rational v0.2.2 [INFO] [stderr] Checking inflate v0.4.5 [INFO] [stderr] Checking atty v0.2.8 [INFO] [stderr] Checking gif v0.10.2 [INFO] [stderr] Checking crc32fast v1.2.0 [INFO] [stderr] Checking rayon-core v1.3.0 [INFO] [stderr] Checking regex v1.0.2 [INFO] [stderr] Checking num-iter v0.1.35 [INFO] [stderr] Compiling num-derive v0.2.5 [INFO] [stderr] Checking num v0.1.42 [INFO] [stderr] Checking rayon v0.8.2 [INFO] [stderr] Checking sdl2 v0.31.0 [INFO] [stderr] Checking png v0.15.0 [INFO] [stderr] Checking env_logger v0.5.10 [INFO] [stderr] Checking jpeg-decoder v0.1.13 [INFO] [stderr] Checking tiff v0.3.1 [INFO] [stderr] Checking image v0.22.0 [INFO] [stderr] Checking durer v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] warning: unused imports: `thread`, `time` [INFO] [stderr] --> src/main.rs:1:11 [INFO] [stderr] | [INFO] [stderr] 1 | use std::{thread, time}; [INFO] [stderr] | ^^^^^^ ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::prelude::*` [INFO] [stderr] --> src/main.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::io::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::str::FromStr` [INFO] [stderr] --> src/main.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use std::str::FromStr; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rand::Rng` [INFO] [stderr] --> src/main.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use rand::Rng; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `sdl2::rect::Rect` [INFO] [stderr] --> src/main.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | use sdl2::rect::Rect; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `plane::Plane` [INFO] [stderr] --> src/main.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | use plane::Plane; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rand::Rng` [INFO] [stderr] --> src/ray_tracing.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use rand::Rng; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::plane::PlaneType` [INFO] [stderr] --> src/projective_camera.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use crate::plane::PlaneType; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::Point2D` [INFO] [stderr] --> src/buffer_canvas.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use crate::Point2D; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::Vector3f` [INFO] [stderr] --> src/buffer_canvas.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use crate::Vector3f; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/buffer_canvas.rs:84:22 [INFO] [stderr] | [INFO] [stderr] 84 | let result = (canvas_width / 2 + x_canvas); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/buffer_canvas.rs:95:22 [INFO] [stderr] | [INFO] [stderr] 95 | let result = (canvas_height / 2 - y_canvas - 1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Color`, `Triangle` [INFO] [stderr] --> src/instance.rs:1:13 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::{Color, Triangle}; [INFO] [stderr] | ^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rand::Rng` [INFO] [stderr] --> src/ply2.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use rand::Rng; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::triangle` [INFO] [stderr] --> src/ply2.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use crate::triangle; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `sdl2::video::WindowPos::Positioned` [INFO] [stderr] --> src/rendering.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use sdl2::video::WindowPos::Positioned; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `face_visible` [INFO] [stderr] --> src/rendering.rs:4:13 [INFO] [stderr] | [INFO] [stderr] 4 | use crate::{face_visible, Triangle, Triangle4f}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `transform` [INFO] [stderr] --> src/rendering.rs:6:30 [INFO] [stderr] | [INFO] [stderr] 6 | use crate::{face_visible_4f, transform}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::Point2D` [INFO] [stderr] --> src/rendering.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | use crate::Point2D; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `thread`, `time` [INFO] [stderr] --> src/main.rs:1:11 [INFO] [stderr] | [INFO] [stderr] 1 | use std::{thread, time}; [INFO] [stderr] | ^^^^^^ ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::prelude::*` [INFO] [stderr] --> src/main.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::io::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::str::FromStr` [INFO] [stderr] --> src/main.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use std::str::FromStr; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rand::Rng` [INFO] [stderr] --> src/main.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use rand::Rng; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `sdl2::rect::Rect` [INFO] [stderr] --> src/main.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | use sdl2::rect::Rect; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `plane::Plane` [INFO] [stderr] --> src/main.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | use plane::Plane; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rand::Rng` [INFO] [stderr] --> src/ray_tracing.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use rand::Rng; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::plane::PlaneType` [INFO] [stderr] --> src/projective_camera.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use crate::plane::PlaneType; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::Point2D` [INFO] [stderr] --> src/buffer_canvas.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use crate::Point2D; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::Vector3f` [INFO] [stderr] --> src/buffer_canvas.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use crate::Vector3f; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/buffer_canvas.rs:84:22 [INFO] [stderr] | [INFO] [stderr] 84 | let result = (canvas_width / 2 + x_canvas); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/buffer_canvas.rs:95:22 [INFO] [stderr] | [INFO] [stderr] 95 | let result = (canvas_height / 2 - y_canvas - 1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unused import: `rand::Rng` [INFO] [stderr] --> src/ply2.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use rand::Rng; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::triangle` [INFO] [stderr] --> src/ply2.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use crate::triangle; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `sdl2::video::WindowPos::Positioned` [INFO] [stderr] --> src/rendering.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use sdl2::video::WindowPos::Positioned; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `face_visible` [INFO] [stderr] --> src/rendering.rs:4:13 [INFO] [stderr] | [INFO] [stderr] 4 | use crate::{face_visible, Triangle, Triangle4f}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `transform` [INFO] [stderr] --> src/rendering.rs:6:30 [INFO] [stderr] | [INFO] [stderr] 6 | use crate::{face_visible_4f, transform}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::Point2D` [INFO] [stderr] --> src/rendering.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | use crate::Point2D; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/ply2.rs:88:13 [INFO] [stderr] | [INFO] [stderr] 88 | _ => () [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/main.rs:223:13 [INFO] [stderr] | [INFO] [stderr] 223 | for i in 1..dx { [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_i` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/main.rs:248:13 [INFO] [stderr] | [INFO] [stderr] 248 | for i in 1..dy { [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rng` [INFO] [stderr] --> src/main.rs:448:13 [INFO] [stderr] | [INFO] [stderr] 448 | let mut rng = rand::thread_rng(); [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_rng` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rng` [INFO] [stderr] --> src/main.rs:488:13 [INFO] [stderr] | [INFO] [stderr] 488 | let mut rng = rand::thread_rng(); [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_rng` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `size` [INFO] [stderr] --> src/main.rs:710:9 [INFO] [stderr] | [INFO] [stderr] 710 | let size = (z_max - z_min).abs(); [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_size` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `red` [INFO] [stderr] --> src/main.rs:1185:9 [INFO] [stderr] | [INFO] [stderr] 1185 | let red = Color { r: 255, g: 0, b: 0 }; [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_red` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `green` [INFO] [stderr] --> src/main.rs:1186:9 [INFO] [stderr] | [INFO] [stderr] 1186 | let green = Color { r: 0, g: 255, b: 0 }; [INFO] [stderr] | ^^^^^ help: consider prefixing with an underscore: `_green` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `blue` [INFO] [stderr] --> src/main.rs:1187:9 [INFO] [stderr] | [INFO] [stderr] 1187 | let blue = Color { r: 0, g: 0, b: 255 }; [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_blue` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `white` [INFO] [stderr] --> src/main.rs:1188:9 [INFO] [stderr] | [INFO] [stderr] 1188 | let white = Color { r: 255, g: 255, b: 255 }; [INFO] [stderr] | ^^^^^ help: consider prefixing with an underscore: `_white` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `sphere` [INFO] [stderr] --> src/main.rs:1194:9 [INFO] [stderr] | [INFO] [stderr] 1194 | let sphere = sphere(35); [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_sphere` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cube` [INFO] [stderr] --> src/main.rs:1195:9 [INFO] [stderr] | [INFO] [stderr] 1195 | let cube = cube(0.9); [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_cube` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `torus` [INFO] [stderr] --> src/main.rs:1199:9 [INFO] [stderr] | [INFO] [stderr] 1199 | let torus = ply2::load_model("resources/torus.ply2"); [INFO] [stderr] | ^^^^^ help: consider prefixing with an underscore: `_torus` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `current_instance_index` [INFO] [stderr] --> src/main.rs:1204:13 [INFO] [stderr] | [INFO] [stderr] 1204 | let mut current_instance_index: Option = None; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider prefixing with an underscore: `_current_instance_index` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rng` [INFO] [stderr] --> src/ray_tracing.rs:208:13 [INFO] [stderr] | [INFO] [stderr] 208 | let mut rng = rand::thread_rng(); [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_rng` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/buffer_canvas.rs:149:17 [INFO] [stderr] | [INFO] [stderr] 149 | for i in 1..dx { [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/buffer_canvas.rs:170:17 [INFO] [stderr] | [INFO] [stderr] 170 | for i in 1..dy { [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rng` [INFO] [stderr] --> src/ply2.rs:34:13 [INFO] [stderr] | [INFO] [stderr] 34 | let mut rng = rand::thread_rng(); [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_rng` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `camera` [INFO] [stderr] --> src/rendering.rs:417:5 [INFO] [stderr] | [INFO] [stderr] 417 | camera: &ProjectiveCamera, [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_camera` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `h_segment` [INFO] [stderr] --> src/rendering.rs:589:13 [INFO] [stderr] | [INFO] [stderr] 589 | let h_segment = interpolate_float(x_l, h_left[y_index], x_r, h_right[y_index]); [INFO] [stderr] | ^^^^^^^^^ help: consider prefixing with an underscore: `_h_segment` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `h_segment` [INFO] [stderr] --> src/rendering.rs:746:13 [INFO] [stderr] | [INFO] [stderr] 746 | let h_segment = interpolate_float(x_l, h_left[y_index], x_r, h_right[y_index]); [INFO] [stderr] | ^^^^^^^^^ help: consider prefixing with an underscore: `_h_segment` [INFO] [stderr] [INFO] [stderr] warning: value assigned to `v0` is never read [INFO] [stderr] --> src/rendering.rs:800:9 [INFO] [stderr] | [INFO] [stderr] 800 | v0 = v2; [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: value assigned to `v1` is never read [INFO] [stderr] --> src/rendering.rs:813:9 [INFO] [stderr] | [INFO] [stderr] 813 | v1 = v2; [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `v2` is never read [INFO] [stderr] --> src/rendering.rs:814:9 [INFO] [stderr] | [INFO] [stderr] 814 | v2 = swap; [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: unused variable: `h_segment` [INFO] [stderr] --> src/rendering.rs:927:13 [INFO] [stderr] | [INFO] [stderr] 927 | let h_segment = interpolate_float(x_l, h_left[y_index], x_r, h_right[y_index]); [INFO] [stderr] | ^^^^^^^^^ help: consider prefixing with an underscore: `_h_segment` [INFO] [stderr] [INFO] [stderr] warning: value assigned to `v0` is never read [INFO] [stderr] --> src/rendering.rs:1004:9 [INFO] [stderr] | [INFO] [stderr] 1004 | v0 = v2; [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `v1` is never read [INFO] [stderr] --> src/rendering.rs:1021:9 [INFO] [stderr] | [INFO] [stderr] 1021 | v1 = v2; [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `v2` is never read [INFO] [stderr] --> src/rendering.rs:1022:9 [INFO] [stderr] | [INFO] [stderr] 1022 | v2 = swap; [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: unused variable: `h_segment` [INFO] [stderr] --> src/rendering.rs:1171:13 [INFO] [stderr] | [INFO] [stderr] 1171 | let h_segment = interpolate_float(x_l, h_left[y_index], x_r, h_right[y_index]); [INFO] [stderr] | ^^^^^^^^^ help: consider prefixing with an underscore: `_h_segment` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/rendering.rs:1247:9 [INFO] [stderr] | [INFO] [stderr] 1247 | for i in i0..(i1 + 1) { [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/rendering.rs:1263:9 [INFO] [stderr] | [INFO] [stderr] 1263 | for i in i0..(i1 + 1) { [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:448:9 [INFO] [stderr] | [INFO] [stderr] 448 | let mut rng = rand::thread_rng(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:488:9 [INFO] [stderr] | [INFO] [stderr] 488 | let mut rng = rand::thread_rng(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:1147:9 [INFO] [stderr] | [INFO] [stderr] 1147 | let mut rendering_settings = RenderingSettings { [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:1204:9 [INFO] [stderr] | [INFO] [stderr] 1204 | let mut current_instance_index: Option = None; [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ray_tracing.rs:208:9 [INFO] [stderr] | [INFO] [stderr] 208 | let mut rng = rand::thread_rng(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ply2.rs:34:9 [INFO] [stderr] | [INFO] [stderr] 34 | let mut rng = rand::thread_rng(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:537:9 [INFO] [stderr] | [INFO] [stderr] 537 | let mut x02 = interpolate_int(p0.y, p0.x, p2.y, p2.x); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:538:9 [INFO] [stderr] | [INFO] [stderr] 538 | let mut h02 = interpolate_float(p0.y, p0.h, p2.y, p2.h); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:539:9 [INFO] [stderr] | [INFO] [stderr] 539 | let mut iz02 = interpolate_float(p0.y, 1.0 / p0.z, p2.y, 1.0 / p2.z); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:556:9 [INFO] [stderr] | [INFO] [stderr] 556 | let mut x_left; [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:557:9 [INFO] [stderr] | [INFO] [stderr] 557 | let mut x_right; [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:558:9 [INFO] [stderr] | [INFO] [stderr] 558 | let mut h_left; [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:559:9 [INFO] [stderr] | [INFO] [stderr] 559 | let mut h_right; [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:560:9 [INFO] [stderr] | [INFO] [stderr] 560 | let mut iz_left; [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:561:9 [INFO] [stderr] | [INFO] [stderr] 561 | let mut iz_right; [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:679:9 [INFO] [stderr] | [INFO] [stderr] 679 | let mut x02 = interpolate_int(p0.y, p0.x, p2.y, p2.x); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:680:9 [INFO] [stderr] | [INFO] [stderr] 680 | let mut h02 = interpolate_float(p0.y, p0.h, p2.y, p2.h); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:681:9 [INFO] [stderr] | [INFO] [stderr] 681 | let mut iz02 = interpolate_float(p0.y, 1.0 / p0.z, p2.y, 1.0 / p2.z); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:682:9 [INFO] [stderr] | [INFO] [stderr] 682 | let mut i02 = interpolate_float(p0.y, i0, p2.y, i2); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:705:9 [INFO] [stderr] | [INFO] [stderr] 705 | let mut x_left; [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:706:9 [INFO] [stderr] | [INFO] [stderr] 706 | let mut x_right; [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:707:9 [INFO] [stderr] | [INFO] [stderr] 707 | let mut h_left; [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:708:9 [INFO] [stderr] | [INFO] [stderr] 708 | let mut h_right; [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:709:9 [INFO] [stderr] | [INFO] [stderr] 709 | let mut iz_left; [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:710:9 [INFO] [stderr] | [INFO] [stderr] 710 | let mut iz_right; [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:711:9 [INFO] [stderr] | [INFO] [stderr] 711 | let mut i_left; [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/ply2.rs:88:13 [INFO] [stderr] | [INFO] [stderr] 88 | _ => () [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stderr] [INFO] [stderr] --> src/rendering.rs:712:9 [INFO] [stderr] | [INFO] [stderr] 712 | let mut i_right; [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:836:9 [INFO] [stderr] | [INFO] [stderr] 836 | let mut x02 = interpolate_int(p0.y, p0.x, p2.y, p2.x); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:837:9 [INFO] [stderr] | [INFO] [stderr] 837 | let mut h02 = interpolate_float(p0.y, p0.h, p2.y, p2.h); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:838:9 [INFO] [stderr] | [INFO] [stderr] 838 | let mut iz02 = interpolate_float(p0.y, 1.0 / p0.z, p2.y, 1.0 / p2.z); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:839:9 [INFO] [stderr] | [INFO] [stderr] 839 | let mut normal_x_02 = interpolate_float(p0.y, normal0.x, p2.y, normal2.x); [INFO] [stderr] | ----^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:840:9 [INFO] [stderr] | [INFO] [stderr] 840 | let mut normal_y_02 = interpolate_float(p0.y, normal0.y, p2.y, normal2.y); [INFO] [stderr] | ----^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:841:9 [INFO] [stderr] | [INFO] [stderr] 841 | let mut normal_z_02 = interpolate_float(p0.y, normal0.z, p2.y, normal2.z); [INFO] [stderr] | ----^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/main.rs:223:13 [INFO] [stderr] | [INFO] [stderr] 223 | for i in 1..dx { [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_i` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/main.rs:248:13 [INFO] [stderr] | [INFO] [stderr] 248 | for i in 1..dy { [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rng` [INFO] [stderr] --> src/main.rs:448:13 [INFO] [stderr] | [INFO] [stderr] 448 | let mut rng = rand::thread_rng(); [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_rng` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rng` [INFO] [stderr] --> src/main.rs:488:13 [INFO] [stderr] | [INFO] [stderr] 488 | let mut rng = rand::thread_rng(); [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_rng` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `size` [INFO] [stderr] --> src/main.rs:710:9 [INFO] [stderr] | [INFO] [stderr] 710 | let size = (z_max - z_min).abs(); [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_size` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `red` [INFO] [stderr] --> src/main.rs:1185:9 [INFO] [stderr] | [INFO] [stderr] 1185 | let red = Color { r: 255, g: 0, b: 0 }; [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_red` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `green` [INFO] [stderr] --> src/main.rs:1186:9 [INFO] [stderr] | [INFO] [stderr] 1186 | let green = Color { r: 0, g: 255, b: 0 }; [INFO] [stderr] | ^^^^^ help: consider prefixing with an underscore: `_green` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `blue` [INFO] [stderr] --> src/main.rs:1187:9 [INFO] [stderr] | [INFO] [stderr] 1187 | let blue = Color { r: 0, g: 0, b: 255 }; [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_blue` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `white` [INFO] [stderr] --> src/main.rs:1188:9 [INFO] [stderr] | [INFO] [stderr] 1188 | let white = Color { r: 255, g: 255, b: 255 }; [INFO] [stderr] | ^^^^^ help: consider prefixing with an underscore: `_white` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `sphere` [INFO] [stderr] --> src/main.rs:1194:9 [INFO] [stderr] | [INFO] [stderr] 1194 | let sphere = sphere(35); [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_sphere` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cube` [INFO] [stderr] --> src/main.rs:1195:9 [INFO] [stderr] | [INFO] [stderr] 1195 | let cube = cube(0.9); [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_cube` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `torus` [INFO] [stderr] --> src/main.rs:1199:9 [INFO] [stderr] | [INFO] [stderr] 1199 | let torus = ply2::load_model("resources/torus.ply2"); [INFO] [stderr] | ^^^^^ help: consider prefixing with an underscore: `_torus` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `current_instance_index` [INFO] [stderr] --> src/main.rs:1204:13 [INFO] [stderr] | [INFO] [stderr] 1204 | let mut current_instance_index: Option = None; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider prefixing with an underscore: `_current_instance_index` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rng` [INFO] [stderr] --> src/ray_tracing.rs:208:13 [INFO] [stderr] | [INFO] [stderr] 208 | let mut rng = rand::thread_rng(); [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_rng` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/buffer_canvas.rs:149:17 [INFO] [stderr] | [INFO] [stderr] 149 | for i in 1..dx { [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/buffer_canvas.rs:170:17 [INFO] [stderr] | [INFO] [stderr] 170 | for i in 1..dy { [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rng` [INFO] [stderr] --> src/ply2.rs:34:13 [INFO] [stderr] | [INFO] [stderr] 34 | let mut rng = rand::thread_rng(); [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_rng` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:1052:9 [INFO] [stderr] | [INFO] [stderr] 1052 | let mut x02 = interpolate_int(p0.y, p0.x, p2.y, p2.x); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:1053:9 [INFO] [stderr] | [INFO] [stderr] 1053 | let mut h02 = interpolate_float(p0.y, p0.h, p2.y, p2.h); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:1054:9 [INFO] [stderr] | [INFO] [stderr] 1054 | let mut iz02 = interpolate_float(p0.y, 1.0 / p0.z, p2.y, 1.0 / p2.z); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:1055:9 [INFO] [stderr] | [INFO] [stderr] 1055 | let mut uz02 = interpolate_float(p0.y, uv0.u / p0.z, p2.y, uv2.u / p2.z); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:1056:9 [INFO] [stderr] | [INFO] [stderr] 1056 | let mut vz02 = interpolate_float(p0.y, uv0.v / p0.z, p2.y, uv2.v / p2.z); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:1057:9 [INFO] [stderr] | [INFO] [stderr] 1057 | let mut normal_x_02 = interpolate_float(p0.y, normal0.x, p2.y, normal2.x); [INFO] [stderr] | ----^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:1058:9 [INFO] [stderr] | [INFO] [stderr] 1058 | let mut normal_y_02 = interpolate_float(p0.y, normal0.y, p2.y, normal2.y); [INFO] [stderr] | ----^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:1059:9 [INFO] [stderr] | [INFO] [stderr] 1059 | let mut normal_z_02 = interpolate_float(p0.y, normal0.z, p2.y, normal2.z); [INFO] [stderr] | ----^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `camera` [INFO] [stderr] --> src/rendering.rs:417:5 [INFO] [stderr] | [INFO] [stderr] 417 | camera: &ProjectiveCamera, [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_camera` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `h_segment` [INFO] [stderr] --> src/rendering.rs:589:13 [INFO] [stderr] | [INFO] [stderr] 589 | let h_segment = interpolate_float(x_l, h_left[y_index], x_r, h_right[y_index]); [INFO] [stderr] | ^^^^^^^^^ help: consider prefixing with an underscore: `_h_segment` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `h_segment` [INFO] [stderr] --> src/rendering.rs:746:13 [INFO] [stderr] | [INFO] [stderr] 746 | let h_segment = interpolate_float(x_l, h_left[y_index], x_r, h_right[y_index]); [INFO] [stderr] | ^^^^^^^^^ help: consider prefixing with an underscore: `_h_segment` [INFO] [stderr] [INFO] [stderr] warning: value assigned to `v0` is never read [INFO] [stderr] --> src/rendering.rs:800:9 [INFO] [stderr] | [INFO] [stderr] 800 | v0 = v2; [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: value assigned to `v1` is never read [INFO] [stderr] --> src/rendering.rs:813:9 [INFO] [stderr] | [INFO] [stderr] 813 | v1 = v2; [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `v2` is never read [INFO] [stderr] --> src/rendering.rs:814:9 [INFO] [stderr] | [INFO] [stderr] 814 | v2 = swap; [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: unused variable: `h_segment` [INFO] [stderr] --> src/rendering.rs:927:13 [INFO] [stderr] | [INFO] [stderr] 927 | let h_segment = interpolate_float(x_l, h_left[y_index], x_r, h_right[y_index]); [INFO] [stderr] | ^^^^^^^^^ help: consider prefixing with an underscore: `_h_segment` [INFO] [stderr] [INFO] [stderr] warning: value assigned to `v0` is never read [INFO] [stderr] --> src/rendering.rs:1004:9 [INFO] [stderr] | [INFO] [stderr] 1004 | v0 = v2; [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `v1` is never read [INFO] [stderr] --> src/rendering.rs:1021:9 [INFO] [stderr] | [INFO] [stderr] 1021 | v1 = v2; [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `v2` is never read [INFO] [stderr] --> src/rendering.rs:1022:9 [INFO] [stderr] | [INFO] [stderr] 1022 | v2 = swap; [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: unused variable: `h_segment` [INFO] [stderr] --> src/rendering.rs:1171:13 [INFO] [stderr] | [INFO] [stderr] 1171 | let h_segment = interpolate_float(x_l, h_left[y_index], x_r, h_right[y_index]); [INFO] [stderr] | ^^^^^^^^^ help: consider prefixing with an underscore: `_h_segment` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/rendering.rs:1247:9 [INFO] [stderr] | [INFO] [stderr] 1247 | for i in i0..(i1 + 1) { [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/rendering.rs:1263:9 [INFO] [stderr] | [INFO] [stderr] 1263 | for i in i0..(i1 + 1) { [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: private type `Point2D` in public interface (error E0446) [INFO] [stderr] --> src/projective_camera.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | / pub fn project(&self, point: Vector3f) -> Point2D { [INFO] [stderr] 20 | | Point2D { [INFO] [stderr] 21 | | x: point.x * self.projection_plane_z / point.z, [INFO] [stderr] 22 | | y: point.y * self.projection_plane_z / point.z [INFO] [stderr] 23 | | } [INFO] [stderr] 24 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(private_in_public)]` on by default [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #34537 [INFO] [stderr] [INFO] [stderr] warning: private type `Point2D` in public interface (error E0446) [INFO] [stderr] --> src/projective_camera.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | / pub fn project_vertex(&self, vertex: Vector4f) -> Point2D { [INFO] [stderr] 27 | | Point2D { [INFO] [stderr] 28 | | x: vertex.x * self.projection_plane_z / vertex.z, [INFO] [stderr] 29 | | y: vertex.y * self.projection_plane_z / vertex.z [INFO] [stderr] 30 | | } [INFO] [stderr] 31 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #34537 [INFO] [stderr] [INFO] [stderr] warning: private type `Point` in public interface (error E0446) [INFO] [stderr] --> src/buffer_canvas.rs:46:5 [INFO] [stderr] | [INFO] [stderr] 46 | / pub fn viewport_to_canvas(&self, vertex: Vector4f, camera: &ProjectiveCamera) -> Point { [INFO] [stderr] 47 | | let point = camera.project_vertex(vertex); [INFO] [stderr] 48 | | let canvas_size = self.size as f64; [INFO] [stderr] 49 | | Point { [INFO] [stderr] ... | [INFO] [stderr] 54 | | } [INFO] [stderr] 55 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #34537 [INFO] [stderr] [INFO] [stderr] warning: private type `Point` in public interface (error E0446) [INFO] [stderr] --> src/buffer_canvas.rs:108:5 [INFO] [stderr] | [INFO] [stderr] 108 | / pub fn draw_line(&mut self, start: Point, end: Point, color: Color) { [INFO] [stderr] 109 | | trace!("drawing line [{},{}] - [{},{}]", start.x, start.y, end.x, end.y); [INFO] [stderr] 110 | | let start_pixel = self.point_to_pixel(start.x, start.y, color); [INFO] [stderr] 111 | | let end_pixel = self.point_to_pixel(end.x, end.y, color); [INFO] [stderr] ... | [INFO] [stderr] 118 | | self.rasterize_line(start_pixel, end_pixel); [INFO] [stderr] 119 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #34537 [INFO] [stderr] [INFO] [stderr] warning: function is never used: `render_scene_to_buffer` [INFO] [stderr] --> src/ray_tracing.rs:24:1 [INFO] [stderr] | [INFO] [stderr] 24 | / pub fn render_scene_to_buffer( [INFO] [stderr] 25 | | spheres: &Vec, [INFO] [stderr] 26 | | lights: &Vec, [INFO] [stderr] 27 | | buffer: &mut [u8], [INFO] [stderr] ... | [INFO] [stderr] 66 | | } [INFO] [stderr] 67 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `canvas_to_viewport` [INFO] [stderr] --> src/ray_tracing.rs:69:1 [INFO] [stderr] | [INFO] [stderr] 69 | fn canvas_to_viewport(x: i32, y: i32, canvas_width: i32, canvas_height: i32) -> Vector3f { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `compute_lighting` [INFO] [stderr] --> src/ray_tracing.rs:81:1 [INFO] [stderr] | [INFO] [stderr] 81 | / fn compute_lighting( [INFO] [stderr] 82 | | point: Vector3f, [INFO] [stderr] 83 | | normal: Vector3f, [INFO] [stderr] 84 | | view: Vector3f, [INFO] [stderr] ... | [INFO] [stderr] 119 | | result [INFO] [stderr] 120 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `compute_light_from_direction` [INFO] [stderr] --> src/ray_tracing.rs:122:1 [INFO] [stderr] | [INFO] [stderr] 122 | / fn compute_light_from_direction( [INFO] [stderr] 123 | | point: Vector3f, [INFO] [stderr] 124 | | normal: Vector3f, [INFO] [stderr] 125 | | view: Vector3f, [INFO] [stderr] ... | [INFO] [stderr] 171 | | result [INFO] [stderr] 172 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `closest_intersection` [INFO] [stderr] --> src/ray_tracing.rs:174:1 [INFO] [stderr] | [INFO] [stderr] 174 | / fn closest_intersection( [INFO] [stderr] 175 | | origin: Vector3f, [INFO] [stderr] 176 | | direction: Vector3f, [INFO] [stderr] 177 | | min_t: f64, [INFO] [stderr] ... | [INFO] [stderr] 196 | | (closest_sphere, closest_t) [INFO] [stderr] 197 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `trace_ray` [INFO] [stderr] --> src/ray_tracing.rs:199:1 [INFO] [stderr] | [INFO] [stderr] 199 | / fn trace_ray( [INFO] [stderr] 200 | | spheres: &Vec, [INFO] [stderr] 201 | | lights: &Vec, [INFO] [stderr] 202 | | origin: Vector3f, [INFO] [stderr] ... | [INFO] [stderr] 268 | | } [INFO] [stderr] 269 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `add_colors` [INFO] [stderr] --> src/ray_tracing.rs:271:1 [INFO] [stderr] | [INFO] [stderr] 271 | fn add_colors(color1: Color, color2: Color) -> Color { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `contains` [INFO] [stderr] --> src/ray_tracing.rs:279:1 [INFO] [stderr] | [INFO] [stderr] 279 | fn contains(range: (f64, f64), n: f64) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `intersect_ray_with_sphere` [INFO] [stderr] --> src/ray_tracing.rs:284:1 [INFO] [stderr] | [INFO] [stderr] 284 | fn intersect_ray_with_sphere(origin: Vector3f, direction: Vector3f, sphere: Sphere) -> (f64, f64) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `multiply_vec_and_mat` [INFO] [stderr] --> src/vectors.rs:15:1 [INFO] [stderr] | [INFO] [stderr] 15 | pub fn multiply_vec_and_mat(vec: [f64; 3], mat: [[f64; 3]; 3]) -> [f64; 3] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `rotation_around_y` [INFO] [stderr] --> src/vectors.rs:71:1 [INFO] [stderr] | [INFO] [stderr] 71 | pub fn rotation_around_y(d: f64) -> [[f64; 3]; 3] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `project` [INFO] [stderr] --> src/projective_camera.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | pub fn project(&self, point: Vector3f) -> Point2D { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `x_min` [INFO] [stderr] --> src/main.rs:70:16 [INFO] [stderr] | [INFO] [stderr] 70 | struct Frame { x_min: f64, x_max: f64, y_min: f64, y_max: f64 } [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `x_max` [INFO] [stderr] --> src/main.rs:70:28 [INFO] [stderr] | [INFO] [stderr] 70 | struct Frame { x_min: f64, x_max: f64, y_min: f64, y_max: f64 } [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `y_min` [INFO] [stderr] --> src/main.rs:70:40 [INFO] [stderr] | [INFO] [stderr] 70 | struct Frame { x_min: f64, x_max: f64, y_min: f64, y_max: f64 } [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `y_max` [INFO] [stderr] --> src/main.rs:70:52 [INFO] [stderr] | [INFO] [stderr] 70 | struct Frame { x_min: f64, x_max: f64, y_min: f64, y_max: f64 } [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `project` [INFO] [stderr] --> src/main.rs:178:1 [INFO] [stderr] | [INFO] [stderr] 178 | fn project(point3d: Vector3f) -> Point2D { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `normalize` [INFO] [stderr] --> src/main.rs:182:1 [INFO] [stderr] | [INFO] [stderr] 182 | fn normalize(point2d: Point2D, frame: Frame) -> Point2D { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `rasterize` [INFO] [stderr] --> src/main.rs:189:1 [INFO] [stderr] | [INFO] [stderr] 189 | fn rasterize(point: Point2D, size: usize) -> Pixel { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `simple_line` [INFO] [stderr] --> src/main.rs:267:1 [INFO] [stderr] | [INFO] [stderr] 267 | fn simple_line(start: Pixel, end: Pixel, buffer: &mut [u8], size: usize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `face_visible` [INFO] [stderr] --> src/main.rs:302:1 [INFO] [stderr] | [INFO] [stderr] 302 | fn face_visible(face: &Vec, vertices: &[Vector3f]) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `face_visible2` [INFO] [stderr] --> src/main.rs:313:1 [INFO] [stderr] | [INFO] [stderr] 313 | fn face_visible2(face: &Vec, vertices: &[Vector3f]) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `draw_face` [INFO] [stderr] --> src/main.rs:328:1 [INFO] [stderr] | [INFO] [stderr] 328 | / fn draw_face(face: &Vec, [INFO] [stderr] 329 | | vertex_pixels: &Vec, [INFO] [stderr] 330 | | buffer: &mut [u8], [INFO] [stderr] 331 | | size: usize) { [INFO] [stderr] ... | [INFO] [stderr] 347 | | } [INFO] [stderr] 348 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `transform` [INFO] [stderr] --> src/main.rs:350:1 [INFO] [stderr] | [INFO] [stderr] 350 | fn transform(vertices: &Vec, vector: Vector3f) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `rotated_cube_vertices` [INFO] [stderr] --> src/main.rs:364:1 [INFO] [stderr] | [INFO] [stderr] 364 | fn rotated_cube_vertices(t: f64) -> [Vector3f; 8] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `rotated_cube` [INFO] [stderr] --> src/main.rs:418:1 [INFO] [stderr] | [INFO] [stderr] 418 | fn rotated_cube(t: f64) -> (Vec, Vec>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `triangle` [INFO] [stderr] --> src/main.rs:435:1 [INFO] [stderr] | [INFO] [stderr] 435 | fn triangle<'a>(size: f64) -> Model<'a> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `two_unit_cube` [INFO] [stderr] --> src/main.rs:642:1 [INFO] [stderr] | [INFO] [stderr] 642 | fn two_unit_cube<'a>() -> Model<'a> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `enclosing_frame` [INFO] [stderr] --> src/main.rs:646:1 [INFO] [stderr] | [INFO] [stderr] 646 | fn enclosing_frame(vertices: &Vec) -> Frame { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `find_z_transform` [INFO] [stderr] --> src/main.rs:697:1 [INFO] [stderr] | [INFO] [stderr] 697 | fn find_z_transform(vertices: &Vec) -> f64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `render_model_to_buffer` [INFO] [stderr] --> src/main.rs:715:1 [INFO] [stderr] | [INFO] [stderr] 715 | / fn render_model_to_buffer( [INFO] [stderr] 716 | | buffer: &mut [u8], [INFO] [stderr] 717 | | size: usize, [INFO] [stderr] 718 | | vertices: Vec, [INFO] [stderr] ... | [INFO] [stderr] 760 | | // rasterize_line(Pixel { x: 60, y: 50 }, Pixel { x: 120, y: 60 }, &mut buffer, size); [INFO] [stderr] 761 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `show_buffer_in_window` [INFO] [stderr] --> src/main.rs:763:1 [INFO] [stderr] | [INFO] [stderr] 763 | fn show_buffer_in_window(buffer: &mut [u8], size: usize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `rotating_cube_window` [INFO] [stderr] --> src/main.rs:817:1 [INFO] [stderr] | [INFO] [stderr] 817 | fn rotating_cube_window(buffer: &mut [u8], size: usize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `three_spheres_window` [INFO] [stderr] --> src/main.rs:927:1 [INFO] [stderr] | [INFO] [stderr] 927 | fn three_spheres_window(buffer: &mut [u8], size: usize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `render_video` [INFO] [stderr] --> src/main.rs:1073:1 [INFO] [stderr] | [INFO] [stderr] 1073 | fn render_video() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `draw_wireframe_triangle` [INFO] [stderr] --> src/main.rs:1085:1 [INFO] [stderr] | [INFO] [stderr] 1085 | / fn draw_wireframe_triangle( [INFO] [stderr] 1086 | | p0: Point, [INFO] [stderr] 1087 | | p1: Point, [INFO] [stderr] 1088 | | p2: Point, [INFO] [stderr] ... | [INFO] [stderr] 1094 | | canvas.draw_line(p2, p0, color); [INFO] [stderr] 1095 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `face_normal_direction_in_right` [INFO] [stderr] --> src/rendering.rs:155:1 [INFO] [stderr] | [INFO] [stderr] 155 | fn face_normal_direction_in_right(face: &Vec, vertices: &[Vector4f]) -> Vector3f { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `face_normal_direction_in_left` [INFO] [stderr] --> src/rendering.rs:167:1 [INFO] [stderr] | [INFO] [stderr] 167 | fn face_normal_direction_in_left(triangle: &Triangle, vertices: &[Vector4f]) -> Vector3f { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `is_vertex_outside` [INFO] [stderr] --> src/rendering.rs:312:1 [INFO] [stderr] | [INFO] [stderr] 312 | fn is_vertex_outside(plane: &Plane, vertex: Vector4f) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `is_vertex_inside` [INFO] [stderr] --> src/rendering.rs:318:1 [INFO] [stderr] | [INFO] [stderr] 318 | fn is_vertex_inside(plane: &Plane, vertex: Vector4f) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `render_wireframe_triangle` [INFO] [stderr] --> src/rendering.rs:475:1 [INFO] [stderr] | [INFO] [stderr] 475 | / fn render_wireframe_triangle( [INFO] [stderr] 476 | | triangle: Triangle4f, [INFO] [stderr] 477 | | camera: &ProjectiveCamera, [INFO] [stderr] 478 | | canvas: &mut BufferCanvas [INFO] [stderr] ... | [INFO] [stderr] 486 | | canvas.draw_line(c, a, Color { r: 255, g: 255, b: 255 }); [INFO] [stderr] 487 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:448:9 [INFO] [stderr] | [INFO] [stderr] 448 | let mut rng = rand::thread_rng(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:488:9 [INFO] [stderr] | [INFO] [stderr] 488 | let mut rng = rand::thread_rng(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:1147:9 [INFO] [stderr] | [INFO] [stderr] 1147 | let mut rendering_settings = RenderingSettings { [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:1204:9 [INFO] [stderr] | [INFO] [stderr] 1204 | let mut current_instance_index: Option = None; [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ray_tracing.rs:208:9 [INFO] [stderr] | [INFO] [stderr] 208 | let mut rng = rand::thread_rng(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ply2.rs:34:9 [INFO] [stderr] | [INFO] [stderr] 34 | let mut rng = rand::thread_rng(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:537:9 [INFO] [stderr] | [INFO] [stderr] 537 | let mut x02 = interpolate_int(p0.y, p0.x, p2.y, p2.x); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:538:9 [INFO] [stderr] | [INFO] [stderr] 538 | let mut h02 = interpolate_float(p0.y, p0.h, p2.y, p2.h); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:539:9 [INFO] [stderr] | [INFO] [stderr] 539 | let mut iz02 = interpolate_float(p0.y, 1.0 / p0.z, p2.y, 1.0 / p2.z); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:556:9 [INFO] [stderr] | [INFO] [stderr] 556 | let mut x_left; [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:557:9 [INFO] [stderr] | [INFO] [stderr] 557 | let mut x_right; [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:558:9 [INFO] [stderr] | [INFO] [stderr] 558 | let mut h_left; [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:559:9 [INFO] [stderr] | [INFO] [stderr] 559 | let mut h_right; [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:560:9 [INFO] [stderr] | [INFO] [stderr] 560 | let mut iz_left; [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:561:9 [INFO] [stderr] | [INFO] [stderr] 561 | let mut iz_right; [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:679:9 [INFO] [stderr] | [INFO] [stderr] 679 | let mut x02 = interpolate_int(p0.y, p0.x, p2.y, p2.x); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:680:9 [INFO] [stderr] | [INFO] [stderr] 680 | let mut h02 = interpolate_float(p0.y, p0.h, p2.y, p2.h); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:681:9 [INFO] [stderr] | [INFO] [stderr] 681 | let mut iz02 = interpolate_float(p0.y, 1.0 / p0.z, p2.y, 1.0 / p2.z); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:682:9 [INFO] [stderr] | [INFO] [stderr] 682 | let mut i02 = interpolate_float(p0.y, i0, p2.y, i2); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:705:9 [INFO] [stderr] | [INFO] [stderr] 705 | let mut x_left; [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:706:9 [INFO] [stderr] | [INFO] [stderr] 706 | let mut x_right; [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:707:9 [INFO] [stderr] | [INFO] [stderr] 707 | let mut h_left; [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:708:9 [INFO] [stderr] | [INFO] [stderr] 708 | let mut h_right; [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:709:9 [INFO] [stderr] | [INFO] [stderr] 709 | let mut iz_left; [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:710:9 [INFO] [stderr] | [INFO] [stderr] 710 | let mut iz_right; [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:711:9 [INFO] [stderr] | [INFO] [stderr] 711 | let mut i_left; [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:712:9 [INFO] [stderr] | [INFO] [stderr] 712 | let mut i_right; [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:836:9 [INFO] [stderr] | [INFO] [stderr] 836 | let mut x02 = interpolate_int(p0.y, p0.x, p2.y, p2.x); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:837:9 [INFO] [stderr] | [INFO] [stderr] 837 | let mut h02 = interpolate_float(p0.y, p0.h, p2.y, p2.h); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:838:9 [INFO] [stderr] | [INFO] [stderr] 838 | let mut iz02 = interpolate_float(p0.y, 1.0 / p0.z, p2.y, 1.0 / p2.z); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:839:9 [INFO] [stderr] | [INFO] [stderr] 839 | let mut normal_x_02 = interpolate_float(p0.y, normal0.x, p2.y, normal2.x); [INFO] [stderr] | ----^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:840:9 [INFO] [stderr] | [INFO] [stderr] 840 | let mut normal_y_02 = interpolate_float(p0.y, normal0.y, p2.y, normal2.y); [INFO] [stderr] | ----^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:841:9 [INFO] [stderr] | [INFO] [stderr] 841 | let mut normal_z_02 = interpolate_float(p0.y, normal0.z, p2.y, normal2.z); [INFO] [stderr] | ----^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:1052:9 [INFO] [stderr] | [INFO] [stderr] 1052 | let mut x02 = interpolate_int(p0.y, p0.x, p2.y, p2.x); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:1053:9 [INFO] [stderr] | [INFO] [stderr] 1053 | let mut h02 = interpolate_float(p0.y, p0.h, p2.y, p2.h); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:1054:9 [INFO] [stderr] | [INFO] [stderr] 1054 | let mut iz02 = interpolate_float(p0.y, 1.0 / p0.z, p2.y, 1.0 / p2.z); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:1055:9 [INFO] [stderr] | [INFO] [stderr] 1055 | let mut uz02 = interpolate_float(p0.y, uv0.u / p0.z, p2.y, uv2.u / p2.z); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:1056:9 [INFO] [stderr] | [INFO] [stderr] 1056 | let mut vz02 = interpolate_float(p0.y, uv0.v / p0.z, p2.y, uv2.v / p2.z); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:1057:9 [INFO] [stderr] | [INFO] [stderr] 1057 | let mut normal_x_02 = interpolate_float(p0.y, normal0.x, p2.y, normal2.x); [INFO] [stderr] | ----^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:1058:9 [INFO] [stderr] | [INFO] [stderr] 1058 | let mut normal_y_02 = interpolate_float(p0.y, normal0.y, p2.y, normal2.y); [INFO] [stderr] | ----^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/rendering.rs:1059:9 [INFO] [stderr] | [INFO] [stderr] 1059 | let mut normal_z_02 = interpolate_float(p0.y, normal0.z, p2.y, normal2.z); [INFO] [stderr] | ----^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: private type `Point2D` in public interface (error E0446) [INFO] [stderr] --> src/projective_camera.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | / pub fn project(&self, point: Vector3f) -> Point2D { [INFO] [stderr] 20 | | Point2D { [INFO] [stderr] 21 | | x: point.x * self.projection_plane_z / point.z, [INFO] [stderr] 22 | | y: point.y * self.projection_plane_z / point.z [INFO] [stderr] 23 | | } [INFO] [stderr] 24 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(private_in_public)]` on by default [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #34537 [INFO] [stderr] [INFO] [stderr] warning: private type `Point2D` in public interface (error E0446) [INFO] [stderr] --> src/projective_camera.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | / pub fn project_vertex(&self, vertex: Vector4f) -> Point2D { [INFO] [stderr] 27 | | Point2D { [INFO] [stderr] 28 | | x: vertex.x * self.projection_plane_z / vertex.z, [INFO] [stderr] 29 | | y: vertex.y * self.projection_plane_z / vertex.z [INFO] [stderr] 30 | | } [INFO] [stderr] 31 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #34537 [INFO] [stderr] [INFO] [stderr] warning: private type `Point` in public interface (error E0446) [INFO] [stderr] --> src/buffer_canvas.rs:46:5 [INFO] [stderr] | [INFO] [stderr] 46 | / pub fn viewport_to_canvas(&self, vertex: Vector4f, camera: &ProjectiveCamera) -> Point { [INFO] [stderr] 47 | | let point = camera.project_vertex(vertex); [INFO] [stderr] 48 | | let canvas_size = self.size as f64; [INFO] [stderr] 49 | | Point { [INFO] [stderr] ... | [INFO] [stderr] 54 | | } [INFO] [stderr] 55 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #34537 [INFO] [stderr] [INFO] [stderr] warning: private type `Point` in public interface (error E0446) [INFO] [stderr] --> src/buffer_canvas.rs:108:5 [INFO] [stderr] | [INFO] [stderr] 108 | / pub fn draw_line(&mut self, start: Point, end: Point, color: Color) { [INFO] [stderr] 109 | | trace!("drawing line [{},{}] - [{},{}]", start.x, start.y, end.x, end.y); [INFO] [stderr] 110 | | let start_pixel = self.point_to_pixel(start.x, start.y, color); [INFO] [stderr] 111 | | let end_pixel = self.point_to_pixel(end.x, end.y, color); [INFO] [stderr] ... | [INFO] [stderr] 118 | | self.rasterize_line(start_pixel, end_pixel); [INFO] [stderr] 119 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #34537 [INFO] [stderr] [INFO] [stderr] warning: function is never used: `render_scene_to_buffer` [INFO] [stderr] --> src/ray_tracing.rs:24:1 [INFO] [stderr] | [INFO] [stderr] 24 | / pub fn render_scene_to_buffer( [INFO] [stderr] 25 | | spheres: &Vec, [INFO] [stderr] 26 | | lights: &Vec, [INFO] [stderr] 27 | | buffer: &mut [u8], [INFO] [stderr] ... | [INFO] [stderr] 66 | | } [INFO] [stderr] 67 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `compute_lighting` [INFO] [stderr] --> src/ray_tracing.rs:81:1 [INFO] [stderr] | [INFO] [stderr] 81 | / fn compute_lighting( [INFO] [stderr] 82 | | point: Vector3f, [INFO] [stderr] 83 | | normal: Vector3f, [INFO] [stderr] 84 | | view: Vector3f, [INFO] [stderr] ... | [INFO] [stderr] 119 | | result [INFO] [stderr] 120 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `compute_light_from_direction` [INFO] [stderr] --> src/ray_tracing.rs:122:1 [INFO] [stderr] | [INFO] [stderr] 122 | / fn compute_light_from_direction( [INFO] [stderr] 123 | | point: Vector3f, [INFO] [stderr] 124 | | normal: Vector3f, [INFO] [stderr] 125 | | view: Vector3f, [INFO] [stderr] ... | [INFO] [stderr] 171 | | result [INFO] [stderr] 172 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `closest_intersection` [INFO] [stderr] --> src/ray_tracing.rs:174:1 [INFO] [stderr] | [INFO] [stderr] 174 | / fn closest_intersection( [INFO] [stderr] 175 | | origin: Vector3f, [INFO] [stderr] 176 | | direction: Vector3f, [INFO] [stderr] 177 | | min_t: f64, [INFO] [stderr] ... | [INFO] [stderr] 196 | | (closest_sphere, closest_t) [INFO] [stderr] 197 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `trace_ray` [INFO] [stderr] --> src/ray_tracing.rs:199:1 [INFO] [stderr] | [INFO] [stderr] 199 | / fn trace_ray( [INFO] [stderr] 200 | | spheres: &Vec, [INFO] [stderr] 201 | | lights: &Vec, [INFO] [stderr] 202 | | origin: Vector3f, [INFO] [stderr] ... | [INFO] [stderr] 268 | | } [INFO] [stderr] 269 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `add_colors` [INFO] [stderr] --> src/ray_tracing.rs:271:1 [INFO] [stderr] | [INFO] [stderr] 271 | fn add_colors(color1: Color, color2: Color) -> Color { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `contains` [INFO] [stderr] --> src/ray_tracing.rs:279:1 [INFO] [stderr] | [INFO] [stderr] 279 | fn contains(range: (f64, f64), n: f64) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `intersect_ray_with_sphere` [INFO] [stderr] --> src/ray_tracing.rs:284:1 [INFO] [stderr] | [INFO] [stderr] 284 | fn intersect_ray_with_sphere(origin: Vector3f, direction: Vector3f, sphere: Sphere) -> (f64, f64) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `rotation_around_y` [INFO] [stderr] --> src/vectors.rs:71:1 [INFO] [stderr] | [INFO] [stderr] 71 | pub fn rotation_around_y(d: f64) -> [[f64; 3]; 3] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `project` [INFO] [stderr] --> src/projective_camera.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | pub fn project(&self, point: Vector3f) -> Point2D { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `x_min` [INFO] [stderr] --> src/main.rs:70:16 [INFO] [stderr] | [INFO] [stderr] 70 | struct Frame { x_min: f64, x_max: f64, y_min: f64, y_max: f64 } [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `x_max` [INFO] [stderr] --> src/main.rs:70:28 [INFO] [stderr] | [INFO] [stderr] 70 | struct Frame { x_min: f64, x_max: f64, y_min: f64, y_max: f64 } [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `y_min` [INFO] [stderr] --> src/main.rs:70:40 [INFO] [stderr] | [INFO] [stderr] 70 | struct Frame { x_min: f64, x_max: f64, y_min: f64, y_max: f64 } [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `y_max` [INFO] [stderr] --> src/main.rs:70:52 [INFO] [stderr] | [INFO] [stderr] 70 | struct Frame { x_min: f64, x_max: f64, y_min: f64, y_max: f64 } [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `project` [INFO] [stderr] --> src/main.rs:178:1 [INFO] [stderr] | [INFO] [stderr] 178 | fn project(point3d: Vector3f) -> Point2D { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `normalize` [INFO] [stderr] --> src/main.rs:182:1 [INFO] [stderr] | [INFO] [stderr] 182 | fn normalize(point2d: Point2D, frame: Frame) -> Point2D { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `rasterize` [INFO] [stderr] --> src/main.rs:189:1 [INFO] [stderr] | [INFO] [stderr] 189 | fn rasterize(point: Point2D, size: usize) -> Pixel { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `simple_line` [INFO] [stderr] --> src/main.rs:267:1 [INFO] [stderr] | [INFO] [stderr] 267 | fn simple_line(start: Pixel, end: Pixel, buffer: &mut [u8], size: usize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `face_visible` [INFO] [stderr] --> src/main.rs:302:1 [INFO] [stderr] | [INFO] [stderr] 302 | fn face_visible(face: &Vec, vertices: &[Vector3f]) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `face_visible2` [INFO] [stderr] --> src/main.rs:313:1 [INFO] [stderr] | [INFO] [stderr] 313 | fn face_visible2(face: &Vec, vertices: &[Vector3f]) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `draw_face` [INFO] [stderr] --> src/main.rs:328:1 [INFO] [stderr] | [INFO] [stderr] 328 | / fn draw_face(face: &Vec, [INFO] [stderr] 329 | | vertex_pixels: &Vec, [INFO] [stderr] 330 | | buffer: &mut [u8], [INFO] [stderr] 331 | | size: usize) { [INFO] [stderr] ... | [INFO] [stderr] 347 | | } [INFO] [stderr] 348 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `transform` [INFO] [stderr] --> src/main.rs:350:1 [INFO] [stderr] | [INFO] [stderr] 350 | fn transform(vertices: &Vec, vector: Vector3f) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `rotated_cube_vertices` [INFO] [stderr] --> src/main.rs:364:1 [INFO] [stderr] | [INFO] [stderr] 364 | fn rotated_cube_vertices(t: f64) -> [Vector3f; 8] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `rotated_cube` [INFO] [stderr] --> src/main.rs:418:1 [INFO] [stderr] | [INFO] [stderr] 418 | fn rotated_cube(t: f64) -> (Vec, Vec>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `triangle` [INFO] [stderr] --> src/main.rs:435:1 [INFO] [stderr] | [INFO] [stderr] 435 | fn triangle<'a>(size: f64) -> Model<'a> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `two_unit_cube` [INFO] [stderr] --> src/main.rs:642:1 [INFO] [stderr] | [INFO] [stderr] 642 | fn two_unit_cube<'a>() -> Model<'a> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `enclosing_frame` [INFO] [stderr] --> src/main.rs:646:1 [INFO] [stderr] | [INFO] [stderr] 646 | fn enclosing_frame(vertices: &Vec) -> Frame { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `find_z_transform` [INFO] [stderr] --> src/main.rs:697:1 [INFO] [stderr] | [INFO] [stderr] 697 | fn find_z_transform(vertices: &Vec) -> f64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `render_model_to_buffer` [INFO] [stderr] --> src/main.rs:715:1 [INFO] [stderr] | [INFO] [stderr] 715 | / fn render_model_to_buffer( [INFO] [stderr] 716 | | buffer: &mut [u8], [INFO] [stderr] 717 | | size: usize, [INFO] [stderr] 718 | | vertices: Vec, [INFO] [stderr] ... | [INFO] [stderr] 760 | | // rasterize_line(Pixel { x: 60, y: 50 }, Pixel { x: 120, y: 60 }, &mut buffer, size); [INFO] [stderr] 761 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `show_buffer_in_window` [INFO] [stderr] --> src/main.rs:763:1 [INFO] [stderr] | [INFO] [stderr] 763 | fn show_buffer_in_window(buffer: &mut [u8], size: usize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `rotating_cube_window` [INFO] [stderr] --> src/main.rs:817:1 [INFO] [stderr] | [INFO] [stderr] 817 | fn rotating_cube_window(buffer: &mut [u8], size: usize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `three_spheres_window` [INFO] [stderr] --> src/main.rs:927:1 [INFO] [stderr] | [INFO] [stderr] 927 | fn three_spheres_window(buffer: &mut [u8], size: usize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `render_video` [INFO] [stderr] --> src/main.rs:1073:1 [INFO] [stderr] | [INFO] [stderr] 1073 | fn render_video() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `draw_wireframe_triangle` [INFO] [stderr] --> src/main.rs:1085:1 [INFO] [stderr] | [INFO] [stderr] 1085 | / fn draw_wireframe_triangle( [INFO] [stderr] 1086 | | p0: Point, [INFO] [stderr] 1087 | | p1: Point, [INFO] [stderr] 1088 | | p2: Point, [INFO] [stderr] ... | [INFO] [stderr] 1094 | | canvas.draw_line(p2, p0, color); [INFO] [stderr] 1095 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `face_normal_direction_in_right` [INFO] [stderr] --> src/rendering.rs:155:1 [INFO] [stderr] | [INFO] [stderr] 155 | fn face_normal_direction_in_right(face: &Vec, vertices: &[Vector4f]) -> Vector3f { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `face_normal_direction_in_left` [INFO] [stderr] --> src/rendering.rs:167:1 [INFO] [stderr] | [INFO] [stderr] 167 | fn face_normal_direction_in_left(triangle: &Triangle, vertices: &[Vector4f]) -> Vector3f { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `is_vertex_outside` [INFO] [stderr] --> src/rendering.rs:312:1 [INFO] [stderr] | [INFO] [stderr] 312 | fn is_vertex_outside(plane: &Plane, vertex: Vector4f) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `is_vertex_inside` [INFO] [stderr] --> src/rendering.rs:318:1 [INFO] [stderr] | [INFO] [stderr] 318 | fn is_vertex_inside(plane: &Plane, vertex: Vector4f) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `render_wireframe_triangle` [INFO] [stderr] --> src/rendering.rs:475:1 [INFO] [stderr] | [INFO] [stderr] 475 | / fn render_wireframe_triangle( [INFO] [stderr] 476 | | triangle: Triangle4f, [INFO] [stderr] 477 | | camera: &ProjectiveCamera, [INFO] [stderr] 478 | | canvas: &mut BufferCanvas [INFO] [stderr] ... | [INFO] [stderr] 486 | | canvas.draw_line(c, a, Color { r: 255, g: 255, b: 255 }); [INFO] [stderr] 487 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 28.20s [INFO] running `"docker" "inspect" "2b2e402f934a3170b429fd4724dbc78c06dea568758e5f35e058ece86499f62a"` [INFO] running `"docker" "rm" "-f" "2b2e402f934a3170b429fd4724dbc78c06dea568758e5f35e058ece86499f62a"` [INFO] [stdout] 2b2e402f934a3170b429fd4724dbc78c06dea568758e5f35e058ece86499f62a