[INFO] cloning repository https://github.com/gatewaytofredom/differential_projection_voxel_renderer
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/gatewaytofredom/differential_projection_voxel_renderer" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgatewaytofredom%2Fdifferential_projection_voxel_renderer", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgatewaytofredom%2Fdifferential_projection_voxel_renderer'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 62ea8dc9d196082dd5946f583cb4cb80de6a1920
[INFO] testing gatewaytofredom/differential_projection_voxel_renderer against try#bd7d74411512a3dd3b35d2f699c51dd2557c7e7e+cargoflags=-Zbuild-dir-new-layout for pr-149852-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgatewaytofredom%2Fdifferential_projection_voxel_renderer" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/gatewaytofredom/differential_projection_voxel_renderer
[INFO] finished tweaking git repo https://github.com/gatewaytofredom/differential_projection_voxel_renderer
[INFO] tweaked toml for git repo https://github.com/gatewaytofredom/differential_projection_voxel_renderer written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/gatewaytofredom/differential_projection_voxel_renderer on toolchain bd7d74411512a3dd3b35d2f699c51dd2557c7e7e
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/gatewaytofredom/differential_projection_voxel_renderer 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" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 85f5dba3583540ec57c0e785bc822b57d0f537c9550a29b8f2c0037dec2db74a
[INFO] running `Command { std: "docker" "start" "-a" "85f5dba3583540ec57c0e785bc822b57d0f537c9550a29b8f2c0037dec2db74a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "85f5dba3583540ec57c0e785bc822b57d0f537c9550a29b8f2c0037dec2db74a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "85f5dba3583540ec57c0e785bc822b57d0f537c9550a29b8f2c0037dec2db74a", kill_on_drop: false }`
[INFO] [stdout] 85f5dba3583540ec57c0e785bc822b57d0f537c9550a29b8f2c0037dec2db74a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "build" "--frozen" "--message-format=json" "-Zbuild-dir-new-layout", kill_on_drop: false }`
[INFO] [stdout] 81223579791eea90bfcfc965b24a6a22502f6fa469c98c80abea3454803deb6e
[INFO] running `Command { std: "docker" "start" "-a" "81223579791eea90bfcfc965b24a6a22502f6fa469c98c80abea3454803deb6e", kill_on_drop: false }`
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling scoped-tls v1.0.1
[INFO] [stderr]    Compiling cc v1.2.46
[INFO] [stderr]    Compiling libloading v0.8.9
[INFO] [stderr]    Compiling wayland-sys v0.31.7
[INFO] [stderr]    Compiling downcast-rs v1.2.1
[INFO] [stderr]    Compiling wayland-client v0.31.11
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling syn v2.0.110
[INFO] [stderr]    Compiling drm-sys v0.7.0
[INFO] [stderr]    Compiling memmap2 v0.9.9
[INFO] [stderr]    Compiling ttf-parser v0.25.1
[INFO] [stderr]    Compiling cursor-icon v1.2.0
[INFO] [stderr]    Compiling xcursor v0.3.10
[INFO] [stderr]    Compiling strict-num v0.1.1
[INFO] [stderr]    Compiling dlib v0.5.2
[INFO] [stderr]    Compiling drm-fourcc v2.2.0
[INFO] [stderr]    Compiling as-raw-xcb-connection v1.0.1
[INFO] [stderr]    Compiling linux-raw-sys v0.6.5
[INFO] [stderr]    Compiling smithay-client-toolkit v0.18.1
[INFO] [stderr]    Compiling xkeysym v0.2.1
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling tiny-xlib v0.2.4
[INFO] [stderr]    Compiling ab_glyph_rasterizer v0.1.10
[INFO] [stderr]    Compiling x11rb-protocol v0.13.2
[INFO] [stderr]    Compiling tracing-core v0.1.34
[INFO] [stderr]    Compiling cfg_aliases v0.1.1
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling clap_builder v4.5.52
[INFO] [stderr]    Compiling winit v0.29.15
[INFO] [stderr]    Compiling softbuffer v0.4.6
[INFO] [stderr]    Compiling quick-xml v0.37.5
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling ctor-lite v0.1.0
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling rand_xorshift v0.3.0
[INFO] [stderr]    Compiling wayland-scanner v0.31.7
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling smol_str v0.2.2
[INFO] [stderr]    Compiling glam v0.25.0
[INFO] [stderr]    Compiling xkbcommon-dl v0.4.2
[INFO] [stderr]    Compiling noise v0.9.0
[INFO] [stderr]    Compiling wayland-backend v0.3.11
[INFO] [stderr]    Compiling libmimalloc-sys v0.1.44
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]    Compiling owned_ttf_parser v0.25.1
[INFO] [stderr]    Compiling ab_glyph v0.2.32
[INFO] [stderr]    Compiling clap v4.5.52
[INFO] [stderr]    Compiling mimalloc v0.1.48
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling zerocopy-derive v0.8.27
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling zerocopy v0.8.27
[INFO] [stderr]    Compiling bytemuck v1.24.0
[INFO] [stderr]    Compiling tiny-skia-path v0.11.4
[INFO] [stderr]    Compiling drm-ffi v0.8.0
[INFO] [stderr]    Compiling drm v0.12.0
[INFO] [stderr]    Compiling tiny-skia v0.11.4
[INFO] [stderr]    Compiling polling v3.11.0
[INFO] [stderr]    Compiling gethostname v1.1.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling calloop v0.12.4
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling wayland-csd-frame v0.3.0
[INFO] [stderr]    Compiling criterion v0.5.1
[INFO] [stderr]    Compiling wayland-protocols v0.31.2
[INFO] [stderr]    Compiling wayland-cursor v0.31.11
[INFO] [stderr]    Compiling calloop-wayland-source v0.2.0
[INFO] [stderr]    Compiling wayland-protocols-wlr v0.2.0
[INFO] [stderr]    Compiling wayland-protocols-plasma v0.2.0
[INFO] [stderr]    Compiling x11rb v0.13.2
[INFO] [stderr]    Compiling sctk-adwaita v0.8.3
[INFO] [stderr]    Compiling voxel_engine v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::perf::FUNCTION_COUNTERS`
[INFO] [stdout]  --> src/meshing/binary_greedy.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::perf::FUNCTION_COUNTERS;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::count_call`
[INFO] [stdout]  --> src/rendering/framebuffer.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::count_call;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::perf::FUNCTION_COUNTERS`
[INFO] [stdout]  --> src/rendering/rasterizer.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::perf::FUNCTION_COUNTERS;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mat4` and `Vec3`
[INFO] [stdout]   --> src/rendering/macrotile.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | use glam::{Mat4, Vec3};
[INFO] [stdout]    |            ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/rendering/macrotile.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `meshing::mesh::ChunkMesh::vertices`: Use faces array instead
[INFO] [stdout]    --> src/meshing/mesh.rs:450:13
[INFO] [stdout]     |
[INFO] [stdout] 450 |             vertices: Vec::new(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `meshing::mesh::ChunkMesh::indices`: Use faces array instead
[INFO] [stdout]    --> src/meshing/mesh.rs:451:13
[INFO] [stdout]     |
[INFO] [stdout] 451 |             indices: Vec::new(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `meshing::mesh::ChunkMesh::vertices`: Use faces array instead
[INFO] [stdout]    --> src/meshing/mesh.rs:476:13
[INFO] [stdout]     |
[INFO] [stdout] 476 |             vertices: Vec::new(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `meshing::mesh::ChunkMesh::indices`: Use faces array instead
[INFO] [stdout]    --> src/meshing/mesh.rs:477:13
[INFO] [stdout]     |
[INFO] [stdout] 477 |             indices: Vec::new(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `meshing::mesh::ChunkMesh::vertices`: Use faces array instead
[INFO] [stdout]    --> src/meshing/mesh.rs:582:9
[INFO] [stdout]     |
[INFO] [stdout] 582 |         self.vertices.clear();
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `meshing::mesh::ChunkMesh::indices`: Use faces array instead
[INFO] [stdout]    --> src/meshing/mesh.rs:583:9
[INFO] [stdout]     |
[INFO] [stdout] 583 |         self.indices.clear();
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/rendering/rasterizer.rs:813:17
[INFO] [stdout]     |
[INFO] [stdout] 813 |             let mut min_local = face_list.min;
[INFO] [stdout]     |                 ----^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/rendering/rasterizer.rs:814:17
[INFO] [stdout]     |
[INFO] [stdout] 814 |             let mut max_local = face_list.max;
[INFO] [stdout]     |                 ----^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row_offset`
[INFO] [stdout]     --> src/rendering/rasterizer.rs:2051:21
[INFO] [stdout]      |
[INFO] [stdout] 2051 |                 let row_offset = y as usize * target.width();
[INFO] [stdout]      |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_row_offset`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/rendering/rasterizer.rs:2376:56
[INFO] [stdout]      |
[INFO] [stdout] 2290 |                     unsafe {
[INFO] [stdout]      |                     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 2376 |                                     if let Some(idx) = unsafe {
[INFO] [stdout]      |                                                        ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/rendering/rasterizer.rs:2419:52
[INFO] [stdout]      |
[INFO] [stdout] 2290 |                     unsafe {
[INFO] [stdout]      |                     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 2419 |                                 if let Some(idx) = unsafe {
[INFO] [stdout]      |                                                    ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `remainder`
[INFO] [stdout]    --> src/rendering/differential_projection.rs:102:13
[INFO] [stdout]     |
[INFO] [stdout] 102 |         let remainder = count % 8;
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_remainder`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `quad_local_positions` is never used
[INFO] [stdout]    --> src/meshing/mesh.rs:527:8
[INFO] [stdout]     |
[INFO] [stdout] 438 | impl ChunkMesh {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 527 |     fn quad_local_positions(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_POLY_VERTS` is never used
[INFO] [stdout]   --> src/rendering/rasterizer.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const MAX_POLY_VERTS: usize = 8;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProjectedPoint` is never constructed
[INFO] [stdout]    --> src/rendering/rasterizer.rs:309:8
[INFO] [stdout]     |
[INFO] [stdout] 309 | struct ProjectedPoint {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/rendering/rasterizer.rs:434:8
[INFO] [stdout]      |
[INFO] [stdout]  350 | impl Rasterizer {
[INFO] [stdout]      | --------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  434 |     fn render_mesh_into_tile_optimized(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  494 |     fn render_tiny_quad_optimized(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  706 |     fn clip_polygon_near(input: &[Vec4], output: &mut [Vec4; MAX_POLY_VERTS]) -> usize {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  747 |     fn render_convex_polygon<T: PixelTarget>(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1471 |     fn render_triangle_from_clip<T: PixelTarget>(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1643 |     fn render_triangle_textured_tile_optimized(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2562 |     fn intersect_near_vec4(a: Vec4, b: Vec4, threshold: f32) -> Vec4 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2571 |     fn clip_triangle_near_points(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vec2`
[INFO] [stdout]  --> src/main.rs:3:19
[INFO] [stdout]   |
[INFO] [stdout] 3 | use glam::{IVec3, Vec2, Vec3};
[INFO] [stdout]   |                   ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 17s
[INFO] running `Command { std: "docker" "inspect" "81223579791eea90bfcfc965b24a6a22502f6fa469c98c80abea3454803deb6e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "81223579791eea90bfcfc965b24a6a22502f6fa469c98c80abea3454803deb6e", kill_on_drop: false }`
[INFO] [stdout] 81223579791eea90bfcfc965b24a6a22502f6fa469c98c80abea3454803deb6e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "test" "--frozen" "--no-run" "--message-format=json" "-Zbuild-dir-new-layout", kill_on_drop: false }`
[INFO] [stdout] 764920ba376dd2e9962c6c0954cd1294726ca0fa0ef935bba70fb00bddec7e60
[INFO] running `Command { std: "docker" "start" "-a" "764920ba376dd2e9962c6c0954cd1294726ca0fa0ef935bba70fb00bddec7e60", kill_on_drop: false }`
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling rand_xorshift v0.3.0
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling noise v0.9.0
[INFO] [stderr]    Compiling voxel_engine v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::perf::FUNCTION_COUNTERS`
[INFO] [stdout]  --> src/meshing/binary_greedy.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::perf::FUNCTION_COUNTERS;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::count_call`
[INFO] [stdout]  --> src/rendering/framebuffer.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::count_call;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::perf::FUNCTION_COUNTERS`
[INFO] [stdout]  --> src/rendering/rasterizer.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::perf::FUNCTION_COUNTERS;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mat4` and `Vec3`
[INFO] [stdout]   --> src/rendering/macrotile.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | use glam::{Mat4, Vec3};
[INFO] [stdout]    |            ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/rendering/macrotile.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `meshing::mesh::ChunkMesh::vertices`: Use faces array instead
[INFO] [stdout]    --> src/meshing/mesh.rs:450:13
[INFO] [stdout]     |
[INFO] [stdout] 450 |             vertices: Vec::new(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `meshing::mesh::ChunkMesh::indices`: Use faces array instead
[INFO] [stdout]    --> src/meshing/mesh.rs:451:13
[INFO] [stdout]     |
[INFO] [stdout] 451 |             indices: Vec::new(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `meshing::mesh::ChunkMesh::vertices`: Use faces array instead
[INFO] [stdout]    --> src/meshing/mesh.rs:476:13
[INFO] [stdout]     |
[INFO] [stdout] 476 |             vertices: Vec::new(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `meshing::mesh::ChunkMesh::indices`: Use faces array instead
[INFO] [stdout]    --> src/meshing/mesh.rs:477:13
[INFO] [stdout]     |
[INFO] [stdout] 477 |             indices: Vec::new(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `meshing::mesh::ChunkMesh::vertices`: Use faces array instead
[INFO] [stdout]    --> src/meshing/mesh.rs:582:9
[INFO] [stdout]     |
[INFO] [stdout] 582 |         self.vertices.clear();
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `meshing::mesh::ChunkMesh::indices`: Use faces array instead
[INFO] [stdout]    --> src/meshing/mesh.rs:583:9
[INFO] [stdout]     |
[INFO] [stdout] 583 |         self.indices.clear();
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::perf::FUNCTION_COUNTERS`
[INFO] [stdout]  --> src/meshing/binary_greedy.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::perf::FUNCTION_COUNTERS;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::voxel::BlockType`
[INFO] [stdout]    --> src/meshing/mesh.rs:758:13
[INFO] [stdout]     |
[INFO] [stdout] 758 |         use crate::voxel::BlockType;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::count_call`
[INFO] [stdout]  --> src/rendering/framebuffer.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::count_call;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::perf::FUNCTION_COUNTERS`
[INFO] [stdout]  --> src/rendering/rasterizer.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::perf::FUNCTION_COUNTERS;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mat4` and `Vec3`
[INFO] [stdout]   --> src/rendering/macrotile.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | use glam::{Mat4, Vec3};
[INFO] [stdout]    |            ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/rendering/macrotile.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/rendering/rasterizer.rs:813:17
[INFO] [stdout]     |
[INFO] [stdout] 813 |             let mut min_local = face_list.min;
[INFO] [stdout]     |                 ----^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/rendering/rasterizer.rs:814:17
[INFO] [stdout]     |
[INFO] [stdout] 814 |             let mut max_local = face_list.max;
[INFO] [stdout]     |                 ----^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row_offset`
[INFO] [stdout]     --> src/rendering/rasterizer.rs:2051:21
[INFO] [stdout]      |
[INFO] [stdout] 2051 |                 let row_offset = y as usize * target.width();
[INFO] [stdout]      |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_row_offset`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/rendering/rasterizer.rs:2376:56
[INFO] [stdout]      |
[INFO] [stdout] 2290 |                     unsafe {
[INFO] [stdout]      |                     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 2376 |                                     if let Some(idx) = unsafe {
[INFO] [stdout]      |                                                        ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/rendering/rasterizer.rs:2419:52
[INFO] [stdout]      |
[INFO] [stdout] 2290 |                     unsafe {
[INFO] [stdout]      |                     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 2419 |                                 if let Some(idx) = unsafe {
[INFO] [stdout]      |                                                    ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `meshing::mesh::ChunkMesh::vertices`: Use faces array instead
[INFO] [stdout]    --> src/meshing/mesh.rs:450:13
[INFO] [stdout]     |
[INFO] [stdout] 450 |             vertices: Vec::new(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `meshing::mesh::ChunkMesh::indices`: Use faces array instead
[INFO] [stdout]    --> src/meshing/mesh.rs:451:13
[INFO] [stdout]     |
[INFO] [stdout] 451 |             indices: Vec::new(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `meshing::mesh::ChunkMesh::vertices`: Use faces array instead
[INFO] [stdout]    --> src/meshing/mesh.rs:476:13
[INFO] [stdout]     |
[INFO] [stdout] 476 |             vertices: Vec::new(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `meshing::mesh::ChunkMesh::indices`: Use faces array instead
[INFO] [stdout]    --> src/meshing/mesh.rs:477:13
[INFO] [stdout]     |
[INFO] [stdout] 477 |             indices: Vec::new(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `meshing::mesh::ChunkMesh::vertices`: Use faces array instead
[INFO] [stdout]    --> src/meshing/mesh.rs:582:9
[INFO] [stdout]     |
[INFO] [stdout] 582 |         self.vertices.clear();
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `meshing::mesh::ChunkMesh::indices`: Use faces array instead
[INFO] [stdout]    --> src/meshing/mesh.rs:583:9
[INFO] [stdout]     |
[INFO] [stdout] 583 |         self.indices.clear();
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `remainder`
[INFO] [stdout]    --> src/rendering/differential_projection.rs:102:13
[INFO] [stdout]     |
[INFO] [stdout] 102 |         let remainder = count % 8;
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_remainder`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `quad_local_positions` is never used
[INFO] [stdout]    --> src/meshing/mesh.rs:527:8
[INFO] [stdout]     |
[INFO] [stdout] 438 | impl ChunkMesh {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 527 |     fn quad_local_positions(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_POLY_VERTS` is never used
[INFO] [stdout]   --> src/rendering/rasterizer.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const MAX_POLY_VERTS: usize = 8;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProjectedPoint` is never constructed
[INFO] [stdout]    --> src/rendering/rasterizer.rs:309:8
[INFO] [stdout]     |
[INFO] [stdout] 309 | struct ProjectedPoint {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/rendering/rasterizer.rs:434:8
[INFO] [stdout]      |
[INFO] [stdout]  350 | impl Rasterizer {
[INFO] [stdout]      | --------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  434 |     fn render_mesh_into_tile_optimized(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  494 |     fn render_tiny_quad_optimized(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  706 |     fn clip_polygon_near(input: &[Vec4], output: &mut [Vec4; MAX_POLY_VERTS]) -> usize {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  747 |     fn render_convex_polygon<T: PixelTarget>(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1471 |     fn render_triangle_from_clip<T: PixelTarget>(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1643 |     fn render_triangle_textured_tile_optimized(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2562 |     fn intersect_near_vec4(a: Vec4, b: Vec4, threshold: f32) -> Vec4 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2571 |     fn clip_triangle_near_points(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/rendering/rasterizer.rs:813:17
[INFO] [stdout]     |
[INFO] [stdout] 813 |             let mut min_local = face_list.min;
[INFO] [stdout]     |                 ----^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/rendering/rasterizer.rs:814:17
[INFO] [stdout]     |
[INFO] [stdout] 814 |             let mut max_local = face_list.max;
[INFO] [stdout]     |                 ----^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row_offset`
[INFO] [stdout]     --> src/rendering/rasterizer.rs:2051:21
[INFO] [stdout]      |
[INFO] [stdout] 2051 |                 let row_offset = y as usize * target.width();
[INFO] [stdout]      |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_row_offset`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/rendering/rasterizer.rs:2376:56
[INFO] [stdout]      |
[INFO] [stdout] 2290 |                     unsafe {
[INFO] [stdout]      |                     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 2376 |                                     if let Some(idx) = unsafe {
[INFO] [stdout]      |                                                        ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/rendering/rasterizer.rs:2419:52
[INFO] [stdout]      |
[INFO] [stdout] 2290 |                     unsafe {
[INFO] [stdout]      |                     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 2419 |                                 if let Some(idx) = unsafe {
[INFO] [stdout]      |                                                    ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `remainder`
[INFO] [stdout]    --> src/rendering/differential_projection.rs:102:13
[INFO] [stdout]     |
[INFO] [stdout] 102 |         let remainder = count % 8;
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_remainder`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/rendering/packet_pipeline.rs:395:13
[INFO] [stdout]     |
[INFO] [stdout] 395 |         let mut pipeline = PacketPipeline::new();
[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/rendering/packet_pipeline.rs:415:13
[INFO] [stdout]     |
[INFO] [stdout] 415 |         let mut pipeline = PacketPipeline::new();
[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/rendering/packet_pipeline.rs:435:13
[INFO] [stdout]     |
[INFO] [stdout] 435 |         let mut pipeline = PacketPipeline::new();
[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/rendering/packet_pipeline.rs:471:13
[INFO] [stdout]     |
[INFO] [stdout] 471 |         let mut pipeline = PacketPipeline::new();
[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/rendering/macrotile.rs:392:13
[INFO] [stdout]     |
[INFO] [stdout] 392 |         let mut bins = MacroTileBins::new(1280, 720);
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProjectedPoint` is never constructed
[INFO] [stdout]    --> src/rendering/rasterizer.rs:309:8
[INFO] [stdout]     |
[INFO] [stdout] 309 | struct ProjectedPoint {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `render_mesh_into_tile_optimized`, `render_tiny_quad_optimized`, and `render_triangle_textured_tile_optimized` are never used
[INFO] [stdout]     --> src/rendering/rasterizer.rs:434:8
[INFO] [stdout]      |
[INFO] [stdout]  350 | impl Rasterizer {
[INFO] [stdout]      | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  434 |     fn render_mesh_into_tile_optimized(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  494 |     fn render_tiny_quad_optimized(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1643 |     fn render_triangle_textured_tile_optimized(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Chunk`
[INFO] [stdout]  --> tests/horizon_culling_extended_tests.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 |     voxel::{Chunk, CHUNK_SIZE},
[INFO] [stdout]   |             ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> tests/horizon_culling_extended_tests.rs:172:48
[INFO] [stdout]     |
[INFO] [stdout] 172 |             let height = if z < 4 { 0 } else { (z - 3) };
[INFO] [stdout]     |                                                ^     ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 172 -             let height = if z < 4 { 0 } else { (z - 3) };
[INFO] [stdout] 172 +             let height = if z < 4 { 0 } else { z - 3 };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `camera::Camera`
[INFO] [stdout]  --> tests/horizon_culling_same_height_tests.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     camera::Camera,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `chunk_center_y`
[INFO] [stdout]    --> tests/horizon_culling_same_height_tests.rs:221:9
[INFO] [stdout]     |
[INFO] [stdout] 221 |     let chunk_center_y = 16.0; // Center of Y=0 chunk
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_chunk_center_y`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCREEN_WIDTH` is never used
[INFO] [stdout]   --> tests/horizon_culling_same_height_tests.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const SCREEN_WIDTH: usize = 1280;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCREEN_HEIGHT` is never used
[INFO] [stdout]   --> tests/horizon_culling_same_height_tests.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const SCREEN_HEIGHT: usize = 720;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `camera` is assigned to, but never used
[INFO] [stdout]    --> tests/horizon_culling_extended_tests.rs:224:9
[INFO] [stdout]     |
[INFO] [stdout] 224 |     let mut camera = Camera::new(camera_pos, SCREEN_WIDTH as f32 / SCREEN_HEIGHT as f32);
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_camera` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `camera` is never read
[INFO] [stdout]    --> tests/horizon_culling_extended_tests.rs:225:5
[INFO] [stdout]     |
[INFO] [stdout] 225 |     camera.pitch = -0.5; // Looking down ~28 degrees
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `camera` is assigned to, but never used
[INFO] [stdout]    --> tests/horizon_culling_extended_tests.rs:505:9
[INFO] [stdout]     |
[INFO] [stdout] 505 |     let mut camera = Camera::new(camera_pos, SCREEN_WIDTH as f32 / SCREEN_HEIGHT as f32);
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_camera` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `camera` is never read
[INFO] [stdout]    --> tests/horizon_culling_extended_tests.rs:506:5
[INFO] [stdout]     |
[INFO] [stdout] 506 |     camera.pitch = -0.2; // Slightly downward
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `camera` is never read
[INFO] [stdout]    --> tests/horizon_culling_extended_tests.rs:507:5
[INFO] [stdout]     |
[INFO] [stdout] 507 |     camera.yaw = 0.0;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `position` is never read
[INFO] [stdout]   --> tests/horizon_culling_extended_tests.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct TestChunk {
[INFO] [stdout]    |        --------- field in this struct
[INFO] [stdout] 15 |     position: Vec3,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TestChunk` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `chunk_coords` is never read
[INFO] [stdout]    --> tests/horizon_culling_extended_tests.rs:109:5
[INFO] [stdout]     |
[INFO] [stdout] 108 | struct HorizonDiagnostic {
[INFO] [stdout]     |        ----------------- field in this struct
[INFO] [stdout] 109 |     chunk_coords: (i32, i32, i32),
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `HorizonDiagnostic` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vec2`
[INFO] [stdout]  --> src/main.rs:3:19
[INFO] [stdout]   |
[INFO] [stdout] 3 | use glam::{IVec3, Vec2, Vec3};
[INFO] [stdout]   |                   ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `glam::Vec3`
[INFO] [stdout]  --> tests/shading_tests.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use glam::Vec3;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ve::meshing::mesh::F32x3`
[INFO] [stdout]  --> tests/shading_tests.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use ve::meshing::mesh::F32x3;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `camera_pos`
[INFO] [stdout]    --> tests/horizon_movement_analysis.rs:148:9
[INFO] [stdout]     |
[INFO] [stdout] 148 |     let camera_pos = Vec3::new(0.0, camera_y, 0.0);
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_camera_pos`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `terrain_y`
[INFO] [stdout]    --> tests/horizon_movement_analysis.rs:196:9
[INFO] [stdout]     |
[INFO] [stdout] 196 |     let terrain_y = 0;
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_terrain_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/horizon_culling_pipeline_movement_tests.rs:227:13
[INFO] [stdout]     |
[INFO] [stdout] 227 |         let mut camera = Camera::new(*pos, aspect);
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bin`
[INFO] [stdout]    --> tests/horizon_movement_analysis.rs:252:23
[INFO] [stdout]     |
[INFO] [stdout] 252 |     for (i, (visible, bin, slope, horizon, _)) in results1.iter().enumerate() {
[INFO] [stdout]     |                       ^^^ help: if this is intentional, prefix it with an underscore: `_bin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bin`
[INFO] [stdout]    --> tests/horizon_movement_analysis.rs:264:23
[INFO] [stdout]     |
[INFO] [stdout] 264 |     for (i, (visible, bin, slope, horizon, _)) in results2.iter().enumerate() {
[INFO] [stdout]     |                       ^^^ help: if this is intentional, prefix it with an underscore: `_bin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/horizon_culling_tests.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 168 |     let mut camera = Camera::new(camera_pos, SCREEN_WIDTH as f32 / SCREEN_HEIGHT as f32);
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/horizon_culling_tests.rs:205:9
[INFO] [stdout]     |
[INFO] [stdout] 205 |     let mut camera = Camera::new(camera_pos, SCREEN_WIDTH as f32 / SCREEN_HEIGHT as f32); // Looking along +Z
[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]    --> tests/horizon_culling_tests.rs:207:9
[INFO] [stdout]     |
[INFO] [stdout] 207 |     let mut chunks = vec![
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `camera`
[INFO] [stdout]    --> tests/horizon_culling_tests.rs:205:9
[INFO] [stdout]     |
[INFO] [stdout] 205 |     let mut camera = Camera::new(camera_pos, SCREEN_WIDTH as f32 / SCREEN_HEIGHT as f32); // Looking along +Z
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_camera`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vec2`
[INFO] [stdout]  --> src/main.rs:3:19
[INFO] [stdout]   |
[INFO] [stdout] 3 | use glam::{IVec3, Vec2, Vec3};
[INFO] [stdout]   |                   ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `position` and `should_be_visible` are never read
[INFO] [stdout]   --> tests/horizon_culling_tests.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | struct TestChunk {
[INFO] [stdout]    |        --------- fields in this struct
[INFO] [stdout] 21 |     position: Vec3,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     should_be_visible: Option<bool>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TestChunk` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 11.78s
[INFO] running `Command { std: "docker" "inspect" "764920ba376dd2e9962c6c0954cd1294726ca0fa0ef935bba70fb00bddec7e60", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "764920ba376dd2e9962c6c0954cd1294726ca0fa0ef935bba70fb00bddec7e60", kill_on_drop: false }`
[INFO] [stdout] 764920ba376dd2e9962c6c0954cd1294726ca0fa0ef935bba70fb00bddec7e60
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "test" "--frozen" "-Zbuild-dir-new-layout", kill_on_drop: false }`
[INFO] [stdout] 4a3b75ee89982e21db290c8dae2b99b0a5c98d083fec0ac0a21fa9f22453929f
[INFO] running `Command { std: "docker" "start" "-a" "4a3b75ee89982e21db290c8dae2b99b0a5c98d083fec0ac0a21fa9f22453929f", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `crate::perf::FUNCTION_COUNTERS`
[INFO] [stderr]  --> src/meshing/binary_greedy.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use crate::perf::FUNCTION_COUNTERS;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::count_call`
[INFO] [stderr]  --> src/rendering/framebuffer.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use crate::count_call;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::perf::FUNCTION_COUNTERS`
[INFO] [stderr]  --> src/rendering/rasterizer.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use crate::perf::FUNCTION_COUNTERS;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Mat4` and `Vec3`
[INFO] [stderr]   --> src/rendering/macrotile.rs:15:12
[INFO] [stderr]    |
[INFO] [stderr] 15 | use glam::{Mat4, Vec3};
[INFO] [stderr]    |            ^^^^  ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::sync::Arc`
[INFO] [stderr]   --> src/rendering/macrotile.rs:16:5
[INFO] [stderr]    |
[INFO] [stderr] 16 | use std::sync::Arc;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated field `meshing::mesh::ChunkMesh::vertices`: Use faces array instead
[INFO] [stderr]    --> src/meshing/mesh.rs:450:13
[INFO] [stderr]     |
[INFO] [stderr] 450 |             vertices: Vec::new(),
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated field `meshing::mesh::ChunkMesh::indices`: Use faces array instead
[INFO] [stderr]    --> src/meshing/mesh.rs:451:13
[INFO] [stderr]     |
[INFO] [stderr] 451 |             indices: Vec::new(),
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated field `meshing::mesh::ChunkMesh::vertices`: Use faces array instead
[INFO] [stderr]    --> src/meshing/mesh.rs:476:13
[INFO] [stderr]     |
[INFO] [stderr] 476 |             vertices: Vec::new(),
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated field `meshing::mesh::ChunkMesh::indices`: Use faces array instead
[INFO] [stderr]    --> src/meshing/mesh.rs:477:13
[INFO] [stderr]     |
[INFO] [stderr] 477 |             indices: Vec::new(),
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated field `meshing::mesh::ChunkMesh::vertices`: Use faces array instead
[INFO] [stderr]    --> src/meshing/mesh.rs:582:9
[INFO] [stderr]     |
[INFO] [stderr] 582 |         self.vertices.clear();
[INFO] [stderr]     |         ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated field `meshing::mesh::ChunkMesh::indices`: Use faces array instead
[INFO] [stderr]    --> src/meshing/mesh.rs:583:9
[INFO] [stderr]     |
[INFO] [stderr] 583 |         self.indices.clear();
[INFO] [stderr]     |         ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/rendering/rasterizer.rs:813:17
[INFO] [stderr]     |
[INFO] [stderr] 813 |             let mut min_local = face_list.min;
[INFO] [stderr]     |                 ----^^^^^^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/rendering/rasterizer.rs:814:17
[INFO] [stderr]     |
[INFO] [stderr] 814 |             let mut max_local = face_list.max;
[INFO] [stderr]     |                 ----^^^^^^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `row_offset`
[INFO] [stderr]     --> src/rendering/rasterizer.rs:2051:21
[INFO] [stderr]      |
[INFO] [stderr] 2051 |                 let row_offset = y as usize * target.width();
[INFO] [stderr]      |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_row_offset`
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/rendering/rasterizer.rs:2376:56
[INFO] [stderr]      |
[INFO] [stderr] 2290 |                     unsafe {
[INFO] [stderr]      |                     ------ because it's nested under this `unsafe` block
[INFO] [stderr] ...
[INFO] [stderr] 2376 |                                     if let Some(idx) = unsafe {
[INFO] [stderr]      |                                                        ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/rendering/rasterizer.rs:2419:52
[INFO] [stderr]      |
[INFO] [stderr] 2290 |                     unsafe {
[INFO] [stderr]      |                     ------ because it's nested under this `unsafe` block
[INFO] [stderr] ...
[INFO] [stderr] 2419 |                                 if let Some(idx) = unsafe {
[INFO] [stderr]      |                                                    ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `remainder`
[INFO] [stderr]    --> src/rendering/differential_projection.rs:102:13
[INFO] [stderr]     |
[INFO] [stderr] 102 |         let remainder = count % 8;
[INFO] [stderr]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_remainder`
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `quad_local_positions` is never used
[INFO] [stderr]    --> src/meshing/mesh.rs:527:8
[INFO] [stderr]     |
[INFO] [stderr] 438 | impl ChunkMesh {
[INFO] [stderr]     | -------------- associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 527 |     fn quad_local_positions(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAX_POLY_VERTS` is never used
[INFO] [stderr]   --> src/rendering/rasterizer.rs:17:7
[INFO] [stderr]    |
[INFO] [stderr] 17 | const MAX_POLY_VERTS: usize = 8;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ProjectedPoint` is never constructed
[INFO] [stderr]    --> src/rendering/rasterizer.rs:309:8
[INFO] [stderr]     |
[INFO] [stderr] 309 | struct ProjectedPoint {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]     --> src/rendering/rasterizer.rs:434:8
[INFO] [stderr]      |
[INFO] [stderr]  350 | impl Rasterizer {
[INFO] [stderr]      | --------------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  434 |     fn render_mesh_into_tile_optimized(
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  494 |     fn render_tiny_quad_optimized(
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  706 |     fn clip_polygon_near(input: &[Vec4], output: &mut [Vec4; MAX_POLY_VERTS]) -> usize {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  747 |     fn render_convex_polygon<T: PixelTarget>(
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1471 |     fn render_triangle_from_clip<T: PixelTarget>(
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1643 |     fn render_triangle_textured_tile_optimized(
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 2562 |     fn intersect_near_vec4(a: Vec4, b: Vec4, threshold: f32) -> Vec4 {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 2571 |     fn clip_triangle_near_points(
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::voxel::BlockType`
[INFO] [stderr]    --> src/meshing/mesh.rs:758:13
[INFO] [stderr]     |
[INFO] [stderr] 758 |         use crate::voxel::BlockType;
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/rendering/packet_pipeline.rs:395:13
[INFO] [stderr]     |
[INFO] [stderr] 395 |         let mut pipeline = PacketPipeline::new();
[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/packet_pipeline.rs:415:13
[INFO] [stderr]     |
[INFO] [stderr] 415 |         let mut pipeline = PacketPipeline::new();
[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/packet_pipeline.rs:435:13
[INFO] [stderr]     |
[INFO] [stderr] 435 |         let mut pipeline = PacketPipeline::new();
[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/packet_pipeline.rs:471:13
[INFO] [stderr]     |
[INFO] [stderr] 471 |         let mut pipeline = PacketPipeline::new();
[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/macrotile.rs:392:13
[INFO] [stderr]     |
[INFO] [stderr] 392 |         let mut bins = MacroTileBins::new(1280, 720);
[INFO] [stderr]     |             ----^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ProjectedPoint` is never constructed
[INFO] [stderr]    --> src/rendering/rasterizer.rs:309:8
[INFO] [stderr]     |
[INFO] [stderr] 309 | struct ProjectedPoint {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: methods `render_mesh_into_tile_optimized`, `render_tiny_quad_optimized`, and `render_triangle_textured_tile_optimized` are never used
[INFO] [stderr]     --> src/rendering/rasterizer.rs:434:8
[INFO] [stderr]      |
[INFO] [stderr]  350 | impl Rasterizer {
[INFO] [stderr]      | --------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  434 |     fn render_mesh_into_tile_optimized(
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  494 |     fn render_tiny_quad_optimized(
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1643 |     fn render_triangle_textured_tile_optimized(
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `voxel_engine` (lib) generated 21 warnings (run `cargo fix --lib -p voxel_engine` to apply 9 suggestions)
[INFO] [stderr] warning: `voxel_engine` (lib test) generated 25 warnings (17 duplicates) (run `cargo fix --lib -p voxel_engine --tests` to apply 6 suggestions)
[INFO] [stderr] warning: unused import: `Chunk`
[INFO] [stderr]  --> tests/horizon_culling_extended_tests.rs:7:13
[INFO] [stderr]   |
[INFO] [stderr] 7 |     voxel::{Chunk, CHUNK_SIZE},
[INFO] [stderr]   |             ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around block return value
[INFO] [stderr]    --> tests/horizon_culling_extended_tests.rs:172:48
[INFO] [stderr]     |
[INFO] [stderr] 172 |             let height = if z < 4 { 0 } else { (z - 3) };
[INFO] [stderr]     |                                                ^     ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 172 -             let height = if z < 4 { 0 } else { (z - 3) };
[INFO] [stderr] 172 +             let height = if z < 4 { 0 } else { z - 3 };
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: variable `camera` is assigned to, but never used
[INFO] [stderr]    --> tests/horizon_culling_extended_tests.rs:224:9
[INFO] [stderr]     |
[INFO] [stderr] 224 |     let mut camera = Camera::new(camera_pos, SCREEN_WIDTH as f32 / SCREEN_HEIGHT as f32);
[INFO] [stderr]     |         ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: consider using `_camera` instead
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `camera` is never read
[INFO] [stderr]    --> tests/horizon_culling_extended_tests.rs:225:5
[INFO] [stderr]     |
[INFO] [stderr] 225 |     camera.pitch = -0.5; // Looking down ~28 degrees
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `camera` is assigned to, but never used
[INFO] [stderr]    --> tests/horizon_culling_extended_tests.rs:505:9
[INFO] [stderr]     |
[INFO] [stderr] 505 |     let mut camera = Camera::new(camera_pos, SCREEN_WIDTH as f32 / SCREEN_HEIGHT as f32);
[INFO] [stderr]     |         ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: consider using `_camera` instead
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `camera` is never read
[INFO] [stderr]    --> tests/horizon_culling_extended_tests.rs:506:5
[INFO] [stderr]     |
[INFO] [stderr] 506 |     camera.pitch = -0.2; // Slightly downward
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `camera` is never read
[INFO] [stderr]    --> tests/horizon_culling_extended_tests.rs:507:5
[INFO] [stderr]     |
[INFO] [stderr] 507 |     camera.yaw = 0.0;
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: field `position` is never read
[INFO] [stderr]   --> tests/horizon_culling_extended_tests.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 14 | struct TestChunk {
[INFO] [stderr]    |        --------- field in this struct
[INFO] [stderr] 15 |     position: Vec3,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `TestChunk` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `chunk_coords` is never read
[INFO] [stderr]    --> tests/horizon_culling_extended_tests.rs:109:5
[INFO] [stderr]     |
[INFO] [stderr] 108 | struct HorizonDiagnostic {
[INFO] [stderr]     |        ----------------- field in this struct
[INFO] [stderr] 109 |     chunk_coords: (i32, i32, i32),
[INFO] [stderr]     |     ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `HorizonDiagnostic` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Vec2`
[INFO] [stderr]  --> src/main.rs:3:19
[INFO] [stderr]   |
[INFO] [stderr] 3 | use glam::{IVec3, Vec2, Vec3};
[INFO] [stderr]   |                   ^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `camera::Camera`
[INFO] [stderr]  --> tests/horizon_culling_same_height_tests.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 |     camera::Camera,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `chunk_center_y`
[INFO] [stderr]    --> tests/horizon_culling_same_height_tests.rs:221:9
[INFO] [stderr]     |
[INFO] [stderr] 221 |     let chunk_center_y = 16.0; // Center of Y=0 chunk
[INFO] [stderr]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_chunk_center_y`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SCREEN_WIDTH` is never used
[INFO] [stderr]   --> tests/horizon_culling_same_height_tests.rs:10:7
[INFO] [stderr]    |
[INFO] [stderr] 10 | const SCREEN_WIDTH: usize = 1280;
[INFO] [stderr]    |       ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SCREEN_HEIGHT` is never used
[INFO] [stderr]   --> tests/horizon_culling_same_height_tests.rs:11:7
[INFO] [stderr]    |
[INFO] [stderr] 11 | const SCREEN_HEIGHT: usize = 720;
[INFO] [stderr]    |       ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/horizon_culling_pipeline_movement_tests.rs:227:13
[INFO] [stderr]     |
[INFO] [stderr] 227 |         let mut camera = Camera::new(*pos, aspect);
[INFO] [stderr]     |             ----^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/horizon_culling_tests.rs:168:9
[INFO] [stderr]     |
[INFO] [stderr] 168 |     let mut camera = Camera::new(camera_pos, SCREEN_WIDTH as f32 / SCREEN_HEIGHT as f32);
[INFO] [stderr]     |         ----^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/horizon_culling_tests.rs:205:9
[INFO] [stderr]     |
[INFO] [stderr] 205 |     let mut camera = Camera::new(camera_pos, SCREEN_WIDTH as f32 / SCREEN_HEIGHT as f32); // Looking along +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]    --> tests/horizon_culling_tests.rs:207:9
[INFO] [stderr]     |
[INFO] [stderr] 207 |     let mut chunks = vec![
[INFO] [stderr]     |         ----^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `camera`
[INFO] [stderr]    --> tests/horizon_culling_tests.rs:205:9
[INFO] [stderr]     |
[INFO] [stderr] 205 |     let mut camera = Camera::new(camera_pos, SCREEN_WIDTH as f32 / SCREEN_HEIGHT as f32); // Looking along +Z
[INFO] [stderr]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_camera`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `position` and `should_be_visible` are never read
[INFO] [stderr]   --> tests/horizon_culling_tests.rs:21:5
[INFO] [stderr]    |
[INFO] [stderr] 20 | struct TestChunk {
[INFO] [stderr]    |        --------- fields in this struct
[INFO] [stderr] 21 |     position: Vec3,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 24 |     should_be_visible: Option<bool>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `TestChunk` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `glam::Vec3`
[INFO] [stderr]  --> tests/shading_tests.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use glam::Vec3;
[INFO] [stderr]   |     ^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ve::meshing::mesh::F32x3`
[INFO] [stderr]  --> tests/shading_tests.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use ve::meshing::mesh::F32x3;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `voxel_engine` (test "horizon_culling_extended_tests") generated 9 warnings (run `cargo fix --test "horizon_culling_extended_tests" -p voxel_engine` to apply 2 suggestions)
[INFO] [stderr] warning: `voxel_engine` (bin "voxel_engine") generated 1 warning (run `cargo fix --bin "voxel_engine" -p voxel_engine` to apply 1 suggestion)
[INFO] [stderr] warning: `voxel_engine` (test "horizon_culling_same_height_tests") generated 4 warnings (run `cargo fix --test "horizon_culling_same_height_tests" -p voxel_engine` to apply 2 suggestions)
[INFO] [stderr] warning: `voxel_engine` (test "horizon_culling_pipeline_movement_tests") generated 1 warning (run `cargo fix --test "horizon_culling_pipeline_movement_tests" -p voxel_engine` to apply 1 suggestion)
[INFO] [stderr] warning: `voxel_engine` (test "horizon_culling_tests") generated 5 warnings (run `cargo fix --test "horizon_culling_tests" -p voxel_engine` to apply 4 suggestions)
[INFO] [stderr] warning: `voxel_engine` (test "shading_tests") generated 2 warnings (run `cargo fix --test "shading_tests" -p voxel_engine` to apply 2 suggestions)
[INFO] [stderr] warning: unused variable: `camera_pos`
[INFO] [stderr]    --> tests/horizon_movement_analysis.rs:148:9
[INFO] [stderr]     |
[INFO] [stderr] 148 |     let camera_pos = Vec3::new(0.0, camera_y, 0.0);
[INFO] [stderr]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_camera_pos`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `terrain_y`
[INFO] [stderr]    --> tests/horizon_movement_analysis.rs:196:9
[INFO] [stderr]     |
[INFO] [stderr] 196 |     let terrain_y = 0;
[INFO] [stderr]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_terrain_y`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bin`
[INFO] [stderr]    --> tests/horizon_movement_analysis.rs:252:23
[INFO] [stderr]     |
[INFO] [stderr] 252 |     for (i, (visible, bin, slope, horizon, _)) in results1.iter().enumerate() {
[INFO] [stderr]     |                       ^^^ help: if this is intentional, prefix it with an underscore: `_bin`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bin`
[INFO] [stderr]    --> tests/horizon_movement_analysis.rs:264:23
[INFO] [stderr]     |
[INFO] [stderr] 264 |     for (i, (visible, bin, slope, horizon, _)) in results2.iter().enumerate() {
[INFO] [stderr]     |                       ^^^ help: if this is intentional, prefix it with an underscore: `_bin`
[INFO] [stderr] 
[INFO] [stderr] warning: `voxel_engine` (bin "voxel_engine" test) generated 1 warning (1 duplicate)
[INFO] [stderr] warning: `voxel_engine` (test "horizon_movement_analysis") generated 4 warnings (run `cargo fix --test "horizon_movement_analysis" -p voxel_engine` to apply 4 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.28s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/build/voxel_engine/ae907d6fb16bdfcc/deps/voxel_engine-ae907d6fb16bdfcc)
[INFO] [stdout] 
[INFO] [stdout] running 63 tests
[INFO] [stdout] test meshing::binary_greedy::tests::test_greedy_mesh_vertical_line ... ok
[INFO] [stdout] test meshing::binary_greedy::tests::test_greedy_mesh_single ... ok
[INFO] [stdout] test meshing::binary_greedy::tests::test_greedy_mesh_rectangle ... ok
[INFO] [stdout] test meshing::binary_greedy::tests::test_greedy_mesh_empty ... ok
[INFO] [stdout] test camera::tests::frustum_culls_box_behind_camera ... ok
[INFO] [stdout] test meshing::mesh::tests::test_tiny_quad_size ... ok
[INFO] [stdout] test meshing::mesh::tests::test_tiny_quad_vertex_positions_match_legacy ... ok
[INFO] [stdout] test rendering::differential_projection::tests::test_face_coordinate_system_pos_y ... ok
[INFO] [stdout] test rendering::differential_projection::tests::test_project_point_identity ... ok
[INFO] [stdout] test rendering::differential_projection::tests::test_basis_vectors_orthogonal ... ok
[INFO] [stdout] test meshing::face_packets::tests::single_voxel_generates_single_entry_packets ... ok
[INFO] [stdout] test meshing::face_packets::tests::packets_flush_after_capacity ... ok
[INFO] [stdout] test meshing::mesh::tests::test_tiny_quad_boundary_values ... ok
[INFO] [stdout] test meshing::mesh::tests::test_face_list_operations ... ok
[INFO] [stdout] test meshing::mesh::tests::test_tiny_quad_packing ... ok
[INFO] [stdout] test rendering::macrotile::tests::test_macrotile_clear ... ok
[INFO] [stdout] test meshing::mesh::tests::test_slice_position_offset_for_positive_faces ... ok
[INFO] [stdout] test rendering::hiz_buffer::tests::test_morton_decoding ... ok
[INFO] [stdout] test rendering::macrotile::tests::test_mesh_binning_crosses_tiles ... ok
[INFO] [stdout] test rendering::macrotile::tests::test_mesh_binning_small_mesh ... ok
[INFO] [stdout] test rendering::macrotile::tests::test_macrotile_creation ... ok
[INFO] [stdout] test rendering::packet_pipeline::tests::test_basis_caching ... ok
[INFO] [stdout] test rendering::packet_pipeline::tests::test_frustum_culling_all_inside ... ok
[INFO] [stdout] test rendering::macrotile::tests::test_thread_local_bins_merge ... ok
[INFO] [stdout] test rendering::rasterizer::tests::degenerate_polygon_is_skipped ... ok
[INFO] [stdout] test rendering::hiz_buffer::tests::test_morton_encoding ... ok
[INFO] [stdout] test rendering::macrotile::tests::test_macrotile_depth_test ... ok
[INFO] [stdout] test rendering::macrotile::tests::test_large_primitive_bypass ... ok
[INFO] [stdout] test rendering::packet_pipeline::tests::test_simd_frustum_culling_matches_scalar ... ok
[INFO] [stdout] test rendering::rasterizer::tests::quad_crossing_near_plane_is_clipped_and_drawn ... ok
[INFO] [stdout] test rendering::rasterizer::tests::triangle_crossing_near_plane_is_clipped_and_drawn ... ok
[INFO] [stdout] test rendering::rasterizer::tests::triangle_fully_behind_near_plane_is_rejected ... ok
[INFO] [stdout] test rendering::simd_vertex::tests::test_simd_matches_scalar ... ok
[INFO] [stdout] test rendering::simd_vertex::tests::test_simd_with_various_batch_sizes ... ok
[INFO] [stdout] test rendering::packet_pipeline::tests::test_frustum_culling_all_outside ... ok
[INFO] [stdout] test rendering::span_walker::tests::test_fill_span_branchless_depth_test ... ok
[INFO] [stdout] test rendering::packet_pipeline::tests::test_frustum_culling_partial ... ok
[INFO] [stdout] test rendering::span_walker::tests::test_fill_span_branchless_partial_occlusion ... ok
[INFO] [stdout] test rendering::macrotile_renderer::tests::test_macrotile_pixel_target ... ok
[INFO] [stdout] test rendering::span_walker::tests::test_simd_span_fill_matches_scalar ... ok
[INFO] [stdout] test rendering::span_walker::tests::test_span_fill_basic ... ok
[INFO] [stdout] test rendering::span_walker::tests::test_span_fill_depth_test ... ok
[INFO] [stdout] test rendering::packet_pipeline::tests::test_pipeline_basic ... ok
[INFO] [stdout] test rendering::span_walker::tests::test_trapezoid_batch_active_mask ... ok
[INFO] [stdout] test rendering::span_walker::tests::test_span_walker_simple_quad ... ok
[INFO] [stdout] test rendering::span_walker::tests::test_fill_span_branchless_unaligned ... ok
[INFO] [stdout] test rendering::span_walker::tests::test_rasterize_batch_avx2_overlapping_depth ... ok
[INFO] [stdout] test rendering::span_walker::tests::test_rasterize_batch_avx2_with_slopes ... ok
[INFO] [stdout] test rendering::hiz_buffer::tests::test_hiz_occlusion_test ... ok
[INFO] [stdout] test rendering::hiz_buffer::tests::test_hiz_buffer_creation ... ok
[INFO] [stdout] test rendering::span_walker::tests::test_rasterize_batch_avx2_single_trapezoid ... ok
[INFO] [stdout] test rendering::hiz_buffer::tests::test_morton_spatial_locality ... ok
[INFO] [stdout] test rendering::macrotile::tests::test_binning_system ... ok
[INFO] [stdout] test rendering::hiz_buffer::tests::test_hiz_buffer_clear ... ok
[INFO] [stdout] test rendering::span_walker::tests::test_fill_span_branchless_matches_scalar ... ok
[INFO] [stdout] test rendering::hiz_buffer::tests::test_hiz_conservative_depth ... ok
[INFO] [stdout] test rendering::hiz_buffer::tests::test_hiz_hierarchical_rejection ... ok
[INFO] [stdout] test world::tests::test_world_to_chunk_pos ... ok
[INFO] [stdout] test rendering::span_walker::tests::test_trapezoid_batch_creation ... ok
[INFO] [stdout] test rendering::span_walker::tests::test_rasterize_batch_avx2_full_batch ... ok
[INFO] [stdout] test world::tests::test_world_generation ... ok
[INFO] [stdout] test world::tests::test_update_streams_chunks_until_view_filled ... ok
[INFO] [stdout] test world::tests::test_view_distance_culling ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 63 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.44s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/build/voxel_engine/dde6b973695459c5/deps/voxel_engine-dde6b973695459c5)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/differential_projection_tests.rs (/opt/rustwide/target/debug/build/voxel_engine/490a9262db6bd809/deps/differential_projection_tests-490a9262db6bd809)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test test_all_face_directions ... ok
[INFO] [stdout] test test_basis_vectors_match_full_transform ... ok
[INFO] [stdout] test test_backface_culling ... ok
[INFO] [stdout] test test_projection_multiple_slices ... ok
[INFO] [stdout] test test_simd_projection_with_realistic_view ... ok
[INFO] [stdout] test test_simd_projection_matches_scalar ... ok
[INFO] [stdout] test test_projection_with_chunk_mesh ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/fast_perspective_divide_tests.rs (/opt/rustwide/target/debug/build/voxel_engine/49a3a787ad9e0c13/deps/fast_perspective_divide_tests-49a3a787ad9e0c13)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test test_fast_reciprocal_accuracy ... ok
[INFO] [stdout] test test_fast_divide_in_projection_context ... ok
[INFO] [stderr]      Running tests/horizon_culling_extended_tests.rs (/opt/rustwide/target/debug/build/voxel_engine/bf8120cdbee7a458/deps/horizon_culling_extended_tests-bf8120cdbee7a458)
[INFO] [stdout] test test_batched_perspective_divide ... ok
[INFO] [stdout] test test_fast_reciprocal_edge_cases ... ok
[INFO] [stdout] test test_perspective_divide_precision ... ok
[INFO] [stdout] test test_fast_reciprocal_performance_characteristics ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test test_adjacent_chunks_same_height ... ok
[INFO] [stdout] test test_camera_pitch_downward ... ok
[INFO] [stdout] test test_hillside_chunks_at_different_angles ... ok
[INFO] [stdout] test test_horizon_update_order ... ok
[INFO] [stdout] test test_bin_boundary_adjacent_chunks ... ok
[INFO] [stdout] test test_terrain_with_small_elevation_changes ... ok
[INFO] [stdout] test test_margin_too_aggressive ... ok
[INFO] [stdout] test test_realistic_camera_scenario ... ok
[INFO] [stdout] test test_slope_calculation_precision ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/horizon_culling_fix_validation.rs (/opt/rustwide/target/debug/build/voxel_engine/06dca0b765906819/deps/horizon_culling_fix_validation-06dca0b765906819)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test test_center_vs_top_slope_comparison ... ok
[INFO] [stdout] test test_fix_distance_based_margin ... ok
[INFO] [stdout] test test_fix_minimum_distance_prevents_near_chunk_domination ... ok
[INFO] [stdout] test test_fix_flat_terrain_no_culling ... ok
[INFO] [stdout] test test_fix_still_culls_actual_occlusion ... ok
[INFO] [stdout] test test_fix_movement_stability ... ok
[INFO] [stdout] test test_fix_camera_below_terrain ... ok
[INFO] [stdout] test test_no_popping_regression ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/horizon_culling_pipeline_movement_tests.rs (/opt/rustwide/target/debug/build/voxel_engine/8fa61812fcba7a8b/deps/horizon_culling_pipeline_movement_tests-8fa61812fcba7a8b)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test horizon_culling_does_not_remove_visible_pixels_during_movement ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 17.13s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/horizon_culling_reproduction_test.rs (/opt/rustwide/target/debug/build/voxel_engine/896a1d3b79afef63/deps/horizon_culling_reproduction_test-896a1d3b79afef63)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test test_camera_slightly_above_terrain ... ok
[INFO] [stdout] test test_camera_height_sweep ... ok
[INFO] [stdout] test test_exact_screenshot_scenario ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/horizon_culling_same_height_tests.rs (/opt/rustwide/target/debug/build/voxel_engine/69457dcd28de54ad/deps/horizon_culling_same_height_tests-69457dcd28de54ad)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test test_camera_below_terrain_height ... ok
[INFO] [stdout] test test_camera_at_terrain_height ... ok
[INFO] [stdout] test test_near_chunk_establishes_bad_horizon ... ok
[INFO] [stdout] test test_margin_effect_at_same_height ... ok
[INFO] [stdout] test test_slope_precision_at_same_height ... ok
[INFO] [stdout] test test_realistic_player_on_ground ... ok
[INFO] [stdout] test test_solution_use_center_not_top ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/horizon_culling_tests.rs (/opt/rustwide/target/debug/build/voxel_engine/75dee4090b1d71fc/deps/horizon_culling_tests-75dee4090b1d71fc)
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test test_bin_calculation_consistency ... ok
[INFO] [stdout] test test_horizon_culling_bin_boundary ... ok
[INFO] [stdout] test test_horizon_culling_concave_terrain ... ok
[INFO] [stdout] test test_horizon_culling_edge_case_camera_rotation ... ok
[INFO] [stdout] test test_horizon_culling_hill_scenario ... ok
[INFO] [stdout] test test_horizon_culling_negative_slope ... ok
[INFO] [stdout] test test_horizon_culling_vs_ground_truth ... ignored
[INFO] [stdout] test test_horizon_culling_very_close_chunks ... ok
[INFO] [stdout] test test_margin_effect ... ok
[INFO] [stdout] test test_horizon_culling_flat_terrain ... ok
[INFO] [stdout] test test_slope_calculation_edge_cases ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/horizon_movement_analysis.rs (/opt/rustwide/target/debug/build/voxel_engine/136638730da7147e/deps/horizon_movement_analysis-136638730da7147e)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test test_fundamental_problem_diagnosis ... ok
[INFO] [stdout] test test_near_chunk_poisons_horizon_for_movement ... ok
[INFO] [stdout] test test_rotation_vs_movement_stability ... ok
[INFO] [stdout] test test_slope_calculation_with_distance_change ... ok
[INFO] [stdout] test test_solution_distance_based_margin ... ok
[INFO] [stdout] test test_solution_hysteresis ... ok
[INFO] [stdout] test test_horizontal_movement_causes_slope_changes ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/meshing_tests.rs (/opt/rustwide/target/debug/build/voxel_engine/4ba097138a84db96/deps/meshing_tests-4ba097138a84db96)
[INFO] [stdout] 
[INFO] [stdout] running 16 tests
[INFO] [stdout] test test_quad_winding_matches_face_normal ... ok
[INFO] [stdout] test test_uniform_air_chunk_generates_no_mesh ... ok
[INFO] [stdout] test test_uniform_solid_chunk_generates_no_mesh ... ok
[INFO] [stdout] test test_internal_faces_are_culled ... ok
[INFO] [stdout] test test_greedy_meshing_merges_quads ... ok
[INFO] [stdout] test test_greedy_meshing_respects_block_types ... ok
[INFO] [stdout] test test_color_matches_block_type ... ok
[INFO] [stdout] test test_face_positions_are_correct ... ok
[INFO] [stdout] test test_top_face_of_surface_voxel ... ok
[INFO] [stdout] test test_bottom_face_of_floating_voxel ... ok
[INFO] [stdout] test test_single_voxel_generates_six_faces ... ok
[INFO] [stdout] test test_stacked_voxels_face_positions ... ok
[INFO] [stdout] test test_vertex_normals_match_face_direction ... ok
[INFO] [stdout] test test_world_offset_applied_correctly ... ok
[INFO] [stdout] test test_internal_faces_between_adjacent_chunks_are_culled ... ok
[INFO] [stdout] test test_stale_mesh_keeps_boundary_faces_when_neighbor_added ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/rasterizer_gap_test.rs (/opt/rustwide/target/debug/build/voxel_engine/7eb9d5666ae17bab/deps/rasterizer_gap_test-7eb9d5666ae17bab)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test test_pixel_center_coverage ... ok
[INFO] [stdout] test test_scanline_range_calculation ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/rasterizer_slice_gap_test.rs (/opt/rustwide/target/debug/build/voxel_engine/fc73007917ce0d63/deps/rasterizer_slice_gap_test-fc73007917ce0d63)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test test_slice_boundary_calculation ... ok
[INFO] [stdout] test test_slice_boundary_gap ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/rasterizer_x_gap_test.rs (/opt/rustwide/target/debug/build/voxel_engine/e4afafb9d5327382/deps/rasterizer_x_gap_test-e4afafb9d5327382)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test test_rasterizer_x_span_gap_bug ... ok
[INFO] [stdout] test test_multiple_gap_scenarios ... ok
[INFO] [stdout] test test_y_span_gap_bug ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/rendering_pipeline_tests.rs (/opt/rustwide/target/debug/build/voxel_engine/b58294cfb9a6961e/deps/rendering_pipeline_tests-b58294cfb9a6961e)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test render_single_voxel_writes_pixels ... ok
[INFO] [stdout] test span_renderer_matches_barycentric_row_coverage ... ok
[INFO] [stdout] test sub_pixel_culling_rejects_distant_geometry ... ok
[INFO] [stdout] test sub_pixel_culling_preserves_close_geometry ... ok
[INFO] [stdout] test sub_pixel_triangle_culling_preserves_visual_quality ... ok
[INFO] [stdout] test render_small_world_smoke_test ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.34s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/shading_tests.rs (/opt/rustwide/target/debug/build/voxel_engine/5705e54fea9955c9/deps/shading_tests-5705e54fea9955c9)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test test_shading_brighter_when_facing_light ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/span_walker_bug_reproduction.rs (/opt/rustwide/target/debug/build/voxel_engine/320d8cf59005e839/deps/span_walker_bug_reproduction-320d8cf59005e839)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test test_vertical_gap_bug ... ok
[INFO] [stdout] test test_combined_fractional_and_gap ... ok
[INFO] [stdout] test test_fractional_start_y_bug ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/span_walker_differential_tests.rs (/opt/rustwide/target/debug/build/voxel_engine/7780f2bcb253e8bf/deps/span_walker_differential_tests-7780f2bcb253e8bf)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test test_all_invisible ... ok
[INFO] [stdout] test test_depth_testing ... ok
[INFO] [stdout] test test_screen_boundary_clipping ... ok
[INFO] [stdout] test test_empty_packet ... ok
[INFO] [stdout] test test_visibility_mask ... ok
[INFO] [stdout] test test_single_quad_fills_correctly ... ok
[INFO] [stdout] test test_multiple_quads_in_packet ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/span_walker_fuzz_tests.rs (/opt/rustwide/target/debug/build/voxel_engine/124f387920570525/deps/span_walker_fuzz_tests-124f387920570525)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test test_span_walker_vs_triangle_rasterizer_fuzz ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests voxel_engine
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "4a3b75ee89982e21db290c8dae2b99b0a5c98d083fec0ac0a21fa9f22453929f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4a3b75ee89982e21db290c8dae2b99b0a5c98d083fec0ac0a21fa9f22453929f", kill_on_drop: false }`
[INFO] [stdout] 4a3b75ee89982e21db290c8dae2b99b0a5c98d083fec0ac0a21fa9f22453929f
