[INFO] cloning repository https://github.com/superspaceshuttlee/loudstone
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/superspaceshuttlee/loudstone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsuperspaceshuttlee%2Floudstone", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsuperspaceshuttlee%2Floudstone'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 425afe6381e3057663b68dc24828522d0bcc43ac
[INFO] checking superspaceshuttlee/loudstone against 3154cc1a3e6424e44f438a95007d043ed5ceaaf6+rustflags=-Znext-solver=coherence for pr-133502-30
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsuperspaceshuttlee%2Floudstone" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/superspaceshuttlee/loudstone
[INFO] finished tweaking git repo https://github.com/superspaceshuttlee/loudstone
[INFO] tweaked toml for git repo https://github.com/superspaceshuttlee/loudstone written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/superspaceshuttlee/loudstone on toolchain 3154cc1a3e6424e44f438a95007d043ed5ceaaf6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/superspaceshuttlee/loudstone 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" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 002c1e827af54a07c035b20e80afc00234796dd3656cd47042579318888508bb
[INFO] running `Command { std: "docker" "start" "002c1e827af54a07c035b20e80afc00234796dd3656cd47042579318888508bb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "002c1e827af54a07c035b20e80afc00234796dd3656cd47042579318888508bb", 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" "002c1e827af54a07c035b20e80afc00234796dd3656cd47042579318888508bb" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "002c1e827af54a07c035b20e80afc00234796dd3656cd47042579318888508bb", 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 -Znext-solver=coherence" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "002c1e827af54a07c035b20e80afc00234796dd3656cd47042579318888508bb" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.107
[INFO] [stderr]    Compiling quote v1.0.47
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling pkg-config v0.3.34
[INFO] [stderr]     Checking log v0.4.34
[INFO] [stderr]    Compiling libc v0.2.189
[INFO] [stderr]     Checking smallvec v1.16.0
[INFO] [stderr]    Compiling cfg_aliases v0.2.2
[INFO] [stderr]    Compiling find-msvc-tools v0.1.12
[INFO] [stderr]     Checking foldhash v0.2.0
[INFO] [stderr]    Compiling cc v1.4.5
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling zerocopy v0.8.56
[INFO] [stderr]    Compiling memchr v2.8.3
[INFO] [stderr]    Compiling thiserror v2.0.20
[INFO] [stderr]    Compiling quick-xml v0.41.0
[INFO] [stderr]    Compiling syn v3.0.4
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling wayland-sys v0.31.11
[INFO] [stderr]    Compiling wayland-client v0.31.15
[INFO] [stderr]     Checking hashbrown v0.17.1
[INFO] [stderr]     Checking bitflags v2.13.1
[INFO] [stderr]     Checking arrayvec v0.7.8
[INFO] [stderr]     Checking rustc-hash v1.1.0
[INFO] [stderr]    Compiling naga v30.0.1
[INFO] [stderr]     Checking codespan-reporting v0.13.1
[INFO] [stderr]     Checking rustix v1.1.4
[INFO] [stderr]     Checking indexmap v2.14.1
[INFO] [stderr]     Checking spirv v0.4.0+sdk-1.4.341.0
[INFO] [stderr]     Checking bit-set v0.10.0
[INFO] [stderr]    Compiling khronos-egl v6.0.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.22
[INFO] [stderr]     Checking rustix v0.38.44
[INFO] [stderr]     Checking hashbrown v0.16.1
[INFO] [stderr]    Compiling wayland-scanner v0.31.11
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]    Compiling wgpu-hal v30.0.1
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.20
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking ordered-float v5.5.0
[INFO] [stderr]    Compiling alsa-sys v0.4.0
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]     Checking xcursor v0.3.11
[INFO] [stderr]    Compiling crossbeam-deque v0.8.7
[INFO] [stderr]     Checking glow v0.17.0
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]     Checking memmap2 v0.9.11
[INFO] [stderr]    Compiling wayland-backend v0.3.17
[INFO] [stderr]    Compiling wgpu-core v30.0.1
[INFO] [stderr]     Checking polling v3.11.0
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]     Checking gethostname v1.1.0
[INFO] [stderr]     Checking wayland-csd-frame v0.3.0
[INFO] [stderr]    Compiling winit v0.30.13
[INFO] [stderr]    Compiling wgpu v30.0.1
[INFO] [stderr]     Checking cpufeatures v0.3.1
[INFO] [stderr]    Compiling cpal v0.18.2
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]     Checking x11rb v0.13.2
[INFO] [stderr]     Checking alsa v0.11.0
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking chacha20 v0.10.2
[INFO] [stderr]     Checking rand_xorshift v0.3.0
[INFO] [stderr]     Checking rand v0.8.8
[INFO] [stderr]     Checking xkbcommon-dl v0.4.2
[INFO] [stderr]     Checking either v1.18.0
[INFO] [stderr]     Checking smol_str v0.2.2
[INFO] [stderr]     Checking rayon v1.12.0
[INFO] [stderr]     Checking noise v0.9.0
[INFO] [stderr]     Checking rand v0.10.2
[INFO] [stderr]     Checking pollster v1.0.1
[INFO] [stderr]     Checking glam v0.33.6
[INFO] [stderr]    Compiling bytemuck_derive v1.12.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.20
[INFO] [stderr]     Checking wayland-protocols v0.32.13
[INFO] [stderr]     Checking wayland-cursor v0.31.14
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling zerocopy-derive v0.8.56
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]     Checking bytemuck v1.25.2
[INFO] [stderr]     Checking tiny-skia-path v0.11.4
[INFO] [stderr]     Checking tiny-skia v0.11.4
[INFO] [stderr]     Checking naga-types v30.0.1
[INFO] [stderr]     Checking gpu-allocator v0.28.0
[INFO] [stderr]     Checking wgpu-types v30.0.1
[INFO] [stderr]     Checking wayland-protocols-wlr v0.3.12
[INFO] [stderr]     Checking wayland-protocols-plasma v0.3.12
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking calloop v0.13.0
[INFO] [stderr]     Checking calloop-wayland-source v0.3.0
[INFO] [stderr]     Checking smithay-client-toolkit v0.19.2
[INFO] [stderr]     Checking sctk-adwaita v0.10.1
[INFO] [stderr]     Checking ron v0.12.2
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]     Checking wgpu-naga-bridge v30.0.1
[INFO] [stderr]     Checking wgpu-core-deps-windows-linux-android v30.0.1
[INFO] [stderr]     Checking loudstone v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `ClimateBiome`
[INFO] [stdout]   --> src/world/worldgen/support.rs:11:14
[INFO] [stdout]    |
[INFO] [stdout] 11 | use tuning::{ClimateBiome, TreeKind};
[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: `merge_into_cell`
[INFO] [stdout]   --> src/main.rs:22:19
[INFO] [stdout]    |
[INFO] [stdout] 22 |     furnace_rect, merge_into_cell, return_panel_items, slot_rect, store_output, swap_carried,
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DAY_FRACTION`
[INFO] [stdout]   --> src/main.rs:32:21
[INFO] [stdout]    |
[INFO] [stdout] 32 | use sim::daylight::{DAY_FRACTION, DAY_LENGTH, daylight_at, sky_for, sun_for};
[INFO] [stdout]    |                     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ClimateBiome`
[INFO] [stdout]   --> src/world/worldgen/support.rs:11:14
[INFO] [stdout]    |
[INFO] [stdout] 11 | use tuning::{ClimateBiome, TreeKind};
[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: `merge_into_cell`
[INFO] [stdout]   --> src/main.rs:22:19
[INFO] [stdout]    |
[INFO] [stdout] 22 |     furnace_rect, merge_into_cell, return_panel_items, slot_rect, store_output, swap_carried,
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DAY_FRACTION`
[INFO] [stdout]   --> src/main.rs:32:21
[INFO] [stdout]    |
[INFO] [stdout] 32 | use sim::daylight::{DAY_FRACTION, DAY_LENGTH, daylight_at, sky_for, sun_for};
[INFO] [stdout]    |                     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `srgb_to_linear` is never used
[INFO] [stdout]    --> src/config.rs:178:8
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub fn srgb_to_linear(c: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `srgb_to_linear3` is never used
[INFO] [stdout]    --> src/config.rs:187:8
[INFO] [stdout]     |
[INFO] [stdout] 187 | pub fn srgb_to_linear3(c: [f32; 3]) -> [f32; 3] {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `MAX`, `is_log`, and `color` are never used
[INFO] [stdout]    --> src/content/block.rs:123:15
[INFO] [stdout]     |
[INFO] [stdout]  58 | impl BlockId {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub const MAX: u8 = 38;
[INFO] [stdout]     |               ^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn is_log(self) -> bool {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     pub fn color(self) -> [f32; 3] {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `recipe_for` is never used
[INFO] [stdout]   --> src/content/crafting.rs:98:8
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub fn recipe_for(grid: &[Option<ItemStack>]) -> Option<&'static Recipe> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `smelt_result` is never used
[INFO] [stdout]    --> src/content/crafting.rs:213:8
[INFO] [stdout]     |
[INFO] [stdout] 213 | pub fn smelt_result(input: ItemId) -> Option<ItemId> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_burning` is never used
[INFO] [stdout]    --> src/content/crafting.rs:278:12
[INFO] [stdout]     |
[INFO] [stdout] 251 | impl Furnace {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 278 |     pub fn is_burning(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `one`, `worn`, `split`, `split_half`, and `wear` are never used
[INFO] [stdout]    --> src/content/inventory.rs:38:12
[INFO] [stdout]     |
[INFO] [stdout]  26 | impl ItemStack {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  38 |     pub fn one(item: ItemId) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  43 |     pub fn worn(item: ItemId, durability: u16) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     pub fn split(&mut self, amount: u8) -> Option<ItemStack> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn split_half(&mut self) -> Option<ItemStack> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn wear(self) -> f32 {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/content/inventory.rs:169:12
[INFO] [stdout]     |
[INFO] [stdout] 139 | impl Inventory {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn take_slot(&mut self, index: usize) -> Option<ItemStack> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     pub fn main(&self) -> &[Option<ItemStack>] {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn first_empty(&self) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 222 |     pub fn count(&self, item: ItemId) -> u32 {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn has(&self, item: ItemId, count: u32) -> bool {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 293 |     pub fn remove(&mut self, item: ItemId, count: u32) -> u32 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 335 |     pub fn move_stack(&mut self, from: usize, to: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 360 |     pub fn merge_stacks(&mut self, from: usize, to: usize) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 378 |     pub fn split_stack(&mut self, from: usize, to: usize) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STACK_LIMIT` is never used
[INFO] [stdout]    --> src/content/inventory.rs:451:11
[INFO] [stdout]     |
[INFO] [stdout] 451 | pub const STACK_LIMIT: u8 = MAX_STACK;
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLOCK_TORCH` is never used
[INFO] [stdout]   --> src/content/item.rs:28:11
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub const BLOCK_TORCH: BlockId = BlockId(15);
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLOCK_CRAFTING_TABLE` is never used
[INFO] [stdout]   --> src/content/item.rs:30:11
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub const BLOCK_CRAFTING_TABLE: BlockId = BlockId(16);
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLOCK_FURNACE` is never used
[INFO] [stdout]   --> src/content/item.rs:32:11
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub const BLOCK_FURNACE: BlockId = BlockId(17);
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `rank`, `durability`, and `material` are never used
[INFO] [stdout]   --> src/content/item.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 67 | impl ToolTier {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn rank(self) -> u8 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn durability(self) -> u16 {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub fn material(self) -> ItemId {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/content/item.rs:107:15
[INFO] [stdout]     |
[INFO] [stdout] 105 | impl ItemId {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] 106 |     // Block items -- numerically identical to their BlockId.
[INFO] [stdout] 107 |     pub const STONE: ItemId = ItemId(1);
[INFO] [stdout]     |               ^^^^^
[INFO] [stdout] 108 |     pub const DIRT: ItemId = ItemId(2);
[INFO] [stdout]     |               ^^^^
[INFO] [stdout] 109 |     pub const GRASS: ItemId = ItemId(3);
[INFO] [stdout]     |               ^^^^^
[INFO] [stdout] 110 |     pub const SAND: ItemId = ItemId(4);
[INFO] [stdout]     |               ^^^^
[INFO] [stdout] 111 |     pub const WOOD: ItemId = ItemId(5);
[INFO] [stdout]     |               ^^^^
[INFO] [stdout] 112 |     pub const LEAVES: ItemId = ItemId(6);
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub const COAL_ORE: ItemId = ItemId(9);
[INFO] [stdout]     |               ^^^^^^^^
[INFO] [stdout] 116 |     pub const IRON_ORE: ItemId = ItemId(10);
[INFO] [stdout]     |               ^^^^^^^^
[INFO] [stdout] 117 |     pub const GOLD_ORE: ItemId = ItemId(11);
[INFO] [stdout]     |               ^^^^^^^^
[INFO] [stdout] 118 |     pub const DIAMOND_ORE: ItemId = ItemId(12);
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 119 |     pub const TORCH: ItemId = ItemId(15);
[INFO] [stdout] 120 |     pub const CRAFTING_TABLE: ItemId = ItemId(16);
[INFO] [stdout]     |               ^^^^^^^^^^^^^^
[INFO] [stdout] 121 |     pub const FURNACE: ItemId = ItemId(17);
[INFO] [stdout]     |               ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub const WOODEN_PICKAXE: ItemId = ItemId(110);
[INFO] [stdout]     |               ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub const WOODEN_AXE: ItemId = ItemId(120);
[INFO] [stdout]     |               ^^^^^^^^^^
[INFO] [stdout] 134 |     pub const STONE_AXE: ItemId = ItemId(121);
[INFO] [stdout]     |               ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub const WOODEN_SWORD: ItemId = ItemId(130);
[INFO] [stdout]     |               ^^^^^^^^^^^^
[INFO] [stdout] 139 |     pub const STONE_SWORD: ItemId = ItemId(131);
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 140 |     pub const IRON_SWORD: ItemId = ItemId(132);
[INFO] [stdout]     |               ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub const ALL: &'static [ItemId] = &[
[INFO] [stdout]     |               ^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     pub fn from_block(block: BlockId) -> Option<ItemId> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn tool_item(kind: ToolKind, tier: ToolTier) -> ItemId {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 263 |     pub fn color(self) -> [f32; 3] {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]    --> src/content/registry.rs:363:9
[INFO] [stdout]     |
[INFO] [stdout] 362 | pub struct BlockDef {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] 363 |     pub id: BlockId,
[INFO] [stdout]     |         ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BlockDef` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `material` is never read
[INFO] [stdout]    --> src/content/registry.rs:377:9
[INFO] [stdout]     |
[INFO] [stdout] 372 | pub struct TierDef {
[INFO] [stdout]     |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 377 |     pub material: ItemId,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TierDef` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tool_items` is never read
[INFO] [stdout]    --> src/content/registry.rs:406:5
[INFO] [stdout]     |
[INFO] [stdout] 397 | pub struct Registry {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 406 |     tool_items: [[ItemId; 3]; 3],
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `item_ids`, `tool_item`, and `max_block_id` are never used
[INFO] [stdout]    --> src/content/registry.rs:457:12
[INFO] [stdout]     |
[INFO] [stdout] 427 | impl Registry {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 457 |     pub fn item_ids(&self) -> &[ItemId] {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 467 |     pub fn tool_item(&self, kind: ToolKind, tier: ToolTier) -> ItemId {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 480 |     pub fn max_block_id(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `on_ground` and `placed` are never read
[INFO] [stdout]   --> src/dev/gauntlet.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub struct Probe {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub on_ground: bool,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub placed: u64,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Probe` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_empty`, `clear`, `mask_at`, `block_at`, and `replay` are never used
[INFO] [stdout]    --> src/persist/save.rs:273:12
[INFO] [stdout]     |
[INFO] [stdout] 262 | impl ChangeTracker {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 273 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 286 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 320 |     pub fn mask_at(&self, x: i32, y: i32, z: i32) -> Option<&[u8; MASK_BYTES]> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 326 |     pub fn block_at(&self, x: i32, y: i32, z: i32) -> Option<BlockId> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 332 |     pub fn replay<W: WorldEdit + ?Sized>(&self, world: &mut W) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `CHEST` is never used
[INFO] [stdout]    --> src/persist/save.rs:461:15
[INFO] [stdout]     |
[INFO] [stdout] 456 | impl ContainerKind {
[INFO] [stdout]     | ------------------ associated constant in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 461 |     pub const CHEST: ContainerKind = ContainerKind(2);
[INFO] [stdout]     |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/persist/save.rs:502:12
[INFO] [stdout]     |
[INFO] [stdout] 500 | impl ContainerSave {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] 501 |     /// An empty container with `slots` slots and `fields` zeroed numbers.
[INFO] [stdout] 502 |     pub fn new(kind: ContainerKind, slots: usize, fields: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `container` is never used
[INFO] [stdout]    --> src/persist/save.rs:672:12
[INFO] [stdout]     |
[INFO] [stdout] 641 | impl SaveData {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 672 |     pub fn container(&self, pos: BlockPos) -> Option<&ContainerSave> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `model_box_geometry` is never used
[INFO] [stdout]    --> src/render/gfx.rs:482:12
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl Renderer {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 482 |     pub fn model_box_geometry(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_model_box_shaded` is never used
[INFO] [stdout]    --> src/render/gfx.rs:888:4
[INFO] [stdout]     |
[INFO] [stdout] 888 | fn push_model_box_shaded(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pos` is never read
[INFO] [stdout]   --> src/render/mesh.rs:84:9
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub struct Neighborhood {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub pos: ChunkPos,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TILE_COUNT` is never used
[INFO] [stdout]    --> src/render/texture/mod.rs:157:11
[INFO] [stdout]     |
[INFO] [stdout] 157 | pub const TILE_COUNT: usize = ICON_BASE as usize + ICON_SLOTS;
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TILE_NAMES` is never used
[INFO] [stdout]    --> src/render/texture/mod.rs:162:11
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub const TILE_NAMES: [&str; ICON_BASE as usize] = [
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mob_tiles` is never used
[INFO] [stdout]    --> src/render/texture/mod.rs:402:8
[INFO] [stdout]     |
[INFO] [stdout] 402 | pub fn mob_tiles(kind: usize) -> (TileId, TileId, TileId) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MOB_COLORS` is never used
[INFO] [stdout]    --> src/render/texture/mod.rs:414:11
[INFO] [stdout]     |
[INFO] [stdout] 414 | pub const MOB_COLORS: [[f32; 3]; 4] = [
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `texel` and `tile_texel` are never used
[INFO] [stdout]    --> src/render/texture/mod.rs:433:12
[INFO] [stdout]     |
[INFO] [stdout] 431 | impl Atlas {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] 432 |     /// Read one texel of mip level 0.
[INFO] [stdout] 433 |     pub fn texel(&self, x: usize, y: usize) -> [u8; 4] {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 440 |     pub fn tile_texel(&self, tile: TileId, x: usize, y: usize) -> [u8; 4] {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `color` is never used
[INFO] [stdout]    --> src/sim/mob.rs:214:12
[INFO] [stdout]     |
[INFO] [stdout] 185 | impl MobKind {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 214 |     pub fn color(self) -> [f32; 3] {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Arrow` is never constructed
[INFO] [stdout]    --> src/sim/mob.rs:269:5
[INFO] [stdout]     |
[INFO] [stdout] 265 | pub enum DropKind {
[INFO] [stdout]     |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 269 |     Arrow,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DropKind` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `health_fraction` is never used
[INFO] [stdout]    --> src/sim/mob.rs:411:12
[INFO] [stdout]     |
[INFO] [stdout] 367 | impl Mob {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 411 |     pub fn health_fraction(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `len`, `is_empty`, `get`, and `raycast` are never used
[INFO] [stdout]    --> src/sim/mob.rs:781:12
[INFO] [stdout]     |
[INFO] [stdout] 758 | impl MobManager {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 781 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 784 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 793 |     pub fn get(&self, id: u32) -> Option<&Mob> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 892 |     pub fn raycast(&self, origin: Vec3, dir: Vec3, max_distance: f32) -> Option<(u32, f32)> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ray_aabb` is never used
[INFO] [stdout]     --> src/sim/mob.rs:1464:4
[INFO] [stdout]      |
[INFO] [stdout] 1464 | fn ray_aabb(origin: Vec3, dir: Vec3, mn: Vec3, mx: Vec3) -> Option<f32> {
[INFO] [stdout]      |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_EXPANDED_NODES` is never used
[INFO] [stdout]   --> src/sim/pathfind.rs:44:11
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub const MAX_EXPANDED_NODES: usize = 1200;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_empty` and `len` are never used
[INFO] [stdout]    --> src/sim/pathfind.rs:168:12
[INFO] [stdout]     |
[INFO] [stdout] 167 | impl Path {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] 168 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `note_mined` and `note_placed` are never used
[INFO] [stdout]    --> src/sim/session.rs:96:12
[INFO] [stdout]     |
[INFO] [stdout]  79 | impl Stats {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn note_mined(&mut self, id: BlockId) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn note_placed(&mut self, id: BlockId) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOUDNESS_CHIP` is never used
[INFO] [stdout]   --> src/sim/sound.rs:30:11
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub const LOUDNESS_CHIP: f32 = 0.25;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOUDNESS_SMASH` is never used
[INFO] [stdout]   --> src/sim/sound.rs:32:11
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub const LOUDNESS_SMASH: f32 = 1.0;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `chip` and `smash` are never used
[INFO] [stdout]    --> src/sim/sound.rs:104:12
[INFO] [stdout]     |
[INFO] [stdout] 103 | impl NoiseEvent {
[INFO] [stdout]     | --------------- associated functions in this implementation
[INFO] [stdout] 104 |     pub fn chip(pos: Vec3) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn smash(pos: Vec3) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `source_loudness`, `visited`, and `budget_exhausted` are never read
[INFO] [stdout]    --> src/sim/sound.rs:210:5
[INFO] [stdout]     |
[INFO] [stdout] 205 | pub struct Propagation {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 210 |     source_loudness: f32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 214 |     pub visited: usize,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub budget_exhausted: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Propagation` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `source_loudness`, `audibility_at`, and `node_count` are never used
[INFO] [stdout]    --> src/sim/sound.rs:311:12
[INFO] [stdout]     |
[INFO] [stdout] 220 | impl Propagation {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 311 |     pub fn source_loudness(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 326 |     pub fn audibility_at(&self, listener: Vec3) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 363 |     pub fn node_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/sim/sound.rs:438:12
[INFO] [stdout]     |
[INFO] [stdout] 396 | impl SoundField {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 438 |     pub fn emit_chip(&mut self, pos: Vec3) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 441 |     pub fn emit_smash(&mut self, pos: Vec3) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 510 |     pub fn audibility_at(&self, listener: Vec3) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 518 |     pub fn loudest_at(&self, listener: Vec3) -> Option<Heard> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 542 |     pub fn sources(&self) -> impl Iterator<Item = (Vec3, f32)> + '_ {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 546 |     pub fn active_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 549 |     pub fn pending_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 552 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]     --> src/world/mod.rs:415:12
[INFO] [stdout]      |
[INFO] [stdout]  159 | impl World {
[INFO] [stdout]      | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  415 |     pub fn daylight(&self) -> f32 {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  420 |     pub fn sky_subtract(&self) -> u8 {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  538 |     pub fn pending_noise(&self) -> &[NoiseEvent] {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  786 |     pub fn chip_sphere(&mut self, hit: &RayHit, radius: f32) -> u32 {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1470 |     pub fn ensure(&mut self, pos: ChunkPos) -> bool {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1480 |     pub fn mesh_now(&self, pos: ChunkPos) -> Option<(Vec<Vertex>, Vec<u32>)> {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1490 |     pub fn ensure_lit(&mut self, pos: ChunkPos) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `empty` and `set` are never used
[INFO] [stdout]   --> src/world/chunk.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl SubMask {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn empty() -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn set(&mut self, x: usize, y: usize, z: usize) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `local_coords` is never used
[INFO] [stdout]    --> src/world/chunk.rs:135:8
[INFO] [stdout]     |
[INFO] [stdout] 135 | pub fn local_coords(i: u16) -> (usize, usize, usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `blocks` and `light_data` are never used
[INFO] [stdout]    --> src/world/chunk.rs:216:12
[INFO] [stdout]     |
[INFO] [stdout] 144 | impl Chunk {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn blocks(&self) -> &[BlockId; CHUNK_VOL] {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub fn light_data(&self) -> &[u8; CHUNK_VOL] {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]    --> src/world/worldgen/support.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | impl Biome {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] 113 |     pub fn name(self) -> &'static str {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stack` is never used
[INFO] [stdout]    --> src/app/ui.rs:405:8
[INFO] [stdout]     |
[INFO] [stdout] 405 |     fn stack(item: ItemId, n: u8) -> Option<ItemStack> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `srgb_to_linear` is never used
[INFO] [stdout]    --> src/config.rs:178:8
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub fn srgb_to_linear(c: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `srgb_to_linear3` is never used
[INFO] [stdout]    --> src/config.rs:187:8
[INFO] [stdout]     |
[INFO] [stdout] 187 | pub fn srgb_to_linear3(c: [f32; 3]) -> [f32; 3] {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `first_empty` and `has` are never used
[INFO] [stdout]    --> src/content/inventory.rs:187:12
[INFO] [stdout]     |
[INFO] [stdout] 139 | impl Inventory {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn first_empty(&self) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn has(&self, item: ItemId, count: u32) -> bool {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLOCK_FURNACE` is never used
[INFO] [stdout]   --> src/content/item.rs:32:11
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub const BLOCK_FURNACE: BlockId = BlockId(17);
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `rank` and `material` are never used
[INFO] [stdout]   --> src/content/item.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 67 | impl ToolTier {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn rank(self) -> u8 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub fn material(self) -> ItemId {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `color` is never used
[INFO] [stdout]    --> src/content/item.rs:263:12
[INFO] [stdout]     |
[INFO] [stdout] 105 | impl ItemId {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 263 |     pub fn color(self) -> [f32; 3] {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]    --> src/content/registry.rs:363:9
[INFO] [stdout]     |
[INFO] [stdout] 362 | pub struct BlockDef {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] 363 |     pub id: BlockId,
[INFO] [stdout]     |         ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BlockDef` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `material` is never read
[INFO] [stdout]    --> src/content/registry.rs:377:9
[INFO] [stdout]     |
[INFO] [stdout] 372 | pub struct TierDef {
[INFO] [stdout]     |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 377 |     pub material: ItemId,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TierDef` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `inject` is never used
[INFO] [stdout]     --> src/content/registry.rs:1519:8
[INFO] [stdout]      |
[INFO] [stdout] 1519 |     fn inject(from: &str, to: &str) -> String {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `on_ground` and `placed` are never read
[INFO] [stdout]   --> src/dev/gauntlet.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub struct Probe {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub on_ground: bool,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub placed: u64,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Probe` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]    --> src/persist/save.rs:286:12
[INFO] [stdout]     |
[INFO] [stdout] 262 | impl ChangeTracker {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 286 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `model_box_geometry` is never used
[INFO] [stdout]    --> src/render/gfx.rs:482:12
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl Renderer {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 482 |     pub fn model_box_geometry(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_model_box_shaded` is never used
[INFO] [stdout]    --> src/render/gfx.rs:888:4
[INFO] [stdout]     |
[INFO] [stdout] 888 | fn push_model_box_shaded(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pos` is never read
[INFO] [stdout]   --> src/render/mesh.rs:84:9
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub struct Neighborhood {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub pos: ChunkPos,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mob_tiles` is never used
[INFO] [stdout]    --> src/render/texture/mod.rs:402:8
[INFO] [stdout]     |
[INFO] [stdout] 402 | pub fn mob_tiles(kind: usize) -> (TileId, TileId, TileId) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MOB_COLORS` is never used
[INFO] [stdout]    --> src/render/texture/mod.rs:414:11
[INFO] [stdout]     |
[INFO] [stdout] 414 | pub const MOB_COLORS: [[f32; 3]; 4] = [
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `color` is never used
[INFO] [stdout]    --> src/sim/mob.rs:214:12
[INFO] [stdout]     |
[INFO] [stdout] 185 | impl MobKind {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 214 |     pub fn color(self) -> [f32; 3] {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Arrow` is never constructed
[INFO] [stdout]    --> src/sim/mob.rs:269:5
[INFO] [stdout]     |
[INFO] [stdout] 265 | pub enum DropKind {
[INFO] [stdout]     |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 269 |     Arrow,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DropKind` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `health_fraction` is never used
[INFO] [stdout]    --> src/sim/mob.rs:411:12
[INFO] [stdout]     |
[INFO] [stdout] 367 | impl Mob {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 411 |     pub fn health_fraction(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_empty` and `len` are never used
[INFO] [stdout]    --> src/sim/pathfind.rs:168:12
[INFO] [stdout]     |
[INFO] [stdout] 167 | impl Path {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] 168 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `note_mined` and `note_placed` are never used
[INFO] [stdout]    --> src/sim/session.rs:96:12
[INFO] [stdout]     |
[INFO] [stdout]  79 | impl Stats {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn note_mined(&mut self, id: BlockId) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn note_placed(&mut self, id: BlockId) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `source_loudness` and `node_count` are never used
[INFO] [stdout]    --> src/sim/sound.rs:311:12
[INFO] [stdout]     |
[INFO] [stdout] 220 | impl Propagation {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 311 |     pub fn source_loudness(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 363 |     pub fn node_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `emit_smash`, `sources`, and `clear` are never used
[INFO] [stdout]    --> src/sim/sound.rs:441:12
[INFO] [stdout]     |
[INFO] [stdout] 396 | impl SoundField {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 441 |     pub fn emit_smash(&mut self, pos: Vec3) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 542 |     pub fn sources(&self) -> impl Iterator<Item = (Vec3, f32)> + '_ {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 552 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `daylight`, `sky_subtract`, and `ensure_lit` are never used
[INFO] [stdout]     --> src/world/mod.rs:415:12
[INFO] [stdout]      |
[INFO] [stdout]  159 | impl World {
[INFO] [stdout]      | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  415 |     pub fn daylight(&self) -> f32 {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  420 |     pub fn sky_subtract(&self) -> u8 {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1490 |     pub fn ensure_lit(&mut self, pos: ChunkPos) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `empty` is never used
[INFO] [stdout]   --> src/world/chunk.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl SubMask {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn empty() -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [optimized + debuginfo] target(s) in 4m 24s
[INFO] running `Command { std: "docker" "inspect" "002c1e827af54a07c035b20e80afc00234796dd3656cd47042579318888508bb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "002c1e827af54a07c035b20e80afc00234796dd3656cd47042579318888508bb", kill_on_drop: false }`
[INFO] [stdout] 002c1e827af54a07c035b20e80afc00234796dd3656cd47042579318888508bb
