[INFO] cloning repository https://github.com/skypher/anno
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/skypher/anno" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fskypher%2Fanno", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fskypher%2Fanno'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a1b164dcf0085a40eb78885910069badc2a2b681
[INFO] testing skypher/anno against try#33835004928d3bf65db4d4712e1330766263b0bd for pr-155739
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fskypher%2Fanno" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/skypher/anno
[INFO] finished tweaking git repo https://github.com/skypher/anno
[INFO] tweaked toml for git repo https://github.com/skypher/anno written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/skypher/anno on toolchain 33835004928d3bf65db4d4712e1330766263b0bd
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/skypher/anno 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" "+33835004928d3bf65db4d4712e1330766263b0bd" "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-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2e9d796c78f9f54979764eb38ed355ab1ad351800d3b8f92025f2e85a8344d10
[INFO] running `Command { std: "docker" "start" "-a" "2e9d796c78f9f54979764eb38ed355ab1ad351800d3b8f92025f2e85a8344d10", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2e9d796c78f9f54979764eb38ed355ab1ad351800d3b8f92025f2e85a8344d10", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2e9d796c78f9f54979764eb38ed355ab1ad351800d3b8f92025f2e85a8344d10", kill_on_drop: false }`
[INFO] [stdout] 2e9d796c78f9f54979764eb38ed355ab1ad351800d3b8f92025f2e85a8344d10
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9373c80c54c6aa95dc97b8e1f1bfd2a9ef1e809fcf13bebc478cfbbf53a79b6c
[INFO] running `Command { std: "docker" "start" "-a" "9373c80c54c6aa95dc97b8e1f1bfd2a9ef1e809fcf13bebc478cfbbf53a79b6c", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling bytemuck v1.25.0
[INFO] [stderr]    Compiling version-compare v0.1.1
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]    Compiling cpal v0.15.3
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling sdl2 v0.37.0
[INFO] [stderr]    Compiling cmake v0.1.57
[INFO] [stderr]    Compiling anno-net v0.1.0 (/opt/rustwide/workdir/crates/anno-net)
[INFO] [stdout] warning: fields `frag_buffer` and `frag_expected_size` are never read
[INFO] [stdout]   --> crates/anno-net/src/transport.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | struct PeerConnection {
[INFO] [stdout]    |        -------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 39 |     frag_buffer: Option<Vec<u8>>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 40 |     frag_expected_size: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling symphonia-core v0.5.5
[INFO] [stderr]    Compiling sdl2-sys v0.37.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling symphonia-metadata v0.5.5
[INFO] [stderr]    Compiling alsa v0.9.1
[INFO] [stderr]    Compiling symphonia-bundle-mp3 v0.5.5
[INFO] [stderr]    Compiling symphonia v0.5.5
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling rodio v0.20.1
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling anno-formats v0.1.0 (/opt/rustwide/workdir/crates/anno-formats)
[INFO] [stderr]    Compiling anno-audio v0.1.0 (/opt/rustwide/workdir/crates/anno-audio)
[INFO] [stdout] warning: unused imports: `AdpcmState` and `self`
[INFO] [stdout]  --> crates/anno-audio/src/stream.rs:6:20
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::adpcm::{self, AdpcmState};
[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: `rodio::source::Source`
[INFO] [stdout]  --> crates/anno-audio/src/stream.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rodio::source::Source;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> crates/anno-audio/src/stream.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `OutputStream`
[INFO] [stdout]  --> crates/anno-audio/src/wave.rs:8:22
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rodio::{Decoder, OutputStream, OutputStreamHandle, Sink};
[INFO] [stdout]   |                      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> crates/anno-audio/src/wave.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::fs::File;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::BufReader`
[INFO] [stdout]   --> crates/anno-audio/src/wave.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::io::BufReader;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]   --> crates/anno-audio/src/wave.rs:11:17
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pan`
[INFO] [stdout]    --> crates/anno-audio/src/wave.rs:155:21
[INFO] [stdout]     |
[INFO] [stdout] 155 |                 let pan = (fx / self.screen_half_width).clamp(-1.0, 1.0);
[INFO] [stdout]     |                     ^^^ help: if this is intentional, prefix it with an underscore: `_pan`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling bincode v1.3.3
[INFO] [stderr]    Compiling anno-sim v0.1.0 (/opt/rustwide/workdir/crates/anno-sim)
[INFO] [stdout] warning: unused import: `NUM_DEMAND_CATEGORIES`
[INFO] [stdout]   --> crates/anno-sim/src/economy.rs:13:29
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::player::{Player, NUM_DEMAND_CATEGORIES};
[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: `PopTier`
[INFO] [stdout]  --> crates/anno-sim/src/player.rs:6:20
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::types::{PopTier, NUM_POP_TIERS};
[INFO] [stdout]   |                    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DemandSlot`
[INFO] [stdout]   --> crates/anno-sim/src/population.rs:14:21
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::player::{DemandSlot, Player, NUM_DEMAND_CATEGORIES};
[INFO] [stdout]    |                     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `warehouses`
[INFO] [stdout]    --> crates/anno-sim/src/ai.rs:167:9
[INFO] [stdout]     |
[INFO] [stdout] 167 |         warehouses: &[Warehouse],
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_warehouses`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ATTACK_RANGE` is never used
[INFO] [stdout]   --> crates/anno-sim/src/combat.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const ATTACK_RANGE: u32 = 3;
[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 `BLOCKED_KINDS` is never used
[INFO] [stdout]   --> crates/anno-sim/src/island_map.rs:47:7
[INFO] [stdout]    |
[INFO] [stdout] 47 | const BLOCKED_KINDS: &[&str] = &[
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `timer_citizen`, `timer_island`, and `timer_projectile` are never read
[INFO] [stdout]   --> crates/anno-sim/src/simulation.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct Simulation {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 78 |     timer_citizen: SubsystemTimer,    // 15000ms
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 79 |     timer_island: SubsystemTimer,     // 29999ms
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     timer_projectile: SubsystemTimer, // 9999ms
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling anno-render v0.1.0 (/opt/rustwide/workdir/crates/anno-render)
[INFO] [stdout] warning: unused import: `ZoomLevel`
[INFO] [stdout]  --> crates/anno-render/src/iso.rs:8:29
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::camera::{Camera, ZoomLevel};
[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: `sx_dx`
[INFO] [stdout]    --> crates/anno-render/src/camera.rs:144:15
[INFO] [stdout]     |
[INFO] [stdout] 144 |         let ((sx_dx, sx_dy), (sy_dx, sy_dy)) = self.rotation.step_vectors();
[INFO] [stdout]     |               ^^^^^ help: if this is intentional, prefix it with an underscore: `_sx_dx`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sx_dy`
[INFO] [stdout]    --> crates/anno-render/src/camera.rs:144:22
[INFO] [stdout]     |
[INFO] [stdout] 144 |         let ((sx_dx, sx_dy), (sy_dx, sy_dy)) = self.rotation.step_vectors();
[INFO] [stdout]     |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_sx_dy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sy_dx`
[INFO] [stdout]    --> crates/anno-render/src/camera.rs:144:31
[INFO] [stdout]     |
[INFO] [stdout] 144 |         let ((sx_dx, sx_dy), (sy_dx, sy_dy)) = self.rotation.step_vectors();
[INFO] [stdout]     |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_sy_dx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sy_dy`
[INFO] [stdout]    --> crates/anno-render/src/camera.rs:144:38
[INFO] [stdout]     |
[INFO] [stdout] 144 |         let ((sx_dx, sx_dy), (sy_dx, sy_dy)) = self.rotation.step_vectors();
[INFO] [stdout]     |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_sy_dy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/anno-render/src/iso.rs:167:13
[INFO] [stdout]     |
[INFO] [stdout] 167 |         let mut tile_x = row_tile_x;
[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]    --> crates/anno-render/src/iso.rs:168:13
[INFO] [stdout]     |
[INFO] [stdout] 168 |         let mut tile_y = row_tile_y;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling anno-game v0.1.0 (/opt/rustwide/workdir/crates/anno-game)
[INFO] [stdout] warning: unused import: `DiplomacyMatrix`
[INFO] [stdout]   --> crates/anno-game/src/bin/sim_test.rs:10:24
[INFO] [stdout]    |
[INFO] [stdout] 10 | use anno_sim::combat::{DiplomacyMatrix, Diplomacy, MilitaryUnit, UnitType};
[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 doc comment
[INFO] [stdout]     --> crates/anno-game/src/bin/game.rs:1221:5
[INFO] [stdout]      |
[INFO] [stdout] 1221 |     /// (island_id, x, y, mode) where mode: 0=LOAD only, 1=UNLOAD only, 2=BOTH.
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 1222 |     let mut draft_route_stops: Vec<(u8, u16, u16, u8)> = Vec::new();
[INFO] [stdout]      |     ---------------------------------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]      |
[INFO] [stdout]      = help: use `//` for a plain comment
[INFO] [stdout]      = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> crates/anno-game/src/bin/game.rs:1995:29
[INFO] [stdout]      |
[INFO] [stdout] 1948 | ...                   Keycode::V => {
[INFO] [stdout]      |                       ---------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 1995 | ...                   Keycode::V if shift_held => {
[INFO] [stdout]      |                       ^^^^^^^^^^ no value can reach this
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> crates/anno-game/src/bin/game.rs:1998:29
[INFO] [stdout]      |
[INFO] [stdout] 1968 | ...                   Keycode::C => {
[INFO] [stdout]      |                       ---------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 1998 | ...                   Keycode::C if shift_held => {
[INFO] [stdout]      |                       ^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> crates/anno-game/src/bin/game.rs:2001:29
[INFO] [stdout]      |
[INFO] [stdout] 1974 | ...                   Keycode::J => {
[INFO] [stdout]      |                       ---------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 2001 | ...                   Keycode::J if shift_held => {
[INFO] [stdout]      |                       ^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> crates/anno-game/src/bin/game.rs:2004:29
[INFO] [stdout]      |
[INFO] [stdout] 1784 | ...                   Keycode::G => {
[INFO] [stdout]      |                       ---------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 2004 | ...                   Keycode::G if editor_mode => {
[INFO] [stdout]      |                       ^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/anno-game/src/bin/game.rs:1196:9
[INFO] [stdout]      |
[INFO] [stdout] 1196 |     let mut last_alarm: Option<std::time::Instant> = None;
[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: `last_alarm`
[INFO] [stdout]     --> crates/anno-game/src/bin/game.rs:1196:9
[INFO] [stdout]      |
[INFO] [stdout] 1196 |     let mut last_alarm: Option<std::time::Instant> = None;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_last_alarm`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `page_items` is never used
[INFO] [stdout]    --> crates/anno-game/src/bin/game.rs:466:8
[INFO] [stdout]     |
[INFO] [stdout] 349 | impl BuildingPlacer {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 466 |     fn page_items(&self) -> Vec<&BuildableBuilding> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 14s
[INFO] running `Command { std: "docker" "inspect" "9373c80c54c6aa95dc97b8e1f1bfd2a9ef1e809fcf13bebc478cfbbf53a79b6c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9373c80c54c6aa95dc97b8e1f1bfd2a9ef1e809fcf13bebc478cfbbf53a79b6c", kill_on_drop: false }`
[INFO] [stdout] 9373c80c54c6aa95dc97b8e1f1bfd2a9ef1e809fcf13bebc478cfbbf53a79b6c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 504a3b3ed2fec002f79dcc4a90569cab89be90fbcf527fc5ece7db268ddf9047
[INFO] running `Command { std: "docker" "start" "-a" "504a3b3ed2fec002f79dcc4a90569cab89be90fbcf527fc5ece7db268ddf9047", kill_on_drop: false }`
[INFO] [stdout] warning: fields `frag_buffer` and `frag_expected_size` are never read
[INFO] [stdout]   --> crates/anno-net/src/transport.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | struct PeerConnection {
[INFO] [stdout]    |        -------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 39 |     frag_buffer: Option<Vec<u8>>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 40 |     frag_expected_size: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling anno-net v0.1.0 (/opt/rustwide/workdir/crates/anno-net)
[INFO] [stderr]    Compiling anno-formats v0.1.0 (/opt/rustwide/workdir/crates/anno-formats)
[INFO] [stdout] warning: unused imports: `AdpcmState` and `self`
[INFO] [stdout]  --> crates/anno-audio/src/stream.rs:6:20
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::adpcm::{self, AdpcmState};
[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: `rodio::source::Source`
[INFO] [stdout]  --> crates/anno-audio/src/stream.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rodio::source::Source;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> crates/anno-audio/src/stream.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `OutputStream`
[INFO] [stdout]  --> crates/anno-audio/src/wave.rs:8:22
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rodio::{Decoder, OutputStream, OutputStreamHandle, Sink};
[INFO] [stdout]   |                      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> crates/anno-audio/src/wave.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::fs::File;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::BufReader`
[INFO] [stdout]   --> crates/anno-audio/src/wave.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::io::BufReader;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]   --> crates/anno-audio/src/wave.rs:11:17
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pan`
[INFO] [stdout]    --> crates/anno-audio/src/wave.rs:155:21
[INFO] [stdout]     |
[INFO] [stdout] 155 |                 let pan = (fx / self.screen_half_width).clamp(-1.0, 1.0);
[INFO] [stdout]     |                     ^^^ help: if this is intentional, prefix it with an underscore: `_pan`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `NUM_DEMAND_CATEGORIES`
[INFO] [stdout]   --> crates/anno-sim/src/economy.rs:13:29
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::player::{Player, NUM_DEMAND_CATEGORIES};
[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: `PopTier`
[INFO] [stdout]  --> crates/anno-sim/src/player.rs:6:20
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::types::{PopTier, NUM_POP_TIERS};
[INFO] [stdout]   |                    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DemandSlot`
[INFO] [stdout]   --> crates/anno-sim/src/population.rs:14:21
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::player::{DemandSlot, Player, NUM_DEMAND_CATEGORIES};
[INFO] [stdout]    |                     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `warehouses`
[INFO] [stdout]    --> crates/anno-sim/src/ai.rs:167:9
[INFO] [stdout]     |
[INFO] [stdout] 167 |         warehouses: &[Warehouse],
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_warehouses`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ATTACK_RANGE` is never used
[INFO] [stdout]   --> crates/anno-sim/src/combat.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const ATTACK_RANGE: u32 = 3;
[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 `BLOCKED_KINDS` is never used
[INFO] [stdout]   --> crates/anno-sim/src/island_map.rs:47:7
[INFO] [stdout]    |
[INFO] [stdout] 47 | const BLOCKED_KINDS: &[&str] = &[
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `timer_citizen`, `timer_island`, and `timer_projectile` are never read
[INFO] [stdout]   --> crates/anno-sim/src/simulation.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct Simulation {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 78 |     timer_citizen: SubsystemTimer,    // 15000ms
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 79 |     timer_island: SubsystemTimer,     // 29999ms
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     timer_projectile: SubsystemTimer, // 9999ms
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ZoomLevel`
[INFO] [stdout]  --> crates/anno-render/src/iso.rs:8:29
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::camera::{Camera, ZoomLevel};
[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: `sx_dx`
[INFO] [stdout]    --> crates/anno-render/src/camera.rs:144:15
[INFO] [stdout]     |
[INFO] [stdout] 144 |         let ((sx_dx, sx_dy), (sy_dx, sy_dy)) = self.rotation.step_vectors();
[INFO] [stdout]     |               ^^^^^ help: if this is intentional, prefix it with an underscore: `_sx_dx`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling anno-render v0.1.0 (/opt/rustwide/workdir/crates/anno-render)
[INFO] [stdout] warning: unused variable: `sx_dy`
[INFO] [stdout]    --> crates/anno-render/src/camera.rs:144:22
[INFO] [stdout]     |
[INFO] [stdout] 144 |         let ((sx_dx, sx_dy), (sy_dx, sy_dy)) = self.rotation.step_vectors();
[INFO] [stdout]     |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_sx_dy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sy_dx`
[INFO] [stdout]    --> crates/anno-render/src/camera.rs:144:31
[INFO] [stdout]     |
[INFO] [stdout] 144 |         let ((sx_dx, sx_dy), (sy_dx, sy_dy)) = self.rotation.step_vectors();
[INFO] [stdout]     |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_sy_dx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sy_dy`
[INFO] [stdout]    --> crates/anno-render/src/camera.rs:144:38
[INFO] [stdout]     |
[INFO] [stdout] 144 |         let ((sx_dx, sx_dy), (sy_dx, sy_dy)) = self.rotation.step_vectors();
[INFO] [stdout]     |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_sy_dy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/anno-render/src/iso.rs:167:13
[INFO] [stdout]     |
[INFO] [stdout] 167 |         let mut tile_x = row_tile_x;
[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]    --> crates/anno-render/src/iso.rs:168:13
[INFO] [stdout]     |
[INFO] [stdout] 168 |         let mut tile_y = row_tile_y;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling anno-audio v0.1.0 (/opt/rustwide/workdir/crates/anno-audio)
[INFO] [stderr]    Compiling anno-sim v0.1.0 (/opt/rustwide/workdir/crates/anno-sim)
[INFO] [stderr]    Compiling anno-game v0.1.0 (/opt/rustwide/workdir/crates/anno-game)
[INFO] [stdout] warning: unused import: `DiplomacyMatrix`
[INFO] [stdout]   --> crates/anno-game/src/bin/sim_test.rs:10:24
[INFO] [stdout]    |
[INFO] [stdout] 10 | use anno_sim::combat::{DiplomacyMatrix, Diplomacy, MilitaryUnit, UnitType};
[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: `AdpcmState` and `self`
[INFO] [stdout]  --> crates/anno-audio/src/stream.rs:6:20
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::adpcm::{self, AdpcmState};
[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: `rodio::source::Source`
[INFO] [stdout]  --> crates/anno-audio/src/stream.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rodio::source::Source;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> crates/anno-audio/src/stream.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `OutputStream`
[INFO] [stdout]  --> crates/anno-audio/src/wave.rs:8:22
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rodio::{Decoder, OutputStream, OutputStreamHandle, Sink};
[INFO] [stdout]   |                      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> crates/anno-audio/src/wave.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::fs::File;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::BufReader`
[INFO] [stdout]   --> crates/anno-audio/src/wave.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::io::BufReader;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]   --> crates/anno-audio/src/wave.rs:11:17
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ZoomLevel`
[INFO] [stdout]  --> crates/anno-render/src/iso.rs:8:29
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::camera::{Camera, ZoomLevel};
[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: `sx_dx`
[INFO] [stdout]    --> crates/anno-render/src/camera.rs:144:15
[INFO] [stdout]     |
[INFO] [stdout] 144 |         let ((sx_dx, sx_dy), (sy_dx, sy_dy)) = self.rotation.step_vectors();
[INFO] [stdout]     |               ^^^^^ help: if this is intentional, prefix it with an underscore: `_sx_dx`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sx_dy`
[INFO] [stdout]    --> crates/anno-render/src/camera.rs:144:22
[INFO] [stdout]     |
[INFO] [stdout] 144 |         let ((sx_dx, sx_dy), (sy_dx, sy_dy)) = self.rotation.step_vectors();
[INFO] [stdout]     |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_sx_dy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sy_dx`
[INFO] [stdout]    --> crates/anno-render/src/camera.rs:144:31
[INFO] [stdout]     |
[INFO] [stdout] 144 |         let ((sx_dx, sx_dy), (sy_dx, sy_dy)) = self.rotation.step_vectors();
[INFO] [stdout]     |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_sy_dx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sy_dy`
[INFO] [stdout]    --> crates/anno-render/src/camera.rs:144:38
[INFO] [stdout]     |
[INFO] [stdout] 144 |         let ((sx_dx, sx_dy), (sy_dx, sy_dy)) = self.rotation.step_vectors();
[INFO] [stdout]     |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_sy_dy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pan`
[INFO] [stdout]    --> crates/anno-audio/src/wave.rs:155:21
[INFO] [stdout]     |
[INFO] [stdout] 155 |                 let pan = (fx / self.screen_half_width).clamp(-1.0, 1.0);
[INFO] [stdout]     |                     ^^^ help: if this is intentional, prefix it with an underscore: `_pan`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/anno-render/src/iso.rs:167:13
[INFO] [stdout]     |
[INFO] [stdout] 167 |         let mut tile_x = row_tile_x;
[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]    --> crates/anno-render/src/iso.rs:168:13
[INFO] [stdout]     |
[INFO] [stdout] 168 |         let mut tile_y = row_tile_y;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]     --> crates/anno-game/src/bin/game.rs:1221:5
[INFO] [stdout]      |
[INFO] [stdout] 1221 |     /// (island_id, x, y, mode) where mode: 0=LOAD only, 1=UNLOAD only, 2=BOTH.
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 1222 |     let mut draft_route_stops: Vec<(u8, u16, u16, u8)> = Vec::new();
[INFO] [stdout]      |     ---------------------------------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]      |
[INFO] [stdout]      = help: use `//` for a plain comment
[INFO] [stdout]      = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `frag_buffer` and `frag_expected_size` are never read
[INFO] [stdout]   --> crates/anno-net/src/transport.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | struct PeerConnection {
[INFO] [stdout]    |        -------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 39 |     frag_buffer: Option<Vec<u8>>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 40 |     frag_expected_size: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `NUM_DEMAND_CATEGORIES`
[INFO] [stdout]   --> crates/anno-sim/src/economy.rs:13:29
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::player::{Player, NUM_DEMAND_CATEGORIES};
[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: `PopTier`
[INFO] [stdout]  --> crates/anno-sim/src/player.rs:6:20
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::types::{PopTier, NUM_POP_TIERS};
[INFO] [stdout]   |                    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DemandSlot`
[INFO] [stdout]   --> crates/anno-sim/src/population.rs:14:21
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::player::{DemandSlot, Player, NUM_DEMAND_CATEGORIES};
[INFO] [stdout]    |                     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> crates/anno-game/src/bin/game.rs:1995:29
[INFO] [stdout]      |
[INFO] [stdout] 1948 | ...                   Keycode::V => {
[INFO] [stdout]      |                       ---------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 1995 | ...                   Keycode::V if shift_held => {
[INFO] [stdout]      |                       ^^^^^^^^^^ no value can reach this
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> crates/anno-game/src/bin/game.rs:1998:29
[INFO] [stdout]      |
[INFO] [stdout] 1968 | ...                   Keycode::C => {
[INFO] [stdout]      |                       ---------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 1998 | ...                   Keycode::C if shift_held => {
[INFO] [stdout]      |                       ^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> crates/anno-game/src/bin/game.rs:2001:29
[INFO] [stdout]      |
[INFO] [stdout] 1974 | ...                   Keycode::J => {
[INFO] [stdout]      |                       ---------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 2001 | ...                   Keycode::J if shift_held => {
[INFO] [stdout]      |                       ^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> crates/anno-game/src/bin/game.rs:2004:29
[INFO] [stdout]      |
[INFO] [stdout] 1784 | ...                   Keycode::G => {
[INFO] [stdout]      |                       ---------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 2004 | ...                   Keycode::G if editor_mode => {
[INFO] [stdout]      |                       ^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `warehouses`
[INFO] [stdout]    --> crates/anno-sim/src/ai.rs:167:9
[INFO] [stdout]     |
[INFO] [stdout] 167 |         warehouses: &[Warehouse],
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_warehouses`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ATTACK_RANGE` is never used
[INFO] [stdout]   --> crates/anno-sim/src/combat.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const ATTACK_RANGE: u32 = 3;
[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 `BLOCKED_KINDS` is never used
[INFO] [stdout]   --> crates/anno-sim/src/island_map.rs:47:7
[INFO] [stdout]    |
[INFO] [stdout] 47 | const BLOCKED_KINDS: &[&str] = &[
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `timer_citizen`, `timer_island`, and `timer_projectile` are never read
[INFO] [stdout]   --> crates/anno-sim/src/simulation.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct Simulation {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 78 |     timer_citizen: SubsystemTimer,    // 15000ms
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 79 |     timer_island: SubsystemTimer,     // 29999ms
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     timer_projectile: SubsystemTimer, // 9999ms
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/anno-game/src/bin/game.rs:1196:9
[INFO] [stdout]      |
[INFO] [stdout] 1196 |     let mut last_alarm: Option<std::time::Instant> = None;
[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: `last_alarm`
[INFO] [stdout]     --> crates/anno-game/src/bin/game.rs:1196:9
[INFO] [stdout]      |
[INFO] [stdout] 1196 |     let mut last_alarm: Option<std::time::Instant> = None;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_last_alarm`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `page_items` is never used
[INFO] [stdout]    --> crates/anno-game/src/bin/game.rs:466:8
[INFO] [stdout]     |
[INFO] [stdout] 349 | impl BuildingPlacer {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 466 |     fn page_items(&self) -> Vec<&BuildableBuilding> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout]     |
[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 9.11s
[INFO] running `Command { std: "docker" "inspect" "504a3b3ed2fec002f79dcc4a90569cab89be90fbcf527fc5ece7db268ddf9047", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "504a3b3ed2fec002f79dcc4a90569cab89be90fbcf527fc5ece7db268ddf9047", kill_on_drop: false }`
[INFO] [stdout] 504a3b3ed2fec002f79dcc4a90569cab89be90fbcf527fc5ece7db268ddf9047
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] e29aaffa7cedd34b2a59db7ae039e27f06fbdced9729ffa00afa6c1f36d50020
[INFO] running `Command { std: "docker" "start" "-a" "e29aaffa7cedd34b2a59db7ae039e27f06fbdced9729ffa00afa6c1f36d50020", kill_on_drop: false }`
[INFO] [stderr] warning: fields `frag_buffer` and `frag_expected_size` are never read
[INFO] [stderr]   --> crates/anno-net/src/transport.rs:39:5
[INFO] [stderr]    |
[INFO] [stderr] 34 | struct PeerConnection {
[INFO] [stderr]    |        -------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 39 |     frag_buffer: Option<Vec<u8>>,
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 40 |     frag_expected_size: usize,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `anno-net` (lib) generated 1 warning
[INFO] [stderr] warning: `anno-net` (lib test) generated 1 warning (1 duplicate)
[INFO] [stderr] warning: unused import: `NUM_DEMAND_CATEGORIES`
[INFO] [stderr]   --> crates/anno-sim/src/economy.rs:13:29
[INFO] [stderr]    |
[INFO] [stderr] 13 | use crate::player::{Player, NUM_DEMAND_CATEGORIES};
[INFO] [stderr]    |                             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `PopTier`
[INFO] [stderr]  --> crates/anno-sim/src/player.rs:6:20
[INFO] [stderr]   |
[INFO] [stderr] 6 | use crate::types::{PopTier, NUM_POP_TIERS};
[INFO] [stderr]   |                    ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `DemandSlot`
[INFO] [stderr]   --> crates/anno-sim/src/population.rs:14:21
[INFO] [stderr]    |
[INFO] [stderr] 14 | use crate::player::{DemandSlot, Player, NUM_DEMAND_CATEGORIES};
[INFO] [stderr]    |                     ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `warehouses`
[INFO] [stderr]    --> crates/anno-sim/src/ai.rs:167:9
[INFO] [stderr]     |
[INFO] [stderr] 167 |         warehouses: &[Warehouse],
[INFO] [stderr]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_warehouses`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ATTACK_RANGE` is never used
[INFO] [stderr]   --> crates/anno-sim/src/combat.rs:16:7
[INFO] [stderr]    |
[INFO] [stderr] 16 | const ATTACK_RANGE: u32 = 3;
[INFO] [stderr]    |       ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `BLOCKED_KINDS` is never used
[INFO] [stderr]   --> crates/anno-sim/src/island_map.rs:47:7
[INFO] [stderr]    |
[INFO] [stderr] 47 | const BLOCKED_KINDS: &[&str] = &[
[INFO] [stderr]    |       ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `timer_citizen`, `timer_island`, and `timer_projectile` are never read
[INFO] [stderr]   --> crates/anno-sim/src/simulation.rs:78:5
[INFO] [stderr]    |
[INFO] [stderr] 62 | pub struct Simulation {
[INFO] [stderr]    |            ---------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 78 |     timer_citizen: SubsystemTimer,    // 15000ms
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] 79 |     timer_island: SubsystemTimer,     // 29999ms
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 84 |     timer_projectile: SubsystemTimer, // 9999ms
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `anno-sim` (lib) generated 7 warnings (run `cargo fix --lib -p anno-sim` to apply 4 suggestions)
[INFO] [stderr] warning: `anno-sim` (lib test) generated 7 warnings (7 duplicates)
[INFO] [stderr] warning: unused imports: `AdpcmState` and `self`
[INFO] [stderr]  --> crates/anno-audio/src/stream.rs:6:20
[INFO] [stderr]   |
[INFO] [stderr] 6 | use crate::adpcm::{self, AdpcmState};
[INFO] [stderr]   |                    ^^^^  ^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `rodio::source::Source`
[INFO] [stderr]  --> crates/anno-audio/src/stream.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use rodio::source::Source;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Path`
[INFO] [stderr]  --> crates/anno-audio/src/stream.rs:9:17
[INFO] [stderr]   |
[INFO] [stderr] 9 | use std::path::{Path, PathBuf};
[INFO] [stderr]   |                 ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `OutputStream`
[INFO] [stderr]  --> crates/anno-audio/src/wave.rs:8:22
[INFO] [stderr]   |
[INFO] [stderr] 8 | use rodio::{Decoder, OutputStream, OutputStreamHandle, Sink};
[INFO] [stderr]   |                      ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::fs::File`
[INFO] [stderr]  --> crates/anno-audio/src/wave.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use std::fs::File;
[INFO] [stderr]   |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::io::BufReader`
[INFO] [stderr]   --> crates/anno-audio/src/wave.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use std::io::BufReader;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Path`
[INFO] [stderr]   --> crates/anno-audio/src/wave.rs:11:17
[INFO] [stderr]    |
[INFO] [stderr] 11 | use std::path::{Path, PathBuf};
[INFO] [stderr]    |                 ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pan`
[INFO] [stderr]    --> crates/anno-audio/src/wave.rs:155:21
[INFO] [stderr]     |
[INFO] [stderr] 155 |                 let pan = (fx / self.screen_half_width).clamp(-1.0, 1.0);
[INFO] [stderr]     |                     ^^^ help: if this is intentional, prefix it with an underscore: `_pan`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ZoomLevel`
[INFO] [stderr]  --> crates/anno-render/src/iso.rs:8:29
[INFO] [stderr]   |
[INFO] [stderr] 8 | use crate::camera::{Camera, ZoomLevel};
[INFO] [stderr]   |                             ^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `sx_dx`
[INFO] [stderr]    --> crates/anno-render/src/camera.rs:144:15
[INFO] [stderr]     |
[INFO] [stderr] 144 |         let ((sx_dx, sx_dy), (sy_dx, sy_dy)) = self.rotation.step_vectors();
[INFO] [stderr]     |               ^^^^^ help: if this is intentional, prefix it with an underscore: `_sx_dx`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `sx_dy`
[INFO] [stderr]    --> crates/anno-render/src/camera.rs:144:22
[INFO] [stderr]     |
[INFO] [stderr] 144 |         let ((sx_dx, sx_dy), (sy_dx, sy_dy)) = self.rotation.step_vectors();
[INFO] [stderr]     |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_sx_dy`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `sy_dx`
[INFO] [stderr]    --> crates/anno-render/src/camera.rs:144:31
[INFO] [stderr]     |
[INFO] [stderr] 144 |         let ((sx_dx, sx_dy), (sy_dx, sy_dy)) = self.rotation.step_vectors();
[INFO] [stderr]     |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_sy_dx`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `sy_dy`
[INFO] [stderr]    --> crates/anno-render/src/camera.rs:144:38
[INFO] [stderr]     |
[INFO] [stderr] 144 |         let ((sx_dx, sx_dy), (sy_dx, sy_dy)) = self.rotation.step_vectors();
[INFO] [stderr]     |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_sy_dy`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> crates/anno-render/src/iso.rs:167:13
[INFO] [stderr]     |
[INFO] [stderr] 167 |         let mut tile_x = row_tile_x;
[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]    --> crates/anno-render/src/iso.rs:168:13
[INFO] [stderr]     |
[INFO] [stderr] 168 |         let mut tile_y = row_tile_y;
[INFO] [stderr]     |             ----^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: `anno-audio` (lib) generated 8 warnings (run `cargo fix --lib -p anno-audio` to apply 8 suggestions)
[INFO] [stderr] warning: `anno-render` (lib) generated 7 warnings (run `cargo fix --lib -p anno-render` to apply 7 suggestions)
[INFO] [stderr] warning: `anno-audio` (lib test) generated 8 warnings (8 duplicates)
[INFO] [stderr] warning: `anno-render` (lib test) generated 7 warnings (7 duplicates)
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]     --> crates/anno-game/src/bin/game.rs:1221:5
[INFO] [stderr]      |
[INFO] [stderr] 1221 |     /// (island_id, x, y, mode) where mode: 0=LOAD only, 1=UNLOAD only, 2=BOTH.
[INFO] [stderr]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 1222 |     let mut draft_route_stops: Vec<(u8, u16, u16, u8)> = Vec::new();
[INFO] [stderr]      |     ---------------------------------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stderr]      |
[INFO] [stderr]      = help: use `//` for a plain comment
[INFO] [stderr]      = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]     --> crates/anno-game/src/bin/game.rs:1995:29
[INFO] [stderr]      |
[INFO] [stderr] 1948 | ...                   Keycode::V => {
[INFO] [stderr]      |                       ---------- matches all the relevant values
[INFO] [stderr] ...
[INFO] [stderr] 1995 | ...                   Keycode::V if shift_held => {
[INFO] [stderr]      |                       ^^^^^^^^^^ no value can reach this
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]     --> crates/anno-game/src/bin/game.rs:1998:29
[INFO] [stderr]      |
[INFO] [stderr] 1968 | ...                   Keycode::C => {
[INFO] [stderr]      |                       ---------- matches all the relevant values
[INFO] [stderr] ...
[INFO] [stderr] 1998 | ...                   Keycode::C if shift_held => {
[INFO] [stderr]      |                       ^^^^^^^^^^ no value can reach this
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]     --> crates/anno-game/src/bin/game.rs:2001:29
[INFO] [stderr]      |
[INFO] [stderr] 1974 | ...                   Keycode::J => {
[INFO] [stderr]      |                       ---------- matches all the relevant values
[INFO] [stderr] ...
[INFO] [stderr] 2001 | ...                   Keycode::J if shift_held => {
[INFO] [stderr]      |                       ^^^^^^^^^^ no value can reach this
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]     --> crates/anno-game/src/bin/game.rs:2004:29
[INFO] [stderr]      |
[INFO] [stderr] 1784 | ...                   Keycode::G => {
[INFO] [stderr]      |                       ---------- matches all the relevant values
[INFO] [stderr] ...
[INFO] [stderr] 2004 | ...                   Keycode::G if editor_mode => {
[INFO] [stderr]      |                       ^^^^^^^^^^ no value can reach this
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> crates/anno-game/src/bin/game.rs:1196:9
[INFO] [stderr]      |
[INFO] [stderr] 1196 |     let mut last_alarm: Option<std::time::Instant> = None;
[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: unused variable: `last_alarm`
[INFO] [stderr]     --> crates/anno-game/src/bin/game.rs:1196:9
[INFO] [stderr]      |
[INFO] [stderr] 1196 |     let mut last_alarm: Option<std::time::Instant> = None;
[INFO] [stderr]      |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_last_alarm`
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `page_items` is never used
[INFO] [stderr]    --> crates/anno-game/src/bin/game.rs:466:8
[INFO] [stderr]     |
[INFO] [stderr] 349 | impl BuildingPlacer {
[INFO] [stderr]     | ------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 466 |     fn page_items(&self) -> Vec<&BuildableBuilding> {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `DiplomacyMatrix`
[INFO] [stderr]   --> crates/anno-game/src/bin/sim_test.rs:10:24
[INFO] [stderr]    |
[INFO] [stderr] 10 | use anno_sim::combat::{DiplomacyMatrix, Diplomacy, MilitaryUnit, UnitType};
[INFO] [stderr]    |                        ^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `anno-game` (bin "game" test) generated 8 warnings (run `cargo fix --bin "game" -p anno-game --tests` to apply 2 suggestions)
[INFO] [stderr] warning: `anno-game` (bin "sim-test" test) generated 1 warning (run `cargo fix --bin "sim-test" -p anno-game --tests` to apply 1 suggestion)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.17s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/anno_audio-ab5646436ec08ae9)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test adpcm::tests::encode_decode_consistency ... ok
[INFO] [stdout] test adpcm::tests::roundtrip_stereo ... 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 unittests src/lib.rs (/opt/rustwide/target/debug/deps/anno_formats-05966c9cffcdbc85)
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test cod::tests::parse_haeuser_cod ... ok
[INFO] [stdout] test bsh::tests::parse_stadtfld_bsh ... ok
[INFO] [stdout] test col::tests::parse_stadtfld_col ... ok
[INFO] [stdout] test figuren::tests::parses_minimal_figure ... ok
[INFO] [stdout] test figuren::tests::resolves_constants_in_gfx ... ok
[INFO] [stdout] test figuren::tests::typed_accessors_pull_numeric_props ... ok
[INFO] [stdout] test szs::tests::player4_extracts_starting_gold ... ok
[INFO] [stdout] test figuren::tests::parses_real_figuren_cod ... ok
[INFO] [stdout] test szs::tests::round_trip_encoded_islands ... ok
[INFO] [stdout] test szs::tests::parse_scenario ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/anno_game-e0cfaee7f3320345)
[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 unittests src/bin/game.rs (/opt/rustwide/target/debug/deps/game-c06a0a7fa5602590)
[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 unittests src/bin/island_viewer.rs (/opt/rustwide/target/debug/deps/island_viewer-7912bd023ad9cc1a)
[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 unittests src/bin/sim_test.rs (/opt/rustwide/target/debug/deps/sim_test-b6cef55dee530c1d)
[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 unittests src/bin/sprite_viewer.rs (/opt/rustwide/target/debug/deps/sprite_viewer-b954ffa56dd2859b)
[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 unittests src/lib.rs (/opt/rustwide/target/debug/deps/anno_net-46995c35dfae6299)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test protocol::tests::disconnect_message ... ok
[INFO] [stdout] test session::tests::pause_bitmask ... ok
[INFO] [stdout] test session::tests::session_max_players ... ok
[INFO] [stdout] test protocol::tests::message_roundtrip ... ok
[INFO] [stdout] test protocol::tests::message_id_from_u32 ... ok
[INFO] [stdout] test protocol::tests::pause_resume_messages ... ok
[INFO] [stdout] test protocol::tests::player_sync_roundtrip ... ok
[INFO] [stdout] test session::tests::session_add_remove_players ... ok
[INFO] [stdout] test transport::tests::host_broadcast_reaches_client ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/anno_render-bb49b46f74cfd536)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/anno_sim-2823605fe8f947a5)
[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] [stdout] 
[INFO] [stdout] running 169 tests
[INFO] [stdout] test ai::tests::ai_lowers_taxes_when_satisfaction_low ... ok
[INFO] [stdout] test ai::tests::military_scales_with_difficulty ... ok
[INFO] [stdout] test ai::tests::poor_ai_does_not_halve_cooldowns ... ok
[INFO] [stdout] test ai::tests::rich_ai_halves_cooldowns_each_tick ... ok
[INFO] [stdout] test campaign::tests::advance_walks_through_campaign ... ok
[INFO] [stdout] test campaign::tests::campaign_has_21_missions ... ok
[INFO] [stdout] test campaign::tests::defeat_restarts_arc ... ok
[INFO] [stdout] test carrier::tests::carrier_dispatched_when_covered ... ok
[INFO] [stdout] test carrier::tests::carrier_skipped_when_outside_coverage ... ok
[INFO] [stdout] test carrier::tests::no_coverage_map_means_no_gating ... ok
[INFO] [stdout] test civilian::tests::no_spawn_outside_residence ... ok
[INFO] [stdout] test ai::tests::economic_ai_requests_food_first ... ok
[INFO] [stdout] test civilian::tests::spawn_gate_filters_most_ticks ... ok
[INFO] [stdout] test civilian::tests::variant_distribution_uses_low_three_bits ... ok
[INFO] [stdout] test civilian::tests::variant_table_indices_match_figuren_cod ... ok
[INFO] [stdout] test climate::tests::split_at_half ... ok
[INFO] [stdout] test combat::tests::battle_outcome_prediction ... ok
[INFO] [stdout] test combat::tests::diplomacy_matrix ... ok
[INFO] [stdout] test combat::tests::naval_cant_attack_land ... ok
[INFO] [stdout] test combat::tests::no_combat_between_allies ... ok
[INFO] [stdout] test combat::tests::tick_unit_orders_skipped_during_combat ... ok
[INFO] [stdout] test combat::tests::unit_stats_consistency ... ok
[INFO] [stdout] test combat::tests::ranged_unit_attacks_from_distance ... ok
[INFO] [stdout] test civilian::tests::no_spawn_under_construction ... ok
[INFO] [stdout] test combat::tests::tick_unit_orders_moves_toward_target ... ok
[INFO] [stdout] test combat::tests::tower_defense_damages_hostile_in_range ... ok
[INFO] [stdout] test commands::tests::rejects_untagged_payload ... ok
[INFO] [stdout] test climate::tests::north_grows_wool ... ok
[INFO] [stdout] test data_bridge::parse_good_covers_all_haeuser_cod_tokens ... ok
[INFO] [stdout] test civilian::tests::spawn_succeeds_for_finished_residence ... ok
[INFO] [stdout] test climate::tests::south_grows_tobacco ... ok
[INFO] [stdout] test disaster::tests::erupt_only_damages_within_radius ... ok
[INFO] [stdout] test data_bridge::tests::load_defs_from_cod ... ok
[INFO] [stdout] test data_bridge::tests::load_scenario_buildings ... ok
[INFO] [stdout] test commands::tests::round_trip_tax_command ... ok
[INFO] [stdout] test formation::tests::quad_clamps_past_capacity ... ok
[INFO] [stdout] test commands::tests::round_trip_buy_sell ... ok
[INFO] [stdout] test coverage::tests::uncovered_houses_reduce_ratio ... ok
[INFO] [stdout] test coverage::tests::marketplace_extends_coverage ... ok
[INFO] [stdout] test disaster::tests::ignite_drops_health_and_emits_event ... ok
[INFO] [stdout] test exploration::tests::explored_bits_only_flip_true ... ok
[INFO] [stdout] test climate::tests::climate_agnostic_goods_pass_anywhere ... ok
[INFO] [stdout] test free_trader::tests::dock_trade_sells_to_warehouse_when_buy_slider_set ... ok
[INFO] [stdout] test free_trader::tests::dock_trade_skipped_when_no_buy_slider ... ok
[INFO] [stdout] test free_trader::tests::dock_trade_rejects_overpriced_sell_offer ... ok
[INFO] [stdout] test free_trader::tests::dock_trade_skipped_when_player_broke ... ok
[INFO] [stdout] test exploration::tests::mark_radius_reveals_square ... ok
[INFO] [stdout] test hiscore::tests::table_truncates_to_max ... ok
[INFO] [stdout] test hiscore::tests::score_combines_inputs ... ok
[INFO] [stdout] test exploration::tests::mark_radius_clamps_at_edges ... ok
[INFO] [stdout] test formation::tests::vert_anchor_then_steps_north ... ok
[INFO] [stdout] test free_trader::tests::dock_trade_buys_warehouse_surplus_when_sell_slider_set ... ok
[INFO] [stdout] test formation::tests::hori_has_21_offsets_and_anchor_first ... ok
[INFO] [stdout] test free_trader::tests::dock_trade_rejects_underpaid_buy_offer ... ok
[INFO] [stdout] test coverage::tests::warehouse_provides_base_coverage ... ok
[INFO] [stdout] test free_trader::tests::leaving_trader_despawns_on_arrival ... ok
[INFO] [stdout] test hiscore::tests::low_score_doesnt_displace_high ... ok
[INFO] [stdout] test combat::tests::combat_kills_weaker_unit ... ok
[INFO] [stdout] test history::tests::records_in_order_until_full ... ok
[INFO] [stdout] test history::tests::record_full_sums_across_warehouses ... ok
[INFO] [stdout] test history::tests::record_full_captures_warehouse_stocks ... ok
[INFO] [stdout] test island_map::tests::can_fit_respects_bounds_and_blocks ... ok
[INFO] [stdout] test island_map::tests::coastal_tiles_are_on_the_perimeter ... ok
[INFO] [stdout] test history::tests::ring_buffer_drops_oldest ... ok
[INFO] [stdout] test island_map::tests::reachable_blocked_by_wall ... ok
[INFO] [stdout] test island_map::tests::find_open_spot_spirals_around_blocked_center ... ok
[INFO] [stdout] test island_map::tests::open_map_all_walkable ... ok
[INFO] [stdout] test island_map::tests::set_walkable ... ok
[INFO] [stdout] test island_map::tests::reachable_via_walkable_path ... ok
[INFO] [stdout] test native::tests::deliver_rejects_unwanted_good ... ok
[INFO] [stdout] test native::tests::deliver_accumulates_credit_for_wanted_good ... ok
[INFO] [stdout] test native::tests::withdraw_blocked_by_credit ... ok
[INFO] [stdout] test native::tests::withdraw_spends_credit_only_for_offered ... ok
[INFO] [stdout] test objectives::tests::gold_objective_does_not_revert ... ok
[INFO] [stdout] test island_map::tests::find_reachable_spot_avoids_isolated_island ... ok
[INFO] [stdout] test objectives::tests::population_objective_completes ... ok
[INFO] [stdout] test objectives::tests::monopoly_completes_when_only_owner_produces ... ok
[INFO] [stdout] test objectives::tests::support_fellow_player_completes_when_target_pop_reached ... ok
[INFO] [stdout] test ocean_map::tests::ocean_direct_path ... ok
[INFO] [stdout] test ocean_map::tests::ocean_path_around_island ... ok
[INFO] [stdout] test population::tests::empty_tier_stays_empty ... ok
[INFO] [stdout] test population::tests::fully_satisfied_population_grows_and_promotes ... ok
[INFO] [stdout] test population::tests::growth_delta_starving_shrinks ... ok
[INFO] [stdout] test pathfinding::tests::straight_line_path ... ok
[INFO] [stdout] test population::tests::growth_delta_full_satisfaction_grows ... ok
[INFO] [stdout] test population::tests::housing_cap_clamps_total ... ok
[INFO] [stdout] test population::tests::growth_delta_par_satisfaction_is_zero ... ok
[INFO] [stdout] test population::tests::severe_shortages_lists_only_starved_goods ... ok
[INFO] [stdout] test population::tests::starving_tier_emigrates ... ok
[INFO] [stdout] test prices::tests::jewelry_more_expensive_than_wood ... ok
[INFO] [stdout] test prices::tests::sell_under_buy_for_profit_margin ... ok
[INFO] [stdout] test prices::tests::none_uses_default ... ok
[INFO] [stdout] test production::tests::construction_progress_scales_to_128 ... ok
[INFO] [stdout] test production::tests::finished_building_produces ... ok
[INFO] [stdout] test production::tests::plantation_does_not_dry_when_flag_off ... ok
[INFO] [stdout] test production::tests::plantation_drought_deactivates_after_prolonged_idle ... ok
[INFO] [stdout] test production::tests::unfinished_building_does_not_produce ... ok
[INFO] [stdout] test production::tests::mine_stops_producing_when_deposit_exhausted ... ok
[INFO] [stdout] test pathfinding::tests::diagonal_path ... ok
[INFO] [stdout] test replay::tests::record_and_replay_changes_taxes ... ok
[INFO] [stdout] test pathfinding::tests::no_path_exists ... ok
[INFO] [stdout] test ocean_map::tests::ocean_already_navigable ... ok
[INFO] [stdout] test settings::tests::adjust_clamps_to_range ... ok
[INFO] [stdout] test ocean_map::tests::nearest_navigable_from_land ... ok
[INFO] [stdout] test pathfinding::tests::path_around_obstacle ... ok
[INFO] [stdout] test simulation::tests::ai_defends_warehouse_when_threatened ... ok
[INFO] [stdout] test simulation::tests::ai_declares_war_on_weak_neighbor ... ok
[INFO] [stdout] test pathfinding::tests::pathfinder_prefers_road_when_available ... ok
[INFO] [stdout] test pathfinding::tests::same_start_and_goal ... ok
[INFO] [stdout] test save::tests::round_trip_with_buildings_and_warehouses ... ok
[INFO] [stdout] test simulation::tests::ai_request_military_spawns_units ... ok
[INFO] [stdout] test simulation::tests::ai_request_build_places_building ... ok
[INFO] [stdout] test simulation::tests::ai_skips_trade_route_with_one_island ... ok
[INFO] [stdout] test simulation::tests::ai_request_build_prefers_variety ... ok
[INFO] [stdout] test replay::tests::rejects_bad_magic ... ok
[INFO] [stdout] test settings::tests::round_trip_defaults ... ok
[INFO] [stdout] test simulation::tests::ai_spawns_escort_warship_for_trade_ship_when_at_war ... ok
[INFO] [stdout] test save::tests::rejects_bad_magic ... ok
[INFO] [stdout] test simulation::tests::ai_sues_for_peace_when_outmatched ... ok
[INFO] [stdout] test settings::tests::unknown_keys_ignored ... ok
[INFO] [stdout] test simulation::tests::arm_ship_consumes_cannons_and_clamps_to_cap ... ok
[INFO] [stdout] test simulation::tests::arm_ship_rejects_land_unit ... ok
[INFO] [stdout] test simulation::tests::buildings_safe_from_neutral_units ... ok
[INFO] [stdout] test simulation::tests::buildings_destroyed_by_adjacent_enemy_units ... ok
[INFO] [stdout] test simulation::tests::cart_rejects_cross_owner ... ok
[INFO] [stdout] test simulation::tests::construction_stalls_without_materials ... ok
[INFO] [stdout] test simulation::tests::declaring_war_clears_trade_agreement ... ok
[INFO] [stdout] test simulation::tests::building_maintenance_aggregates_per_player ... ok
[INFO] [stdout] test simulation::tests::economic_ai_does_not_declare_war ... ok
[INFO] [stdout] test simulation::tests::cart_transfers_clamped_to_six ... ok
[INFO] [stdout] test simulation::tests::construction_trickles_materials_from_warehouse ... ok
[INFO] [stdout] test simulation::tests::defeat_when_human_runs_out_of_kontors_and_population ... ok
[INFO] [stdout] test simulation::tests::escort_clears_when_ship_inactive ... ok
[INFO] [stdout] test save::tests::round_trip_minimal_simulation ... ok
[INFO] [stdout] test replay::tests::file_round_trip ... ok
[INFO] [stdout] test save::tests::file_round_trip ... ok
[INFO] [stdout] test simulation::tests::escort_targets_track_their_ship ... ok
[INFO] [stdout] test simulation::tests::exploration_reveals_around_player_warehouse ... ok
[INFO] [stdout] test simulation::tests::ai_establishes_trade_route_when_eligible ... ok
[INFO] [stdout] test simulation::tests::ai_marches_units_at_enemy_warehouse_when_winning ... ok
[INFO] [stdout] test simulation::tests::gift_gold_transfers_and_clamps_to_balance ... ok
[INFO] [stdout] test simulation::tests::gift_self_or_zero_rejected ... ok
[INFO] [stdout] test simulation::tests::gift_goods_moves_between_warehouses ... ok
[INFO] [stdout] test simulation::tests::outcome_pending_while_rivals_alive ... ok
[INFO] [stdout] test simulation::tests::patrol_cycles_waypoints ... ok
[INFO] [stdout] test simulation::tests::native_barter_round_trip ... ok
[INFO] [stdout] test simulation::tests::native_deliver_rejects_unwanted_good ... ok
[INFO] [stdout] test simulation::tests::pirates_eventually_spawn_to_attack_player_trade_ships ... ok
[INFO] [stdout] test simulation::tests::pirate_spawns_from_hideout_when_present ... ok
[INFO] [stdout] test simulation::tests::pirates_skip_spawn_when_no_player_trade_ships ... ok
[INFO] [stdout] test simulation::tests::residence_promotes_when_tier_fully_satisfied ... ok
[INFO] [stdout] test simulation::tests::sell_ship_refunds_half_cost_and_deactivates ... ok
[INFO] [stdout] test simulation::tests::ai_does_not_defend_against_neutral ... ok
[INFO] [stdout] test simulation::tests::sell_ship_rejects_land_unit ... ok
[INFO] [stdout] test simulation::tests::ship_cargo_load_unload_round_trip ... ok
[INFO] [stdout] test simulation::tests::ship_load_rejects_distant_ship ... ok
[INFO] [stdout] test simulation::tests::trade_agreement_lifecycle ... ok
[INFO] [stdout] test simulation::tests::unfinished_buildings_do_not_pay_maintenance ... ok
[INFO] [stdout] test simulation::tests::victory_when_all_rivals_defeated ... ok
[INFO] [stdout] test simulation::tests::warehouse_pay_materials_consumes_when_sufficient ... ok
[INFO] [stdout] test simulation::tests::warehouse_pay_materials_refuses_when_short ... ok
[INFO] [stdout] test trade::tests::compass_heading_8way ... ok
[INFO] [stdout] test trade::tests::ship_cargo_load_unload ... ok
[INFO] [stdout] test trade::tests::trade_route_execution ... ok
[INFO] [stdout] test trade::tests::trade_route_needs_two_stops ... ok
[INFO] [stdout] test trade::tests::trade_uses_per_good_prices ... ok
[INFO] [stdout] test trade::tests::free_trader_finds_surplus ... ok
[INFO] [stdout] test free_trader::tests::sailing_reaches_target_and_docks ... ok
[INFO] [stderr]    Doc-tests anno_audio
[INFO] [stdout] test history::tests::weighted_satisfaction ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 169 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s
[INFO] [stdout] 
[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]    Doc-tests anno_formats
[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]    Doc-tests anno_game
[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]    Doc-tests anno_net
[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]    Doc-tests anno_render
[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]    Doc-tests anno_sim
[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" "e29aaffa7cedd34b2a59db7ae039e27f06fbdced9729ffa00afa6c1f36d50020", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e29aaffa7cedd34b2a59db7ae039e27f06fbdced9729ffa00afa6c1f36d50020", kill_on_drop: false }`
[INFO] [stdout] e29aaffa7cedd34b2a59db7ae039e27f06fbdced9729ffa00afa6c1f36d50020
