[INFO] cloning repository https://github.com/ZealanL/cubefight
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ZealanL/cubefight" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FZealanL%2Fcubefight", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FZealanL%2Fcubefight'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 882b5501ae50b31a901fdc3bcb773ea8d262f00b
[INFO] checking ZealanL/cubefight against eca445e5ae4a6679cc27d3a09106ce245e13a5a6 for pr-162478
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FZealanL%2Fcubefight" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ZealanL/cubefight
[INFO] finished tweaking git repo https://github.com/ZealanL/cubefight
[INFO] tweaked toml for git repo https://github.com/ZealanL/cubefight written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ZealanL/cubefight on toolchain eca445e5ae4a6679cc27d3a09106ce245e13a5a6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ZealanL/cubefight 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" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded fontdue v0.9.4
[INFO] [stderr]   Downloaded miniquad v0.4.11
[INFO] [stderr]   Downloaded glam v0.33.4
[INFO] [stderr]   Downloaded macroquad v0.4.16
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 09b0ea1ccaca8437891a3a606302be3c88c09ebfa44865c71a8c3ca9ca82f4ba
[INFO] running `Command { std: "docker" "start" "09b0ea1ccaca8437891a3a606302be3c88c09ebfa44865c71a8c3ca9ca82f4ba", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "09b0ea1ccaca8437891a3a606302be3c88c09ebfa44865c71a8c3ca9ca82f4ba", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "09b0ea1ccaca8437891a3a606302be3c88c09ebfa44865c71a8c3ca9ca82f4ba" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "09b0ea1ccaca8437891a3a606302be3c88c09ebfa44865c71a8c3ca9ca82f4ba", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "09b0ea1ccaca8437891a3a606302be3c88c09ebfa44865c71a8c3ca9ca82f4ba" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling miniquad v0.4.11
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking fdeflate v0.3.7
[INFO] [stderr]     Checking bytemuck v1.25.2
[INFO] [stderr]    Compiling macroquad_macro v0.1.8
[INFO] [stderr]     Checking glam v0.27.0
[INFO] [stderr]     Checking core_maths v0.1.1
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]    Compiling include_dir_macros v0.7.4
[INFO] [stderr]     Checking quad-rand v0.2.3
[INFO] [stderr]     Checking glam v0.33.4
[INFO] [stderr]     Checking fastrand v2.5.0
[INFO] [stderr]     Checking ttf-parser v0.25.1
[INFO] [stderr]     Checking include_dir v0.7.4
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]     Checking png v0.17.16
[INFO] [stderr]     Checking image v0.24.9
[INFO] [stderr]     Checking fontdue v0.9.4
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]     Checking macroquad v0.4.16
[INFO] [stderr]     Checking serde v1.0.229
[INFO] [stderr]     Checking cubefight v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[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 imports: `ImageFormat` and `load_texture`
[INFO] [stdout]   --> src/main.rs:11:76
[INFO] [stdout]    |
[INFO] [stdout] 11 | use macroquad::prelude::{clear_background, get_time, is_mouse_button_down, load_texture, next_frame, ImageFormat};
[INFO] [stdout]    |                                                                            ^^^^^^^^^^^^              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `macroquad::texture::Texture2D`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use macroquad::texture::Texture2D;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Chunk`
[INFO] [stdout]   --> src/main.rs:15:37
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::core::world::{BlockKind, Chunk, ChunkPos, Player, PlayerControls, PlayerMoveInput, World};
[INFO] [stdout]    |                                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::range::Range`
[INFO] [stdout]  --> src/core/world/player.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::range::Range;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DVec3`
[INFO] [stdout]  --> src/core/world/player_controls.rs:1:19
[INFO] [stdout]   |
[INFO] [stdout] 1 | use glam::{DVec2, DVec3};
[INFO] [stdout]   |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::math::DBox3`
[INFO] [stdout]  --> src/core/world/tracing.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::core::math::DBox3;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Player`
[INFO] [stdout]  --> src/core/update/client.rs:1:36
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::core::world::{PlayerId, Player, PlayerControls, PlayerMoveInput, World, tracing};
[INFO] [stdout]   |                                    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Player`
[INFO] [stdout]  --> src/core/update/packet.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::core::world::{Player, PlayerId};
[INFO] [stdout]   |                          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `glam::DVec3`
[INFO] [stdout]  --> src/core/update/server.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use glam::DVec3;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::math::Angle`
[INFO] [stdout]  --> src/core/update/server.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::core::math::Angle;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/tests/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/main.rs:119:31
[INFO] [stdout]     |
[INFO] [stdout] 119 |             last_tick_time += (1.0 / 20.0);
[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] 119 -             last_tick_time += (1.0 / 20.0);
[INFO] [stdout] 119 +             last_tick_time += 1.0 / 20.0;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[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 imports: `ImageFormat` and `load_texture`
[INFO] [stdout]   --> src/main.rs:11:76
[INFO] [stdout]    |
[INFO] [stdout] 11 | use macroquad::prelude::{clear_background, get_time, is_mouse_button_down, load_texture, next_frame, ImageFormat};
[INFO] [stdout]    |                                                                            ^^^^^^^^^^^^              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `macroquad::texture::Texture2D`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use macroquad::texture::Texture2D;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Chunk`
[INFO] [stdout]   --> src/main.rs:15:37
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::core::world::{BlockKind, Chunk, ChunkPos, Player, PlayerControls, PlayerMoveInput, World};
[INFO] [stdout]    |                                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::range::Range`
[INFO] [stdout]  --> src/core/world/player.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::range::Range;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DVec3`
[INFO] [stdout]  --> src/core/world/player_controls.rs:1:19
[INFO] [stdout]   |
[INFO] [stdout] 1 | use glam::{DVec2, DVec3};
[INFO] [stdout]   |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::math::DBox3`
[INFO] [stdout]  --> src/core/world/tracing.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::core::math::DBox3;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Player`
[INFO] [stdout]  --> src/core/update/client.rs:1:36
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::core::world::{PlayerId, Player, PlayerControls, PlayerMoveInput, World, tracing};
[INFO] [stdout]   |                                    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Player`
[INFO] [stdout]  --> src/core/update/packet.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::core::world::{Player, PlayerId};
[INFO] [stdout]   |                          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `glam::DVec3`
[INFO] [stdout]  --> src/core/update/server.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use glam::DVec3;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::math::Angle`
[INFO] [stdout]  --> src/core/update/server.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::core::math::Angle;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/main.rs:119:31
[INFO] [stdout]     |
[INFO] [stdout] 119 |             last_tick_time += (1.0 / 20.0);
[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] 119 -             last_tick_time += (1.0 / 20.0);
[INFO] [stdout] 119 +             last_tick_time += 1.0 / 20.0;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:126:13
[INFO] [stdout]     |
[INFO] [stdout] 126 |         let mut camera_pos = player.prev_pos.lerp(player.pos, tick_frac).as_vec3().add(
[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/main.rs:126:13
[INFO] [stdout]     |
[INFO] [stdout] 126 |         let mut camera_pos = player.prev_pos.lerp(player.pos, tick_frac).as_vec3().add(
[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: function `window_conf` is never used
[INFO] [stdout]   --> src/main.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn window_conf() -> Conf {
[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 `remove_player` and `get_chunk_map` are never used
[INFO] [stdout]   --> src/core/world/mod.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl World {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn remove_player(&mut self, id: PlayerId) -> Option<Player> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn get_chunk_map(&self) -> &HashMap<ChunkPos, Chunk> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Water` and `Lava` are never constructed
[INFO] [stdout]  --> src/core/world/block_kind.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub enum BlockKind {
[INFO] [stdout]   |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 5 |     Water,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 6 |     Lava,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `BlockKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `all_blocks` are never used
[INFO] [stdout]    --> src/core/world/chunk.rs:61:12
[INFO] [stdout]     |
[INFO] [stdout]  51 | impl Chunk {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  61 |     pub fn new(pos: ChunkPos, blocks_flat: Vec<BlockKind>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn all_blocks(&self) -> &[BlockKind] {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `hit_pos`, `hit_block_pos`, and `hit_normal` are never read
[INFO] [stdout]  --> src/core/world/tracing.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct TraceBlocksHit {
[INFO] [stdout]   |            -------------- fields in this struct
[INFO] [stdout] 7 |     pub hit_pos: DVec3,
[INFO] [stdout]   |         ^^^^^^^
[INFO] [stdout] 8 |     pub hit_block_pos: IVec3,
[INFO] [stdout]   |         ^^^^^^^^^^^^^
[INFO] [stdout] 9 |     pub hit_normal: DVec3,
[INFO] [stdout]   |         ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `TraceBlocksHit` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trace_blocks_inverse` is never used
[INFO] [stdout]   --> src/core/world/tracing.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub fn trace_blocks_inverse(from: DVec3, to: DVec3, world: &World) -> Option<TraceBlocksHit> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `hit_pos` is never read
[INFO] [stdout]   --> src/core/world/tracing.rs:87:9
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub struct TracePlayerHit {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 87 |     pub hit_pos: DVec3,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TracePlayerHit` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/core/math/dbox3.rs:11:15
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl DBox3 {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 11 |     pub const ZERO: DBox3 = DBox3 {
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn contains(&self, point: DVec3) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn inflate_by(&self, amount: DVec3) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn grow_with_delta(&self, delta: DVec3) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn size(&self) -> DVec3 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn center(&self) -> DVec3 {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn clamp_within(&self, point: DVec3) -> DVec3 {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn combine_with(&self, other: &DBox3) -> DBox3 {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn overlaps(&self, other: &Self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn intersection(&self, other: &Self) -> Option<Self> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/core/math/angle.rs:19:12
[INFO] [stdout]     |
[INFO] [stdout]   9 | impl Angle {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  19 |     pub fn from_forward(forward: DVec3) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  35 |     pub fn get_forward_yaw_only(self) -> DVec3 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  42 |     pub fn get_right(self) -> DVec3 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  48 |     pub fn to_mat(self) -> DMat3 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  70 |     pub const fn with_yaw(self, yaw: f64) -> Self {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  73 |     pub const fn with_pitch(self, pitch: f64) -> Self {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  77 |     pub const fn to_vec2(self) -> DVec2 {
[INFO] [stdout]     |                  ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn from_vec2(v: DVec2) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn unrotate_vec_yaw_only(self, vec: DVec3) -> DVec3 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn rotate_vec(self, vec: DVec3) -> DVec3 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn unrotate_vec(self, vec: DVec3) -> DVec3 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `BlockPosExt` is never used
[INFO] [stdout]  --> src/core/math/glam_ext.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub trait BlockPosExt {
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `window_conf` is never used
[INFO] [stdout]   --> src/main.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn window_conf() -> Conf {
[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 `remove_player` and `get_chunk_map` are never used
[INFO] [stdout]   --> src/core/world/mod.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl World {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn remove_player(&mut self, id: PlayerId) -> Option<Player> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn get_chunk_map(&self) -> &HashMap<ChunkPos, Chunk> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Water` and `Lava` are never constructed
[INFO] [stdout]  --> src/core/world/block_kind.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub enum BlockKind {
[INFO] [stdout]   |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 5 |     Water,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 6 |     Lava,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `BlockKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `all_blocks` are never used
[INFO] [stdout]    --> src/core/world/chunk.rs:61:12
[INFO] [stdout]     |
[INFO] [stdout]  51 | impl Chunk {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  61 |     pub fn new(pos: ChunkPos, blocks_flat: Vec<BlockKind>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn all_blocks(&self) -> &[BlockKind] {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `hit_pos`, `hit_block_pos`, and `hit_normal` are never read
[INFO] [stdout]  --> src/core/world/tracing.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct TraceBlocksHit {
[INFO] [stdout]   |            -------------- fields in this struct
[INFO] [stdout] 7 |     pub hit_pos: DVec3,
[INFO] [stdout]   |         ^^^^^^^
[INFO] [stdout] 8 |     pub hit_block_pos: IVec3,
[INFO] [stdout]   |         ^^^^^^^^^^^^^
[INFO] [stdout] 9 |     pub hit_normal: DVec3,
[INFO] [stdout]   |         ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `TraceBlocksHit` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trace_blocks_inverse` is never used
[INFO] [stdout]   --> src/core/world/tracing.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub fn trace_blocks_inverse(from: DVec3, to: DVec3, world: &World) -> Option<TraceBlocksHit> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `hit_pos` is never read
[INFO] [stdout]   --> src/core/world/tracing.rs:87:9
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub struct TracePlayerHit {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 87 |     pub hit_pos: DVec3,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TracePlayerHit` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/core/math/dbox3.rs:11:15
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl DBox3 {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 11 |     pub const ZERO: DBox3 = DBox3 {
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn contains(&self, point: DVec3) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn inflate_by(&self, amount: DVec3) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn grow_with_delta(&self, delta: DVec3) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn size(&self) -> DVec3 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn center(&self) -> DVec3 {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn clamp_within(&self, point: DVec3) -> DVec3 {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn combine_with(&self, other: &DBox3) -> DBox3 {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn overlaps(&self, other: &Self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn intersection(&self, other: &Self) -> Option<Self> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/core/math/angle.rs:19:12
[INFO] [stdout]     |
[INFO] [stdout]   9 | impl Angle {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  19 |     pub fn from_forward(forward: DVec3) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  35 |     pub fn get_forward_yaw_only(self) -> DVec3 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  42 |     pub fn get_right(self) -> DVec3 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  48 |     pub fn to_mat(self) -> DMat3 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  70 |     pub const fn with_yaw(self, yaw: f64) -> Self {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  73 |     pub const fn with_pitch(self, pitch: f64) -> Self {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  77 |     pub const fn to_vec2(self) -> DVec2 {
[INFO] [stdout]     |                  ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn from_vec2(v: DVec2) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn unrotate_vec_yaw_only(self, vec: DVec3) -> DVec3 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn rotate_vec(self, vec: DVec3) -> DVec3 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn unrotate_vec(self, vec: DVec3) -> DVec3 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `BlockPosExt` is never used
[INFO] [stdout]  --> src/core/math/glam_ext.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub trait BlockPosExt {
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 17.22s
[INFO] running `Command { std: "docker" "inspect" "09b0ea1ccaca8437891a3a606302be3c88c09ebfa44865c71a8c3ca9ca82f4ba", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "09b0ea1ccaca8437891a3a606302be3c88c09ebfa44865c71a8c3ca9ca82f4ba", kill_on_drop: false }`
[INFO] [stdout] 09b0ea1ccaca8437891a3a606302be3c88c09ebfa44865c71a8c3ca9ca82f4ba
