[INFO] cloning repository https://github.com/mateuszkaczmarczyk999/cgfs_with_wgpu [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mateuszkaczmarczyk999/cgfs_with_wgpu" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmateuszkaczmarczyk999%2Fcgfs_with_wgpu", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmateuszkaczmarczyk999%2Fcgfs_with_wgpu'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 54286704cb3d4f6441f3b4735c64671a79b67ade [INFO] checking mateuszkaczmarczyk999/cgfs_with_wgpu against master#c2239bca5b89a8d3573cc0fc0f2fa65c50edb79c for pr-123737 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmateuszkaczmarczyk999%2Fcgfs_with_wgpu" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/mateuszkaczmarczyk999/cgfs_with_wgpu on toolchain c2239bca5b89a8d3573cc0fc0f2fa65c50edb79c [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2239bca5b89a8d3573cc0fc0f2fa65c50edb79c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/mateuszkaczmarczyk999/cgfs_with_wgpu [INFO] finished tweaking git repo https://github.com/mateuszkaczmarczyk999/cgfs_with_wgpu [INFO] tweaked toml for git repo https://github.com/mateuszkaczmarczyk999/cgfs_with_wgpu written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/mateuszkaczmarczyk999/cgfs_with_wgpu 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" "+c2239bca5b89a8d3573cc0fc0f2fa65c50edb79c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded winnow v0.5.32 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+c2239bca5b89a8d3573cc0fc0f2fa65c50edb79c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 6fe41d557d058c0fe79f44f707b6f9225fdbeda29ebf7398f8d73c5b5ee5dfc0 [INFO] running `Command { std: "docker" "start" "-a" "6fe41d557d058c0fe79f44f707b6f9225fdbeda29ebf7398f8d73c5b5ee5dfc0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "6fe41d557d058c0fe79f44f707b6f9225fdbeda29ebf7398f8d73c5b5ee5dfc0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6fe41d557d058c0fe79f44f707b6f9225fdbeda29ebf7398f8d73c5b5ee5dfc0", kill_on_drop: false }` [INFO] [stdout] 6fe41d557d058c0fe79f44f707b6f9225fdbeda29ebf7398f8d73c5b5ee5dfc0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+c2239bca5b89a8d3573cc0fc0f2fa65c50edb79c" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] b22b8f2e064a9eab61940be1a60baf0237d6adcb993ffa98a7d384c13f8dff66 [INFO] running `Command { std: "docker" "start" "-a" "b22b8f2e064a9eab61940be1a60baf0237d6adcb993ffa98a7d384c13f8dff66", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.74 [INFO] [stderr] Compiling libc v0.2.151 [INFO] [stderr] Checking bitflags v2.4.1 [INFO] [stderr] Checking smallvec v1.11.2 [INFO] [stderr] Compiling thiserror v1.0.56 [INFO] [stderr] Checking log v0.4.20 [INFO] [stderr] Compiling wayland-sys v0.29.5 [INFO] [stderr] Compiling ahash v0.8.7 [INFO] [stderr] Compiling num-traits v0.2.17 [INFO] [stderr] Checking termcolor v1.4.0 [INFO] [stderr] Compiling khronos-egl v6.0.0 [INFO] [stderr] Checking fdeflate v0.3.3 [INFO] [stderr] Compiling smithay-client-toolkit v0.16.1 [INFO] [stderr] Compiling rustix v0.38.28 [INFO] [stderr] Checking strict-num v0.1.1 [INFO] [stderr] Checking memchr v2.7.1 [INFO] [stderr] Checking gpu-alloc-types v0.3.0 [INFO] [stderr] Checking gpu-descriptor-types v0.1.2 [INFO] [stderr] Checking wgpu-types v0.18.0 [INFO] [stderr] Checking glow v0.13.0 [INFO] [stderr] Checking renderdoc-sys v1.0.0 [INFO] [stderr] Checking codespan-reporting v0.11.1 [INFO] [stderr] Checking regex-syntax v0.8.2 [INFO] [stderr] Checking profiling v1.0.13 [INFO] [stderr] Checking linux-raw-sys v0.4.12 [INFO] [stderr] Checking ab_glyph v0.2.23 [INFO] [stderr] Checking gpu-alloc v0.6.0 [INFO] [stderr] Checking spin v0.9.8 [INFO] [stderr] Checking futures-core v0.3.30 [INFO] [stderr] Checking png v0.17.10 [INFO] [stderr] Checking futures-sink v0.3.30 [INFO] [stderr] Checking pollster v0.3.0 [INFO] [stderr] Checking hashbrown v0.14.3 [INFO] [stderr] Checking aho-corasick v1.1.2 [INFO] [stderr] Compiling quote v1.0.35 [INFO] [stderr] Compiling syn v2.0.46 [INFO] [stderr] Compiling wayland-scanner v0.29.5 [INFO] [stderr] Checking is-terminal v0.4.10 [INFO] [stderr] Checking indexmap v2.1.0 [INFO] [stderr] Checking gpu-descriptor v0.2.4 [INFO] [stderr] Checking spirv v0.2.0+1.5.4 [INFO] [stderr] Checking regex-automata v0.4.3 [INFO] [stderr] Checking nix v0.24.3 [INFO] [stderr] Checking parking_lot_core v0.9.9 [INFO] [stderr] Checking nix v0.25.1 [INFO] [stderr] Checking memmap2 v0.5.10 [INFO] [stderr] Checking getrandom v0.2.11 [INFO] [stderr] Checking mio v0.8.10 [INFO] [stderr] Checking x11-dl v2.21.0 [INFO] [stderr] Checking nanorand v0.7.0 [INFO] [stderr] Checking parking_lot v0.12.1 [INFO] [stderr] Checking flume v0.11.0 [INFO] [stderr] Compiling wayland-client v0.29.5 [INFO] [stderr] Compiling wayland-protocols v0.29.5 [INFO] [stderr] Compiling winit v0.28.7 [INFO] [stderr] Checking wayland-commons v0.29.5 [INFO] [stderr] Compiling thiserror-impl v1.0.56 [INFO] [stderr] Compiling bytemuck_derive v1.5.0 [INFO] [stderr] Checking regex v1.10.2 [INFO] [stderr] Checking bytemuck v1.14.0 [INFO] [stderr] Checking env_logger v0.10.1 [INFO] [stderr] Checking tiny-skia-path v0.8.4 [INFO] [stderr] Checking wayland-cursor v0.29.5 [INFO] [stderr] Checking calloop v0.10.6 [INFO] [stderr] Checking naga v0.14.2 [INFO] [stderr] Checking tiny-skia v0.8.4 [INFO] [stderr] Checking wgpu-hal v0.18.1 [INFO] [stderr] Checking wgpu-core v0.18.1 [INFO] [stderr] Checking sctk-adwaita v0.5.4 [INFO] [stderr] Checking wgpu v0.18.0 [INFO] [stderr] Checking cgfs_with_wgpu v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/raytracer.rs:64:22 [INFO] [stdout] | [INFO] [stdout] 64 | 'x' => { ( -Self::CANVAS[0]/2 ..= Self::CANVAS[0]/2 ) }, [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 64 - 'x' => { ( -Self::CANVAS[0]/2 ..= Self::CANVAS[0]/2 ) }, [INFO] [stdout] 64 + 'x' => { -Self::CANVAS[0]/2 ..= Self::CANVAS[0]/2 }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/raytracer.rs:65:22 [INFO] [stdout] | [INFO] [stdout] 65 | 'y' => { ( -Self::CANVAS[1]/2 ..= Self::CANVAS[1]/2 ) }, [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 65 - 'y' => { ( -Self::CANVAS[1]/2 ..= Self::CANVAS[1]/2 ) }, [INFO] [stdout] 65 + 'y' => { -Self::CANVAS[1]/2 ..= Self::CANVAS[1]/2 }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/raytracer.rs:66:20 [INFO] [stdout] | [INFO] [stdout] 66 | _ => { ( -1 ..= 1 ) } [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 66 - _ => { ( -1 ..= 1 ) } [INFO] [stdout] 66 + _ => { -1 ..= 1 } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/raytracer.rs:119:93 [INFO] [stdout] | [INFO] [stdout] 119 | let (shadow_sphere, _) = self.closest_intersection(position, light_vec, (0.001 ..= 1.0)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 119 - let (shadow_sphere, _) = self.closest_intersection(position, light_vec, (0.001 ..= 1.0)); [INFO] [stdout] 119 + let (shadow_sphere, _) = self.closest_intersection(position, light_vec, 0.001 ..= 1.0); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/raytracer.rs:129:99 [INFO] [stdout] | [INFO] [stdout] 129 | let (shadow_sphere, _) = self.closest_intersection(position, light.direction, (0.001 ..= f32::INFINITY)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 129 - let (shadow_sphere, _) = self.closest_intersection(position, light.direction, (0.001 ..= f32::INFINITY)); [INFO] [stdout] 129 + let (shadow_sphere, _) = self.closest_intersection(position, light.direction, 0.001 ..= f32::INFINITY); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/raytracer.rs:165:25 [INFO] [stdout] | [INFO] [stdout] 165 | let ray_range = (t_min ..= t_max); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 165 - let ray_range = (t_min ..= t_max); [INFO] [stdout] 165 + let ray_range = t_min ..= t_max; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `to_inverse_rotation_mat4`, `to_inverse_translation_mat4` [INFO] [stdout] --> src/rasterizer.rs:3:221 [INFO] [stdout] | [INFO] [stdout] 3 | ...mat4, mat4_default, multiply_mat4_mat4, to_inverse_translation_mat4, to_inverse_rotation_mat4}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `interpolate`, `multiply_color`, `rotate_vector`, `to_rotation_mat4`, `to_scale_mat4`, `to_translation_mat4`, `vector_addition`, `vector_multiplication` [INFO] [stdout] --> src/projection.rs:1:30 [INFO] [stdout] | [INFO] [stdout] 1 | ...s, interpolate, multiply_color, vector_multiplication, vector_addition, rotate_vector, to_translation_mat4, to_scale_mat4, to_rotation_mat4, m... [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `WindowEvent` is imported redundantly [INFO] [stdout] --> src/lib.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 10 | event::*, [INFO] [stdout] | -------- the item `WindowEvent` is already imported here [INFO] [stdout] ... [INFO] [stdout] 16 | use winit::event::WindowEvent; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Raytracer`, `init_raytracer` [INFO] [stdout] --> src/lib.rs:19:18 [INFO] [stdout] | [INFO] [stdout] 19 | use raytracer::{ Raytracer, init_raytracer }; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/raytracer.rs:64:22 [INFO] [stdout] | [INFO] [stdout] 64 | 'x' => { ( -Self::CANVAS[0]/2 ..= Self::CANVAS[0]/2 ) }, [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 64 - 'x' => { ( -Self::CANVAS[0]/2 ..= Self::CANVAS[0]/2 ) }, [INFO] [stdout] 64 + 'x' => { -Self::CANVAS[0]/2 ..= Self::CANVAS[0]/2 }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/raytracer.rs:65:22 [INFO] [stdout] | [INFO] [stdout] 65 | 'y' => { ( -Self::CANVAS[1]/2 ..= Self::CANVAS[1]/2 ) }, [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 65 - 'y' => { ( -Self::CANVAS[1]/2 ..= Self::CANVAS[1]/2 ) }, [INFO] [stdout] 65 + 'y' => { -Self::CANVAS[1]/2 ..= Self::CANVAS[1]/2 }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/raytracer.rs:66:20 [INFO] [stdout] | [INFO] [stdout] 66 | _ => { ( -1 ..= 1 ) } [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 66 - _ => { ( -1 ..= 1 ) } [INFO] [stdout] 66 + _ => { -1 ..= 1 } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/raytracer.rs:119:93 [INFO] [stdout] | [INFO] [stdout] 119 | let (shadow_sphere, _) = self.closest_intersection(position, light_vec, (0.001 ..= 1.0)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 119 - let (shadow_sphere, _) = self.closest_intersection(position, light_vec, (0.001 ..= 1.0)); [INFO] [stdout] 119 + let (shadow_sphere, _) = self.closest_intersection(position, light_vec, 0.001 ..= 1.0); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/raytracer.rs:129:99 [INFO] [stdout] | [INFO] [stdout] 129 | let (shadow_sphere, _) = self.closest_intersection(position, light.direction, (0.001 ..= f32::INFINITY)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 129 - let (shadow_sphere, _) = self.closest_intersection(position, light.direction, (0.001 ..= f32::INFINITY)); [INFO] [stdout] 129 + let (shadow_sphere, _) = self.closest_intersection(position, light.direction, 0.001 ..= f32::INFINITY); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/raytracer.rs:165:25 [INFO] [stdout] | [INFO] [stdout] 165 | let ray_range = (t_min ..= t_max); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 165 - let ray_range = (t_min ..= t_max); [INFO] [stdout] 165 + let ray_range = t_min ..= t_max; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `to_inverse_rotation_mat4`, `to_inverse_translation_mat4` [INFO] [stdout] --> src/rasterizer.rs:3:221 [INFO] [stdout] | [INFO] [stdout] 3 | ...mat4, mat4_default, multiply_mat4_mat4, to_inverse_translation_mat4, to_inverse_rotation_mat4}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `interpolate`, `multiply_color`, `rotate_vector`, `to_rotation_mat4`, `to_scale_mat4`, `to_translation_mat4`, `vector_addition`, `vector_multiplication` [INFO] [stdout] --> src/projection.rs:1:30 [INFO] [stdout] | [INFO] [stdout] 1 | ...s, interpolate, multiply_color, vector_multiplication, vector_addition, rotate_vector, to_translation_mat4, to_scale_mat4, to_rotation_mat4, m... [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `WindowEvent` is imported redundantly [INFO] [stdout] --> src/lib.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 10 | event::*, [INFO] [stdout] | -------- the item `WindowEvent` is already imported here [INFO] [stdout] ... [INFO] [stdout] 16 | use winit::event::WindowEvent; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Raytracer`, `init_raytracer` [INFO] [stdout] --> src/lib.rs:19:18 [INFO] [stdout] | [INFO] [stdout] 19 | use raytracer::{ Raytracer, init_raytracer }; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/rasterizer.rs:198:13 [INFO] [stdout] | [INFO] [stdout] 198 | let mut shade: [f32; 3] = [10.0, 0.0, 100.0]; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/rasterizer.rs:203:13 [INFO] [stdout] | [INFO] [stdout] 203 | let mut x_vals_b_to_c = interpolate(b[1], b[0] as f32, c[1], c[0] as f32); [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/rasterizer.rs:204:13 [INFO] [stdout] | [INFO] [stdout] 204 | let mut shade_b_to_c = interpolate(b[1], shade[1], c[1], shade[2]); [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/rasterizer.rs:206:13 [INFO] [stdout] | [INFO] [stdout] 206 | let mut x_vals_a_to_c = interpolate(a[1], a[0] as f32, c[1], c[0] as f32); [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/rasterizer.rs:207:13 [INFO] [stdout] | [INFO] [stdout] 207 | let mut shade_a_to_c = interpolate(a[1], shade[0], c[1], shade[2]); [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/rasterizer.rs:198:13 [INFO] [stdout] | [INFO] [stdout] 198 | let mut shade: [f32; 3] = [10.0, 0.0, 100.0]; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/rasterizer.rs:203:13 [INFO] [stdout] | [INFO] [stdout] 203 | let mut x_vals_b_to_c = interpolate(b[1], b[0] as f32, c[1], c[0] as f32); [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/rasterizer.rs:204:13 [INFO] [stdout] | [INFO] [stdout] 204 | let mut shade_b_to_c = interpolate(b[1], shade[1], c[1], shade[2]); [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/rasterizer.rs:206:13 [INFO] [stdout] | [INFO] [stdout] 206 | let mut x_vals_a_to_c = interpolate(a[1], a[0] as f32, c[1], c[0] as f32); [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/rasterizer.rs:207:13 [INFO] [stdout] | [INFO] [stdout] 207 | let mut shade_a_to_c = interpolate(a[1], shade[0], c[1], shade[2]); [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `X`, `Y`, and `Z` are never constructed [INFO] [stdout] --> src/utilities.rs:2:17 [INFO] [stdout] | [INFO] [stdout] 2 | pub enum Axis { X, Y, Z } [INFO] [stdout] | ---- ^ ^ ^ [INFO] [stdout] | | [INFO] [stdout] | variants in this enum [INFO] [stdout] | [INFO] [stdout] = note: `Axis` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dot_product` is never used [INFO] [stdout] --> src/utilities.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn dot_product(v1: [f32; 3], v2: [f32; 3]) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `vector_length` is never used [INFO] [stdout] --> src/utilities.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | pub fn vector_length(vector: [f32; 3]) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `vector_subtraction` is never used [INFO] [stdout] --> src/utilities.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn vector_subtraction(v1: [f32; 3], v2: [f32; 3]) -> [f32; 3] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `scale_vector` is never used [INFO] [stdout] --> src/utilities.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn scale_vector(v1: [f32; 3], scalar: f32) -> [f32; 3] { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `divide_vector` is never used [INFO] [stdout] --> src/utilities.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn divide_vector(v1: [f32; 3], scalar: f32) -> [f32; 3] { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `color_to_vector` is never used [INFO] [stdout] --> src/utilities.rs:32:8 [INFO] [stdout] | [INFO] [stdout] 32 | pub fn color_to_vector(color: [i32; 3]) -> [f32; 3] { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `reverse_vector` is never used [INFO] [stdout] --> src/utilities.rs:36:8 [INFO] [stdout] | [INFO] [stdout] 36 | pub fn reverse_vector(v1: [f32; 3]) -> [f32; 3] { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `multiply_color` is never used [INFO] [stdout] --> src/utilities.rs:40:8 [INFO] [stdout] | [INFO] [stdout] 40 | pub fn multiply_color(color: [f32; 3], factor: f32) -> [f32; 3] { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Raytracer` is never constructed [INFO] [stdout] --> src/raytracer.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct Raytracer { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/raytracer.rs:23:15 [INFO] [stdout] | [INFO] [stdout] 22 | impl Raytracer { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 23 | pub const CANVAS: [i32; 2] = [ 1600, 1600 ]; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 26 | const VIEWPORT: [f32; 3] = [1.0, 1.0, 1.0]; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 29 | const CAMERA_POSITION: [f32; 3] = [0.0, 0.0, 0.0]; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | const BACKGROUND_COLOR: [i32; 3] = [0, 0, 0]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn put_pixel(&mut self, x: i32, y: i32, rgb: [f32; 3]) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 47 | pub fn get_state(&mut self) -> &[Vertex] { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn get_canvas_size(&mut self) -> [i32; 2] { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | pub fn add_to_scene(&mut self, sphere: Sphere) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | pub fn add_light(&mut self, light: Light) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | fn get_canvas_range(&mut self, axis: char) -> RangeInclusive { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 70 | fn canvas_to_viewport(&mut self, x: i32, y: i32) -> [f32; 3] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | fn diffuse_reflection(&self, light_intensity: f32, light_vec: [f32; 3], normal_vec: [f32; 3]) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 87 | fn reflect_ray(&self, ray: [f32; 3], normal: [f32; 3]) -> [f32; 3] { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 93 | fn specular_reflection(&self, light_intensity: f32, light_vec: [f32; 3], normal_vec: [f32; 3], bounce_vec: [f32; 3], specular_scale: ... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 104 | fn add_reflection(&self, color: [f32; 3], reflection: [f32; 3], reflective: f32) -> [f32; 3] { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | fn compute_lighting(&self, position: [f32; 3], normal: [f32; 3], bounce: [f32; 3], specular: f32) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 143 | fn closest_intersection(&self, origin: [f32; 3], direction: [f32; 3], ray_range: RangeInclusive) -> (Option<&Sphere>, f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | fn trace_ray(&self, origin: [f32; 3], direction: [f32; 3], t_min: f32, t_max: f32, depth: u32) -> [f32; 3] { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 188 | pub fn pass(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `init_raytracer` is never used [INFO] [stdout] --> src/raytracer.rs:199:8 [INFO] [stdout] | [INFO] [stdout] 199 | pub fn init_raytracer() -> Raytracer { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `LightMode` is never used [INFO] [stdout] --> src/geometry.rs:36:10 [INFO] [stdout] | [INFO] [stdout] 36 | pub enum LightMode { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Light` is never constructed [INFO] [stdout] --> src/geometry.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Light { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Sphere` is never constructed [INFO] [stdout] --> src/geometry.rs:49:12 [INFO] [stdout] | [INFO] [stdout] 49 | pub struct Sphere { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `intersect_ray` and `get_normal` are never used [INFO] [stdout] --> src/geometry.rs:58:12 [INFO] [stdout] | [INFO] [stdout] 57 | impl Sphere { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] 58 | pub fn intersect_ray(&self, camera_origin: [f32; 3], ray_direction: [f32; 3]) -> (f32, f32) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | pub fn get_normal(&self, position: [f32; 3]) -> [f32; 3] { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `viewport` and `projection` are never read [INFO] [stdout] --> src/rasterizer.rs:104:5 [INFO] [stdout] | [INFO] [stdout] 102 | pub struct Rasterizer { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 103 | state: Vec, [INFO] [stdout] 104 | viewport: Viewport, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 105 | camera: Camera, [INFO] [stdout] 106 | projection: PerspectiveProjection, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `CAMERA_POSITION` and `draw_filled_triangle` are never used [INFO] [stdout] --> src/rasterizer.rs:112:15 [INFO] [stdout] | [INFO] [stdout] 109 | impl Rasterizer { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 112 | pub const CAMERA_POSITION: [f32; 3] = [0.0, 0.0, 0.0]; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 189 | pub fn draw_filled_triangle(&mut self, point_a: [i32; 2], point_b: [i32; 2], point_c: [i32; 2], rgb: [f32; 3]) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `field_of_view`, `aspect_ratio`, `near_clipping_plane`, and `far_clipping_plane` are never read [INFO] [stdout] --> src/projection.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 31 | pub struct PerspectiveProjection { [INFO] [stdout] | --------------------- fields in this struct [INFO] [stdout] 32 | field_of_view: f32, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 33 | aspect_ratio: f32, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 34 | near_clipping_plane: f32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 35 | far_clipping_plane: f32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `X`, `Y`, and `Z` are never constructed [INFO] [stdout] --> src/utilities.rs:2:17 [INFO] [stdout] | [INFO] [stdout] 2 | pub enum Axis { X, Y, Z } [INFO] [stdout] | ---- ^ ^ ^ [INFO] [stdout] | | [INFO] [stdout] | variants in this enum [INFO] [stdout] | [INFO] [stdout] = note: `Axis` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dot_product` is never used [INFO] [stdout] --> src/utilities.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn dot_product(v1: [f32; 3], v2: [f32; 3]) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_projection_mat4` is never used [INFO] [stdout] --> src/projection.rs:43:12 [INFO] [stdout] | [INFO] [stdout] 38 | impl PerspectiveProjection { [INFO] [stdout] | -------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 43 | pub fn get_projection_mat4(&self) -> [[f32; 4]; 4] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `vector_length` is never used [INFO] [stdout] --> src/utilities.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | pub fn vector_length(vector: [f32; 3]) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `vector_subtraction` is never used [INFO] [stdout] --> src/utilities.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn vector_subtraction(v1: [f32; 3], v2: [f32; 3]) -> [f32; 3] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `width` and `height` are never read [INFO] [stdout] --> src/projection.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 59 | pub struct Viewport { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 60 | width: f32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 61 | height: f32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `scale_vector` is never used [INFO] [stdout] --> src/utilities.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn scale_vector(v1: [f32; 3], scalar: f32) -> [f32; 3] { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `divide_vector` is never used [INFO] [stdout] --> src/utilities.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn divide_vector(v1: [f32; 3], scalar: f32) -> [f32; 3] { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_canvas_mat4` is never used [INFO] [stdout] --> src/projection.rs:68:12 [INFO] [stdout] | [INFO] [stdout] 64 | impl Viewport { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn to_canvas_mat4(&self) -> [[f32; 4]; 4] { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `color_to_vector` is never used [INFO] [stdout] --> src/utilities.rs:32:8 [INFO] [stdout] | [INFO] [stdout] 32 | pub fn color_to_vector(color: [i32; 3]) -> [f32; 3] { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `reverse_vector` is never used [INFO] [stdout] --> src/utilities.rs:36:8 [INFO] [stdout] | [INFO] [stdout] 36 | pub fn reverse_vector(v1: [f32; 3]) -> [f32; 3] { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `multiply_color` is never used [INFO] [stdout] --> src/utilities.rs:40:8 [INFO] [stdout] | [INFO] [stdout] 40 | pub fn multiply_color(color: [f32; 3], factor: f32) -> [f32; 3] { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Raytracer` is never constructed [INFO] [stdout] --> src/raytracer.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct Raytracer { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/raytracer.rs:23:15 [INFO] [stdout] | [INFO] [stdout] 22 | impl Raytracer { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 23 | pub const CANVAS: [i32; 2] = [ 1600, 1600 ]; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 26 | const VIEWPORT: [f32; 3] = [1.0, 1.0, 1.0]; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 29 | const CAMERA_POSITION: [f32; 3] = [0.0, 0.0, 0.0]; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | const BACKGROUND_COLOR: [i32; 3] = [0, 0, 0]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn put_pixel(&mut self, x: i32, y: i32, rgb: [f32; 3]) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 47 | pub fn get_state(&mut self) -> &[Vertex] { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn get_canvas_size(&mut self) -> [i32; 2] { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | pub fn add_to_scene(&mut self, sphere: Sphere) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | pub fn add_light(&mut self, light: Light) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | fn get_canvas_range(&mut self, axis: char) -> RangeInclusive { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 70 | fn canvas_to_viewport(&mut self, x: i32, y: i32) -> [f32; 3] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | fn diffuse_reflection(&self, light_intensity: f32, light_vec: [f32; 3], normal_vec: [f32; 3]) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 87 | fn reflect_ray(&self, ray: [f32; 3], normal: [f32; 3]) -> [f32; 3] { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 93 | fn specular_reflection(&self, light_intensity: f32, light_vec: [f32; 3], normal_vec: [f32; 3], bounce_vec: [f32; 3], specular_scale: ... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 104 | fn add_reflection(&self, color: [f32; 3], reflection: [f32; 3], reflective: f32) -> [f32; 3] { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | fn compute_lighting(&self, position: [f32; 3], normal: [f32; 3], bounce: [f32; 3], specular: f32) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 143 | fn closest_intersection(&self, origin: [f32; 3], direction: [f32; 3], ray_range: RangeInclusive) -> (Option<&Sphere>, f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | fn trace_ray(&self, origin: [f32; 3], direction: [f32; 3], t_min: f32, t_max: f32, depth: u32) -> [f32; 3] { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 188 | pub fn pass(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `init_raytracer` is never used [INFO] [stdout] --> src/raytracer.rs:199:8 [INFO] [stdout] | [INFO] [stdout] 199 | pub fn init_raytracer() -> Raytracer { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `LightMode` is never used [INFO] [stdout] --> src/geometry.rs:36:10 [INFO] [stdout] | [INFO] [stdout] 36 | pub enum LightMode { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Light` is never constructed [INFO] [stdout] --> src/geometry.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Light { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Sphere` is never constructed [INFO] [stdout] --> src/geometry.rs:49:12 [INFO] [stdout] | [INFO] [stdout] 49 | pub struct Sphere { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `intersect_ray` and `get_normal` are never used [INFO] [stdout] --> src/geometry.rs:58:12 [INFO] [stdout] | [INFO] [stdout] 57 | impl Sphere { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] 58 | pub fn intersect_ray(&self, camera_origin: [f32; 3], ray_direction: [f32; 3]) -> (f32, f32) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | pub fn get_normal(&self, position: [f32; 3]) -> [f32; 3] { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `viewport` and `projection` are never read [INFO] [stdout] --> src/rasterizer.rs:104:5 [INFO] [stdout] | [INFO] [stdout] 102 | pub struct Rasterizer { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 103 | state: Vec, [INFO] [stdout] 104 | viewport: Viewport, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 105 | camera: Camera, [INFO] [stdout] 106 | projection: PerspectiveProjection, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `CAMERA_POSITION` and `draw_filled_triangle` are never used [INFO] [stdout] --> src/rasterizer.rs:112:15 [INFO] [stdout] | [INFO] [stdout] 109 | impl Rasterizer { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 112 | pub const CAMERA_POSITION: [f32; 3] = [0.0, 0.0, 0.0]; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 189 | pub fn draw_filled_triangle(&mut self, point_a: [i32; 2], point_b: [i32; 2], point_c: [i32; 2], rgb: [f32; 3]) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `field_of_view`, `aspect_ratio`, `near_clipping_plane`, and `far_clipping_plane` are never read [INFO] [stdout] --> src/projection.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 31 | pub struct PerspectiveProjection { [INFO] [stdout] | --------------------- fields in this struct [INFO] [stdout] 32 | field_of_view: f32, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 33 | aspect_ratio: f32, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 34 | near_clipping_plane: f32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 35 | far_clipping_plane: f32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_projection_mat4` is never used [INFO] [stdout] --> src/projection.rs:43:12 [INFO] [stdout] | [INFO] [stdout] 38 | impl PerspectiveProjection { [INFO] [stdout] | -------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 43 | pub fn get_projection_mat4(&self) -> [[f32; 4]; 4] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `width` and `height` are never read [INFO] [stdout] --> src/projection.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 59 | pub struct Viewport { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 60 | width: f32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 61 | height: f32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_canvas_mat4` is never used [INFO] [stdout] --> src/projection.rs:68:12 [INFO] [stdout] | [INFO] [stdout] 64 | impl Viewport { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn to_canvas_mat4(&self) -> [[f32; 4]; 4] { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 37 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 37 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 35.00s [INFO] running `Command { std: "docker" "inspect" "b22b8f2e064a9eab61940be1a60baf0237d6adcb993ffa98a7d384c13f8dff66", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b22b8f2e064a9eab61940be1a60baf0237d6adcb993ffa98a7d384c13f8dff66", kill_on_drop: false }` [INFO] [stdout] b22b8f2e064a9eab61940be1a60baf0237d6adcb993ffa98a7d384c13f8dff66 [INFO] checking mateuszkaczmarczyk999/cgfs_with_wgpu against try#5946bac294aa8e579f74aa4a4d1f443d3b5d89f8 for pr-123737 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmateuszkaczmarczyk999%2Fcgfs_with_wgpu" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/mateuszkaczmarczyk999/cgfs_with_wgpu on toolchain 5946bac294aa8e579f74aa4a4d1f443d3b5d89f8 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5946bac294aa8e579f74aa4a4d1f443d3b5d89f8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/mateuszkaczmarczyk999/cgfs_with_wgpu [INFO] finished tweaking git repo https://github.com/mateuszkaczmarczyk999/cgfs_with_wgpu [INFO] tweaked toml for git repo https://github.com/mateuszkaczmarczyk999/cgfs_with_wgpu written to /workspace/builds/worker-6-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/mateuszkaczmarczyk999/cgfs_with_wgpu 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" "+5946bac294aa8e579f74aa4a4d1f443d3b5d89f8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+5946bac294aa8e579f74aa4a4d1f443d3b5d89f8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] a8585a7a66259743cfbd7ce6aade18c78b862531a224c4fd0c966fe90ff82b0f [INFO] running `Command { std: "docker" "start" "-a" "a8585a7a66259743cfbd7ce6aade18c78b862531a224c4fd0c966fe90ff82b0f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "a8585a7a66259743cfbd7ce6aade18c78b862531a224c4fd0c966fe90ff82b0f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a8585a7a66259743cfbd7ce6aade18c78b862531a224c4fd0c966fe90ff82b0f", kill_on_drop: false }` [INFO] [stdout] a8585a7a66259743cfbd7ce6aade18c78b862531a224c4fd0c966fe90ff82b0f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+5946bac294aa8e579f74aa4a4d1f443d3b5d89f8" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8492cf6b18b630e2ca6e1f92c463a8ada4e687d35c58fd022db1c1caca4b8a4b [INFO] running `Command { std: "docker" "start" "-a" "8492cf6b18b630e2ca6e1f92c463a8ada4e687d35c58fd022db1c1caca4b8a4b", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.74 [INFO] [stderr] Compiling libc v0.2.151 [INFO] [stderr] Checking smallvec v1.11.2 [INFO] [stderr] Checking bitflags v2.4.1 [INFO] [stderr] Checking log v0.4.20 [INFO] [stderr] Compiling thiserror v1.0.56 [INFO] [stderr] Compiling wayland-sys v0.29.5 [INFO] [stderr] Compiling ahash v0.8.7 [INFO] [stderr] Compiling num-traits v0.2.17 [INFO] [stderr] Checking termcolor v1.4.0 [INFO] [stderr] Compiling khronos-egl v6.0.0 [INFO] [stderr] Checking fdeflate v0.3.3 [INFO] [stderr] Compiling smithay-client-toolkit v0.16.1 [INFO] [stderr] Compiling rustix v0.38.28 [INFO] [stderr] Checking memchr v2.7.1 [INFO] [stderr] Checking strict-num v0.1.1 [INFO] [stderr] Checking gpu-alloc-types v0.3.0 [INFO] [stderr] Checking gpu-descriptor-types v0.1.2 [INFO] [stderr] Checking codespan-reporting v0.11.1 [INFO] [stderr] Checking wgpu-types v0.18.0 [INFO] [stderr] Checking glow v0.13.0 [INFO] [stderr] Checking linux-raw-sys v0.4.12 [INFO] [stderr] Checking gpu-alloc v0.6.0 [INFO] [stderr] Checking renderdoc-sys v1.0.0 [INFO] [stderr] Checking regex-syntax v0.8.2 [INFO] [stderr] Checking profiling v1.0.13 [INFO] [stderr] Checking ab_glyph v0.2.23 [INFO] [stderr] Checking spin v0.9.8 [INFO] [stderr] Checking png v0.17.10 [INFO] [stderr] Checking futures-sink v0.3.30 [INFO] [stderr] Checking futures-core v0.3.30 [INFO] [stderr] Checking pollster v0.3.0 [INFO] [stderr] Checking aho-corasick v1.1.2 [INFO] [stderr] Checking hashbrown v0.14.3 [INFO] [stderr] Compiling quote v1.0.35 [INFO] [stderr] Compiling syn v2.0.46 [INFO] [stderr] Compiling wayland-scanner v0.29.5 [INFO] [stderr] Checking indexmap v2.1.0 [INFO] [stderr] Checking gpu-descriptor v0.2.4 [INFO] [stderr] Checking regex-automata v0.4.3 [INFO] [stderr] Checking spirv v0.2.0+1.5.4 [INFO] [stderr] Checking is-terminal v0.4.10 [INFO] [stderr] Checking nix v0.24.3 [INFO] [stderr] Checking parking_lot_core v0.9.9 [INFO] [stderr] Checking nix v0.25.1 [INFO] [stderr] Checking memmap2 v0.5.10 [INFO] [stderr] Checking getrandom v0.2.11 [INFO] [stderr] Checking x11-dl v2.21.0 [INFO] [stderr] Checking mio v0.8.10 [INFO] [stderr] Compiling wayland-client v0.29.5 [INFO] [stderr] Compiling wayland-protocols v0.29.5 [INFO] [stderr] Compiling winit v0.28.7 [INFO] [stderr] Checking nanorand v0.7.0 [INFO] [stderr] Checking parking_lot v0.12.1 [INFO] [stderr] Checking flume v0.11.0 [INFO] [stderr] Checking wayland-commons v0.29.5 [INFO] [stderr] Checking regex v1.10.2 [INFO] [stderr] Compiling thiserror-impl v1.0.56 [INFO] [stderr] Compiling bytemuck_derive v1.5.0 [INFO] [stderr] Checking env_logger v0.10.1 [INFO] [stderr] Checking wayland-cursor v0.29.5 [INFO] [stderr] Checking bytemuck v1.14.0 [INFO] [stderr] Checking tiny-skia-path v0.8.4 [INFO] [stderr] Checking calloop v0.10.6 [INFO] [stderr] Checking naga v0.14.2 [INFO] [stderr] Checking tiny-skia v0.8.4 [INFO] [stderr] Checking wgpu-hal v0.18.1 [INFO] [stderr] Checking wgpu-core v0.18.1 [INFO] [stderr] Checking sctk-adwaita v0.5.4 [INFO] [stderr] Checking wgpu v0.18.0 [INFO] [stdout] error[E0310]: the associated type `::UserEvent` may not live long enough [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/winit-0.28.7/src/platform/run_return.rs:33:12 [INFO] [stdout] | [INFO] [stdout] 33 | F: FnMut( [INFO] [stdout] | ____________^ [INFO] [stdout] 34 | | Event<'_, Self::UserEvent>, [INFO] [stdout] 35 | | &EventLoopWindowTarget, [INFO] [stdout] 36 | | &mut ControlFlow, [INFO] [stdout] 37 | | ); [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_________the associated type `::UserEvent` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `::UserEvent` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/winit-0.28.7/src/event.rs:52:23 [INFO] [stdout] | [INFO] [stdout] 52 | pub enum Event<'a, T: 'static> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 37 | ), ::UserEvent: 'static; [INFO] [stdout] | +++++++++++++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0310`. [INFO] [stdout] [INFO] [stderr] error: could not compile `winit` (lib) due to 2 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] running `Command { std: "docker" "inspect" "8492cf6b18b630e2ca6e1f92c463a8ada4e687d35c58fd022db1c1caca4b8a4b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8492cf6b18b630e2ca6e1f92c463a8ada4e687d35c58fd022db1c1caca4b8a4b", kill_on_drop: false }` [INFO] [stdout] 8492cf6b18b630e2ca6e1f92c463a8ada4e687d35c58fd022db1c1caca4b8a4b