[INFO] fetching crate saints-mile 1.0.2... [INFO] testing saints-mile-1.0.2 against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210-2 [INFO] extracting crate saints-mile 1.0.2 into /workspace/builds/worker-0-tc2/source [INFO] started tweaking crates.io crate saints-mile 1.0.2 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate saints-mile 1.0.2 [INFO] tweaked toml for crates.io crate saints-mile 1.0.2 written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate saints-mile 1.0.2 on toolchain dec9417b8611e34e787a3e4c37686b5131f9e5c5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate saints-mile 1.0.2 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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 4f8f0283f14c3b58065396d111489a2bbbaedf22e7ab202d992776053483a703 [INFO] running `Command { std: "docker" "start" "-a" "4f8f0283f14c3b58065396d111489a2bbbaedf22e7ab202d992776053483a703", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "4f8f0283f14c3b58065396d111489a2bbbaedf22e7ab202d992776053483a703", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4f8f0283f14c3b58065396d111489a2bbbaedf22e7ab202d992776053483a703", kill_on_drop: false }` [INFO] [stdout] 4f8f0283f14c3b58065396d111489a2bbbaedf22e7ab202d992776053483a703 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8d63d41bde08961861d794c9d3f25af1b236ea551fcf4e23585c656b1e63da75 [INFO] running `Command { std: "docker" "start" "-a" "8d63d41bde08961861d794c9d3f25af1b236ea551fcf4e23585c656b1e63da75", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.184 [INFO] [stderr] Compiling unicode-segmentation v1.13.2 [INFO] [stderr] Compiling foldhash v0.2.0 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling instability v0.3.12 [INFO] [stderr] Compiling unicode-width v0.2.2 [INFO] [stderr] Compiling indoc v2.0.7 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling castaway v0.2.4 [INFO] [stderr] Compiling num_threads v0.1.7 [INFO] [stderr] Compiling time-core v0.1.8 [INFO] [stderr] Compiling deranged v0.5.8 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling compact_str v0.9.0 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling num-conv v0.2.1 [INFO] [stderr] Compiling itertools v0.14.0 [INFO] [stderr] Compiling line-clipping v0.3.7 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling convert_case v0.10.0 [INFO] [stderr] Compiling linux-raw-sys v0.4.15 [INFO] [stderr] Compiling futures-core v0.3.32 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling lru v0.16.3 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling mio v1.2.0 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling time v0.3.47 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling unicode-truncate v2.0.1 [INFO] [stderr] Compiling crossterm v0.28.1 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling strum_macros v0.27.2 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling derive_more v2.1.1 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling kasuari v0.4.12 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling tracing-subscriber v0.3.23 [INFO] [stderr] Compiling strum v0.27.2 [INFO] [stderr] Compiling ratatui-core v0.1.0 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Compiling ron v0.8.1 [INFO] [stderr] Compiling ratatui-widgets v0.3.0 [INFO] [stderr] Compiling ratatui-crossterm v0.1.0 [INFO] [stderr] Compiling ratatui-macros v0.7.0 [INFO] [stderr] Compiling ratatui v0.30.0 [INFO] [stderr] Compiling saints-mile v1.0.2 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `crate::types::*` [INFO] [stdout] --> src/combat/crowd.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::types::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::types::*` [INFO] [stdout] --> src/combat/reckoning.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::types::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::types::*` [INFO] [stdout] --> src/state/evidence.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::types::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::state::argument` [INFO] [stdout] --> src/content/ropehouse_blood.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::state::argument; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::combat::types::*` [INFO] [stdout] --> src/content/long_wire.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::combat::types::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::combat::split_party` [INFO] [stdout] --> src/content/long_wire.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::combat::split_party; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::combat::types::*` [INFO] [stdout] --> src/content/saints_mile_again.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::combat::types::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::state::store::StateStore` [INFO] [stdout] --> src/dev/quickstart.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::state::store::StateStore; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::state::types::GameState` [INFO] [stdout] --> src/dev/fixtures.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::state::types::GameState; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `EncounterPhase` [INFO] [stdout] --> src/ui/screens/standoff.rs:9:45 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::combat::engine::{EncounterState, EncounterPhase, LiveCombatant}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Cell`, `Gauge`, `Row`, and `Table` [INFO] [stdout] --> src/ui/screens/combat.rs:9:40 [INFO] [stdout] | [INFO] [stdout] 9 | use ratatui::widgets::{Block, Borders, Gauge, List, ListItem, Paragraph, Table, Row, Cell}; [INFO] [stdout] | ^^^^^ ^^^^^ ^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Gauge` [INFO] [stdout] --> src/ui/screens/escort.rs:8:40 [INFO] [stdout] | [INFO] [stdout] 8 | use ratatui::widgets::{Block, Borders, Gauge, List, ListItem, Paragraph}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Gauge` [INFO] [stdout] --> src/ui/screens/crowd.rs:8:40 [INFO] [stdout] | [INFO] [stdout] 8 | use ratatui::widgets::{Block, Borders, Gauge, List, ListItem, Paragraph}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Cell`, `ListItem`, `List`, `Row`, and `Table` [INFO] [stdout] --> src/ui/screens/transmission.rs:8:40 [INFO] [stdout] | [INFO] [stdout] 8 | use ratatui::widgets::{Block, Borders, List, ListItem, Paragraph, Table, Row, Cell}; [INFO] [stdout] | ^^^^ ^^^^^^^^ ^^^^^ ^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ActionResult` and `EncounterPhase` [INFO] [stdout] --> src/ui/mod.rs:17:45 [INFO] [stdout] | [INFO] [stdout] 17 | use crate::combat::engine::{EncounterState, EncounterPhase, CombatSide, ActionResult}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SkillLine` [INFO] [stdout] --> src/ui/mod.rs:18:56 [INFO] [stdout] | [INFO] [stdout] 18 | use crate::combat::types::{Encounter, StandoffPosture, SkillLine}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `threshold` [INFO] [stdout] --> src/scene/runner.rs:237:55 [INFO] [stdout] | [INFO] [stdout] 237 | Condition::Reputation { axis, op, threshold } => { [INFO] [stdout] | ^^^^^^^^^ help: try ignoring the field: `threshold: _` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `any_killed` [INFO] [stdout] --> src/combat/engine.rs:1164:17 [INFO] [stdout] | [INFO] [stdout] 1164 | let any_killed = self.enemies.iter().any(|e| e.down); // hp = 0 [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_any_killed` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `app` [INFO] [stdout] --> src/ui/input.rs:119:24 [INFO] [stdout] | [INFO] [stdout] 119 | fn handle_standoff_key(app: &mut App, key: KeyEvent) -> InputResult { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_app` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hp_text` [INFO] [stdout] --> src/ui/screens/combat.rs:267:9 [INFO] [stdout] | [INFO] [stdout] 267 | let hp_text = format!(" HP {}/{} ", c.hp, c.max_hp); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hp_text` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ui` [INFO] [stdout] --> src/ui/screens/transmission.rs:102:5 [INFO] [stdout] | [INFO] [stdout] 102 | ui: &TransmissionUi, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ui` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `entry` [INFO] [stdout] --> src/ui/mod.rs:780:47 [INFO] [stdout] | [INFO] [stdout] 780 | fn build_enemy_action(state: &EncounterState, entry: &crate::combat::engine::TurnEntry) -> crate::combat::engine::CombatAction { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_entry` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `actor_id` [INFO] [stdout] --> src/ui/mod.rs:795:50 [INFO] [stdout] | [INFO] [stdout] 795 | fn is_duo_partner_active(state: &EncounterState, actor_id: &str, duo_id: &str) -> bool { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_actor_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 41.01s [INFO] running `Command { std: "docker" "inspect" "8d63d41bde08961861d794c9d3f25af1b236ea551fcf4e23585c656b1e63da75", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8d63d41bde08961861d794c9d3f25af1b236ea551fcf4e23585c656b1e63da75", kill_on_drop: false }` [INFO] [stdout] 8d63d41bde08961861d794c9d3f25af1b236ea551fcf4e23585c656b1e63da75 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] a3d796ada379321bd53773ed5075a277ad9136c875fd21e2c9604fe97eeecf6c [INFO] running `Command { std: "docker" "start" "-a" "a3d796ada379321bd53773ed5075a277ad9136c875fd21e2c9604fe97eeecf6c", kill_on_drop: false }` [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling fastrand v2.4.0 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling ratatui-crossterm v0.1.0 [INFO] [stderr] Compiling ratatui v0.30.0 [INFO] [stderr] Compiling saints-mile v1.0.2 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `crate::types::*` [INFO] [stdout] --> src/combat/crowd.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::types::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::types::*` [INFO] [stdout] --> src/combat/reckoning.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::types::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::types::*` [INFO] [stdout] --> src/state/evidence.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::types::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::state::argument` [INFO] [stdout] --> src/content/ropehouse_blood.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::state::argument; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::combat::types::*` [INFO] [stdout] --> src/content/long_wire.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::combat::types::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::combat::split_party` [INFO] [stdout] --> src/content/long_wire.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::combat::split_party; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::combat::types::*` [INFO] [stdout] --> src/content/saints_mile_again.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::combat::types::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::state::store::StateStore` [INFO] [stdout] --> src/dev/quickstart.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::state::store::StateStore; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::state::types::GameState` [INFO] [stdout] --> src/dev/fixtures.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::state::types::GameState; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `EncounterPhase` [INFO] [stdout] --> src/ui/screens/standoff.rs:9:45 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::combat::engine::{EncounterState, EncounterPhase, LiveCombatant}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Cell`, `Gauge`, `Row`, and `Table` [INFO] [stdout] --> src/ui/screens/combat.rs:9:40 [INFO] [stdout] | [INFO] [stdout] 9 | use ratatui::widgets::{Block, Borders, Gauge, List, ListItem, Paragraph, Table, Row, Cell}; [INFO] [stdout] | ^^^^^ ^^^^^ ^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Gauge` [INFO] [stdout] --> src/ui/screens/escort.rs:8:40 [INFO] [stdout] | [INFO] [stdout] 8 | use ratatui::widgets::{Block, Borders, Gauge, List, ListItem, Paragraph}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Gauge` [INFO] [stdout] --> src/ui/screens/crowd.rs:8:40 [INFO] [stdout] | [INFO] [stdout] 8 | use ratatui::widgets::{Block, Borders, Gauge, List, ListItem, Paragraph}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Cell`, `ListItem`, `List`, `Row`, and `Table` [INFO] [stdout] --> src/ui/screens/transmission.rs:8:40 [INFO] [stdout] | [INFO] [stdout] 8 | use ratatui::widgets::{Block, Borders, List, ListItem, Paragraph, Table, Row, Cell}; [INFO] [stdout] | ^^^^ ^^^^^^^^ ^^^^^ ^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ActionResult` and `EncounterPhase` [INFO] [stdout] --> src/ui/mod.rs:17:45 [INFO] [stdout] | [INFO] [stdout] 17 | use crate::combat::engine::{EncounterState, EncounterPhase, CombatSide, ActionResult}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SkillLine` [INFO] [stdout] --> src/ui/mod.rs:18:56 [INFO] [stdout] | [INFO] [stdout] 18 | use crate::combat::types::{Encounter, StandoffPosture, SkillLine}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::types::*` [INFO] [stdout] --> src/scene/runner.rs:307:9 [INFO] [stdout] | [INFO] [stdout] 307 | use crate::types::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::types::*` [INFO] [stdout] --> src/combat/crowd.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::types::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::types::*` [INFO] [stdout] --> src/combat/reckoning.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::types::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::types::*` [INFO] [stdout] --> src/state/evidence.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::types::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::state::argument` [INFO] [stdout] --> src/content/ropehouse_blood.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::state::argument; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::combat::types::*` [INFO] [stdout] --> src/content/long_wire.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::combat::types::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::combat::split_party` [INFO] [stdout] --> src/content/long_wire.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::combat::split_party; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::combat::types::*` [INFO] [stdout] --> src/content/saints_mile_again.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::combat::types::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::state::store::StateStore` [INFO] [stdout] --> src/dev/quickstart.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::state::store::StateStore; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::state::types::GameState` [INFO] [stdout] --> src/dev/fixtures.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::state::types::GameState; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `EncounterPhase` [INFO] [stdout] --> src/ui/screens/standoff.rs:9:45 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::combat::engine::{EncounterState, EncounterPhase, LiveCombatant}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Cell`, `Gauge`, `Row`, and `Table` [INFO] [stdout] --> src/ui/screens/combat.rs:9:40 [INFO] [stdout] | [INFO] [stdout] 9 | use ratatui::widgets::{Block, Borders, Gauge, List, ListItem, Paragraph, Table, Row, Cell}; [INFO] [stdout] | ^^^^^ ^^^^^ ^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Gauge` [INFO] [stdout] --> src/ui/screens/escort.rs:8:40 [INFO] [stdout] | [INFO] [stdout] 8 | use ratatui::widgets::{Block, Borders, Gauge, List, ListItem, Paragraph}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Gauge` [INFO] [stdout] --> src/ui/screens/crowd.rs:8:40 [INFO] [stdout] | [INFO] [stdout] 8 | use ratatui::widgets::{Block, Borders, Gauge, List, ListItem, Paragraph}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Cell`, `ListItem`, `List`, `Row`, and `Table` [INFO] [stdout] --> src/ui/screens/transmission.rs:8:40 [INFO] [stdout] | [INFO] [stdout] 8 | use ratatui::widgets::{Block, Borders, List, ListItem, Paragraph, Table, Row, Cell}; [INFO] [stdout] | ^^^^ ^^^^^^^^ ^^^^^ ^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ActionResult` and `EncounterPhase` [INFO] [stdout] --> src/ui/mod.rs:17:45 [INFO] [stdout] | [INFO] [stdout] 17 | use crate::combat::engine::{EncounterState, EncounterPhase, CombatSide, ActionResult}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SkillLine` [INFO] [stdout] --> src/ui/mod.rs:18:56 [INFO] [stdout] | [INFO] [stdout] 18 | use crate::combat::types::{Encounter, StandoffPosture, SkillLine}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `threshold` [INFO] [stdout] --> src/scene/runner.rs:237:55 [INFO] [stdout] | [INFO] [stdout] 237 | Condition::Reputation { axis, op, threshold } => { [INFO] [stdout] | ^^^^^^^^^ help: try ignoring the field: `threshold: _` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `threshold` [INFO] [stdout] --> src/scene/runner.rs:237:55 [INFO] [stdout] | [INFO] [stdout] 237 | Condition::Reputation { axis, op, threshold } => { [INFO] [stdout] | ^^^^^^^^^ help: try ignoring the field: `threshold: _` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `any_killed` [INFO] [stdout] --> src/combat/engine.rs:1164:17 [INFO] [stdout] | [INFO] [stdout] 1164 | let any_killed = self.enemies.iter().any(|e| e.down); // hp = 0 [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_any_killed` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `any_killed` [INFO] [stdout] --> src/combat/engine.rs:1164:17 [INFO] [stdout] | [INFO] [stdout] 1164 | let any_killed = self.enemies.iter().any(|e| e.down); // hp = 0 [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_any_killed` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hp_before` [INFO] [stdout] --> src/combat/engine.rs:2808:13 [INFO] [stdout] | [INFO] [stdout] 2808 | let hp_before = state.enemies[0].hp; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hp_before` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `events` [INFO] [stdout] --> src/combat/engine.rs:3339:13 [INFO] [stdout] | [INFO] [stdout] 3339 | let events = state.fear_cascade("galen"); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_events` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `app` [INFO] [stdout] --> src/ui/input.rs:119:24 [INFO] [stdout] | [INFO] [stdout] 119 | fn handle_standoff_key(app: &mut App, key: KeyEvent) -> InputResult { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_app` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hp_text` [INFO] [stdout] --> src/ui/screens/combat.rs:267:9 [INFO] [stdout] | [INFO] [stdout] 267 | let hp_text = format!(" HP {}/{} ", c.hp, c.max_hp); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hp_text` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ui` [INFO] [stdout] --> src/ui/screens/transmission.rs:102:5 [INFO] [stdout] | [INFO] [stdout] 102 | ui: &TransmissionUi, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ui` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `entry` [INFO] [stdout] --> src/ui/mod.rs:780:47 [INFO] [stdout] | [INFO] [stdout] 780 | fn build_enemy_action(state: &EncounterState, entry: &crate::combat::engine::TurnEntry) -> crate::combat::engine::CombatAction { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_entry` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `actor_id` [INFO] [stdout] --> src/ui/mod.rs:795:50 [INFO] [stdout] | [INFO] [stdout] 795 | fn is_duo_partner_active(state: &EncounterState, actor_id: &str, duo_id: &str) -> bool { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_actor_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `app` [INFO] [stdout] --> src/ui/input.rs:119:24 [INFO] [stdout] | [INFO] [stdout] 119 | fn handle_standoff_key(app: &mut App, key: KeyEvent) -> InputResult { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_app` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hp_text` [INFO] [stdout] --> src/ui/screens/combat.rs:267:9 [INFO] [stdout] | [INFO] [stdout] 267 | let hp_text = format!(" HP {}/{} ", c.hp, c.max_hp); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hp_text` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ui` [INFO] [stdout] --> src/ui/screens/transmission.rs:102:5 [INFO] [stdout] | [INFO] [stdout] 102 | ui: &TransmissionUi, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ui` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `entry` [INFO] [stdout] --> src/ui/mod.rs:780:47 [INFO] [stdout] | [INFO] [stdout] 780 | fn build_enemy_action(state: &EncounterState, entry: &crate::combat::engine::TurnEntry) -> crate::combat::engine::CombatAction { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_entry` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `actor_id` [INFO] [stdout] --> src/ui/mod.rs:795:50 [INFO] [stdout] | [INFO] [stdout] 795 | fn is_duo_partner_active(state: &EncounterState, actor_id: &str, duo_id: &str) -> bool { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_actor_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `saints_mile::scene::types::SceneTransition` [INFO] [stdout] --> tests/adult_act_end.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use saints_mile::scene::types::SceneTransition; [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: `Condition` and `StateEffect` [INFO] [stdout] --> tests/pressure_encounters.rs:5:33 [INFO] [stdout] | [INFO] [stdout] 5 | use saints_mile::scene::types::{Condition, StateEffect}; [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: `saints_mile::state::types::GameState` [INFO] [stdout] --> tests/full_playthrough.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use saints_mile::state::types::GameState; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RELAY_TOM` is never used [INFO] [stdout] --> tests/common/mod.rs:17:11 [INFO] [stdout] | [INFO] [stdout] 17 | pub const RELAY_TOM: &str = "tom"; [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 `RELAY_NELLA` is never used [INFO] [stdout] --> tests/common/mod.rs:18:11 [INFO] [stdout] | [INFO] [stdout] 18 | pub const RELAY_NELLA: &str = "nella"; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RELAY_PAPERS` is never used [INFO] [stdout] --> tests/common/mod.rs:19:11 [INFO] [stdout] | [INFO] [stdout] 19 | pub const RELAY_PAPERS: &str = "papers"; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_scene` is never used [INFO] [stdout] --> tests/common/mod.rs:27:8 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn run_scene( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_COMBAT_ROUNDS` is never used [INFO] [stdout] --> tests/common/mod.rs:46:11 [INFO] [stdout] | [INFO] [stdout] 46 | pub const MAX_COMBAT_ROUNDS: usize = 30; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_combat` is never used [INFO] [stdout] --> tests/common/mod.rs:53:8 [INFO] [stdout] | [INFO] [stdout] 53 | pub fn run_combat( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `saints_mile::state::types::GameState` [INFO] [stdout] --> tests/feature_wave4.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use saints_mile::state::types::GameState; [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: `saints_mile::scene::types::StateEffect` [INFO] [stdout] --> tests/feature_wave4.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use saints_mile::scene::types::StateEffect; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RELAY_TOM` is never used [INFO] [stdout] --> tests/common/mod.rs:17:11 [INFO] [stdout] | [INFO] [stdout] 17 | pub const RELAY_TOM: &str = "tom"; [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 `RELAY_NELLA` is never used [INFO] [stdout] --> tests/common/mod.rs:18:11 [INFO] [stdout] | [INFO] [stdout] 18 | pub const RELAY_NELLA: &str = "nella"; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RELAY_PAPERS` is never used [INFO] [stdout] --> tests/common/mod.rs:19:11 [INFO] [stdout] | [INFO] [stdout] 19 | pub const RELAY_PAPERS: &str = "papers"; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_scene` is never used [INFO] [stdout] --> tests/common/mod.rs:27:8 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn run_scene( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_COMBAT_ROUNDS` is never used [INFO] [stdout] --> tests/common/mod.rs:46:11 [INFO] [stdout] | [INFO] [stdout] 46 | pub const MAX_COMBAT_ROUNDS: usize = 30; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_combat` is never used [INFO] [stdout] --> tests/common/mod.rs:53:8 [INFO] [stdout] | [INFO] [stdout] 53 | pub fn run_combat( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `thug_hp_start` [INFO] [stdout] --> tests/feature_wave4.rs:469:9 [INFO] [stdout] | [INFO] [stdout] 469 | let thug_hp_start = state.enemies[0].hp; [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thug_hp_start` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `thug_hp_mid` [INFO] [stdout] --> tests/feature_wave4.rs:479:9 [INFO] [stdout] | [INFO] [stdout] 479 | let thug_hp_mid = state.enemies[0].hp; [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thug_hp_mid` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RELAY_TOM` is never used [INFO] [stdout] --> tests/common/mod.rs:17:11 [INFO] [stdout] | [INFO] [stdout] 17 | pub const RELAY_TOM: &str = "tom"; [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 `RELAY_NELLA` is never used [INFO] [stdout] --> tests/common/mod.rs:18:11 [INFO] [stdout] | [INFO] [stdout] 18 | pub const RELAY_NELLA: &str = "nella"; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RELAY_PAPERS` is never used [INFO] [stdout] --> tests/common/mod.rs:19:11 [INFO] [stdout] | [INFO] [stdout] 19 | pub const RELAY_PAPERS: &str = "papers"; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_scene` is never used [INFO] [stdout] --> tests/common/mod.rs:27:8 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn run_scene( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_COMBAT_ROUNDS` is never used [INFO] [stdout] --> tests/common/mod.rs:46:11 [INFO] [stdout] | [INFO] [stdout] 46 | pub const MAX_COMBAT_ROUNDS: usize = 30; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_combat` is never used [INFO] [stdout] --> tests/common/mod.rs:53:8 [INFO] [stdout] | [INFO] [stdout] 53 | pub fn run_combat( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RELAY_TOM` is never used [INFO] [stdout] --> tests/common/mod.rs:17:11 [INFO] [stdout] | [INFO] [stdout] 17 | pub const RELAY_TOM: &str = "tom"; [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 `RELAY_NELLA` is never used [INFO] [stdout] --> tests/common/mod.rs:18:11 [INFO] [stdout] | [INFO] [stdout] 18 | pub const RELAY_NELLA: &str = "nella"; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RELAY_PAPERS` is never used [INFO] [stdout] --> tests/common/mod.rs:19:11 [INFO] [stdout] | [INFO] [stdout] 19 | pub const RELAY_PAPERS: &str = "papers"; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_scene` is never used [INFO] [stdout] --> tests/common/mod.rs:27:8 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn run_scene( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_COMBAT_ROUNDS` is never used [INFO] [stdout] --> tests/common/mod.rs:46:11 [INFO] [stdout] | [INFO] [stdout] 46 | pub const MAX_COMBAT_ROUNDS: usize = 30; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_combat` is never used [INFO] [stdout] --> tests/common/mod.rs:53:8 [INFO] [stdout] | [INFO] [stdout] 53 | pub fn run_combat( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `stance` [INFO] [stdout] --> tests/ropehouse_blood.rs:276:13 [INFO] [stdout] | [INFO] [stdout] 276 | for (i, stance) in stances.iter().enumerate() { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_stance` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `builders::*` [INFO] [stdout] --> tests/cedar_wake.rs:12:40 [INFO] [stdout] | [INFO] [stdout] 12 | use saints_mile::content::{cedar_wake, builders::*}; [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: `AgePhase` [INFO] [stdout] --> tests/morrow_crossing.rs:7:54 [INFO] [stdout] | [INFO] [stdout] 7 | CharacterId, SkillId, FlagValue, ReputationAxis, AgePhase, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RELAY_TOM` is never used [INFO] [stdout] --> tests/common/mod.rs:17:11 [INFO] [stdout] | [INFO] [stdout] 17 | pub const RELAY_TOM: &str = "tom"; [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 `RELAY_NELLA` is never used [INFO] [stdout] --> tests/common/mod.rs:18:11 [INFO] [stdout] | [INFO] [stdout] 18 | pub const RELAY_NELLA: &str = "nella"; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RELAY_PAPERS` is never used [INFO] [stdout] --> tests/common/mod.rs:19:11 [INFO] [stdout] | [INFO] [stdout] 19 | pub const RELAY_PAPERS: &str = "papers"; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RELAY_TOM` is never used [INFO] [stdout] --> tests/common/mod.rs:17:11 [INFO] [stdout] | [INFO] [stdout] 17 | pub const RELAY_TOM: &str = "tom"; [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 `RELAY_NELLA` is never used [INFO] [stdout] --> tests/common/mod.rs:18:11 [INFO] [stdout] | [INFO] [stdout] 18 | pub const RELAY_NELLA: &str = "nella"; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RELAY_PAPERS` is never used [INFO] [stdout] --> tests/common/mod.rs:19:11 [INFO] [stdout] | [INFO] [stdout] 19 | pub const RELAY_PAPERS: &str = "papers"; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_COMBAT_ROUNDS` is never used [INFO] [stdout] --> tests/common/mod.rs:46:11 [INFO] [stdout] | [INFO] [stdout] 46 | pub const MAX_COMBAT_ROUNDS: usize = 30; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_combat` is never used [INFO] [stdout] --> tests/common/mod.rs:53:8 [INFO] [stdout] | [INFO] [stdout] 53 | pub fn run_combat( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RELAY_TOM` is never used [INFO] [stdout] --> tests/common/mod.rs:17:11 [INFO] [stdout] | [INFO] [stdout] 17 | pub const RELAY_TOM: &str = "tom"; [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 `RELAY_NELLA` is never used [INFO] [stdout] --> tests/common/mod.rs:18:11 [INFO] [stdout] | [INFO] [stdout] 18 | pub const RELAY_NELLA: &str = "nella"; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RELAY_PAPERS` is never used [INFO] [stdout] --> tests/common/mod.rs:19:11 [INFO] [stdout] | [INFO] [stdout] 19 | pub const RELAY_PAPERS: &str = "papers"; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_scene` is never used [INFO] [stdout] --> tests/common/mod.rs:27:8 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn run_scene( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_COMBAT_ROUNDS` is never used [INFO] [stdout] --> tests/common/mod.rs:46:11 [INFO] [stdout] | [INFO] [stdout] 46 | pub const MAX_COMBAT_ROUNDS: usize = 30; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_combat` is never used [INFO] [stdout] --> tests/common/mod.rs:53:8 [INFO] [stdout] | [INFO] [stdout] 53 | pub fn run_combat( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dir` [INFO] [stdout] --> tests/cedar_wake.rs:254:9 [INFO] [stdout] | [INFO] [stdout] 254 | let dir = TempDir::new().unwrap(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_dir` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `nerve` [INFO] [stdout] --> tests/cedar_wake.rs:366:20 [INFO] [stdout] | [INFO] [stdout] 366 | let (_, _, hp, nerve, ammo, speed, accuracy, damage, skills, duo_techs, _) = [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_nerve` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ammo` [INFO] [stdout] --> tests/cedar_wake.rs:366:27 [INFO] [stdout] | [INFO] [stdout] 366 | let (_, _, hp, nerve, ammo, speed, accuracy, damage, skills, duo_techs, _) = [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_ammo` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `adult_ammo` [INFO] [stdout] --> tests/cedar_wake.rs:393:29 [INFO] [stdout] | [INFO] [stdout] 393 | let (_, _, adult_hp, _, adult_ammo, adult_speed, adult_accuracy, adult_damage, adult_skills, adult_duos, _) = [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_adult_ammo` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `resolved` is never read [INFO] [stdout] --> tests/saints_mile_convoy.rs:71:17 [INFO] [stdout] | [INFO] [stdout] 71 | resolved = true; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RELAY_TOM` is never used [INFO] [stdout] --> tests/common/mod.rs:17:11 [INFO] [stdout] | [INFO] [stdout] 17 | pub const RELAY_TOM: &str = "tom"; [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 `RELAY_TOM` is never used [INFO] [stdout] --> tests/common/mod.rs:17:11 [INFO] [stdout] | [INFO] [stdout] 17 | pub const RELAY_TOM: &str = "tom"; [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 `RELAY_NELLA` is never used [INFO] [stdout] --> tests/common/mod.rs:18:11 [INFO] [stdout] | [INFO] [stdout] 18 | pub const RELAY_NELLA: &str = "nella"; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RELAY_PAPERS` is never used [INFO] [stdout] --> tests/common/mod.rs:19:11 [INFO] [stdout] | [INFO] [stdout] 19 | pub const RELAY_PAPERS: &str = "papers"; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RELAY_NELLA` is never used [INFO] [stdout] --> tests/common/mod.rs:18:11 [INFO] [stdout] | [INFO] [stdout] 18 | pub const RELAY_NELLA: &str = "nella"; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RELAY_PAPERS` is never used [INFO] [stdout] --> tests/common/mod.rs:19:11 [INFO] [stdout] | [INFO] [stdout] 19 | pub const RELAY_PAPERS: &str = "papers"; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_scene` is never used [INFO] [stdout] --> tests/common/mod.rs:27:8 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn run_scene( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_COMBAT_ROUNDS` is never used [INFO] [stdout] --> tests/common/mod.rs:46:11 [INFO] [stdout] | [INFO] [stdout] 46 | pub const MAX_COMBAT_ROUNDS: usize = 30; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_combat` is never used [INFO] [stdout] --> tests/common/mod.rs:53:8 [INFO] [stdout] | [INFO] [stdout] 53 | pub fn run_combat( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 26.37s [INFO] running `Command { std: "docker" "inspect" "a3d796ada379321bd53773ed5075a277ad9136c875fd21e2c9604fe97eeecf6c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a3d796ada379321bd53773ed5075a277ad9136c875fd21e2c9604fe97eeecf6c", kill_on_drop: false }` [INFO] [stdout] a3d796ada379321bd53773ed5075a277ad9136c875fd21e2c9604fe97eeecf6c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] f163a87d462ffbca712e4c985dee1b3187917786592de5c28fea40befdefce2e [INFO] running `Command { std: "docker" "start" "-a" "f163a87d462ffbca712e4c985dee1b3187917786592de5c28fea40befdefce2e", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `crate::types::*` [INFO] [stderr] --> src/combat/crowd.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | use crate::types::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::types::*` [INFO] [stderr] --> src/combat/reckoning.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use crate::types::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::types::*` [INFO] [stderr] --> src/state/evidence.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use crate::types::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::state::argument` [INFO] [stderr] --> src/content/ropehouse_blood.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use crate::state::argument; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::combat::types::*` [INFO] [stderr] --> src/content/long_wire.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use crate::combat::types::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::combat::split_party` [INFO] [stderr] --> src/content/long_wire.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use crate::combat::split_party; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::combat::types::*` [INFO] [stderr] --> src/content/saints_mile_again.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use crate::combat::types::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::state::store::StateStore` [INFO] [stderr] --> src/dev/quickstart.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use crate::state::store::StateStore; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::state::types::GameState` [INFO] [stderr] --> src/dev/fixtures.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | use crate::state::types::GameState; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `EncounterPhase` [INFO] [stderr] --> src/ui/screens/standoff.rs:9:45 [INFO] [stderr] | [INFO] [stderr] 9 | use crate::combat::engine::{EncounterState, EncounterPhase, LiveCombatant}; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Cell`, `Gauge`, `Row`, and `Table` [INFO] [stderr] --> src/ui/screens/combat.rs:9:40 [INFO] [stderr] | [INFO] [stderr] 9 | use ratatui::widgets::{Block, Borders, Gauge, List, ListItem, Paragraph, Table, Row, Cell}; [INFO] [stderr] | ^^^^^ ^^^^^ ^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Gauge` [INFO] [stderr] --> src/ui/screens/escort.rs:8:40 [INFO] [stderr] | [INFO] [stderr] 8 | use ratatui::widgets::{Block, Borders, Gauge, List, ListItem, Paragraph}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Gauge` [INFO] [stderr] --> src/ui/screens/crowd.rs:8:40 [INFO] [stderr] | [INFO] [stderr] 8 | use ratatui::widgets::{Block, Borders, Gauge, List, ListItem, Paragraph}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Cell`, `ListItem`, `List`, `Row`, and `Table` [INFO] [stderr] --> src/ui/screens/transmission.rs:8:40 [INFO] [stderr] | [INFO] [stderr] 8 | use ratatui::widgets::{Block, Borders, List, ListItem, Paragraph, Table, Row, Cell}; [INFO] [stderr] | ^^^^ ^^^^^^^^ ^^^^^ ^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `ActionResult` and `EncounterPhase` [INFO] [stderr] --> src/ui/mod.rs:17:45 [INFO] [stderr] | [INFO] [stderr] 17 | use crate::combat::engine::{EncounterState, EncounterPhase, CombatSide, ActionResult}; [INFO] [stderr] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `SkillLine` [INFO] [stderr] --> src/ui/mod.rs:18:56 [INFO] [stderr] | [INFO] [stderr] 18 | use crate::combat::types::{Encounter, StandoffPosture, SkillLine}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `threshold` [INFO] [stderr] --> src/scene/runner.rs:237:55 [INFO] [stderr] | [INFO] [stderr] 237 | Condition::Reputation { axis, op, threshold } => { [INFO] [stderr] | ^^^^^^^^^ help: try ignoring the field: `threshold: _` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `any_killed` [INFO] [stderr] --> src/combat/engine.rs:1164:17 [INFO] [stderr] | [INFO] [stderr] 1164 | let any_killed = self.enemies.iter().any(|e| e.down); // hp = 0 [INFO] [stderr] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_any_killed` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `app` [INFO] [stderr] --> src/ui/input.rs:119:24 [INFO] [stderr] | [INFO] [stderr] 119 | fn handle_standoff_key(app: &mut App, key: KeyEvent) -> InputResult { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_app` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `hp_text` [INFO] [stderr] --> src/ui/screens/combat.rs:267:9 [INFO] [stderr] | [INFO] [stderr] 267 | let hp_text = format!(" HP {}/{} ", c.hp, c.max_hp); [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hp_text` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ui` [INFO] [stderr] --> src/ui/screens/transmission.rs:102:5 [INFO] [stderr] | [INFO] [stderr] 102 | ui: &TransmissionUi, [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_ui` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `entry` [INFO] [stderr] --> src/ui/mod.rs:780:47 [INFO] [stderr] | [INFO] [stderr] 780 | fn build_enemy_action(state: &EncounterState, entry: &crate::combat::engine::TurnEntry) -> crate::combat::engine::CombatAction { [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_entry` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `actor_id` [INFO] [stderr] --> src/ui/mod.rs:795:50 [INFO] [stderr] | [INFO] [stderr] 795 | fn is_duo_partner_active(state: &EncounterState, actor_id: &str, duo_id: &str) -> bool { [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_actor_id` [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::types::*` [INFO] [stderr] --> src/scene/runner.rs:307:9 [INFO] [stderr] | [INFO] [stderr] 307 | use crate::types::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::types::*` [INFO] [stderr] --> src/combat/crowd.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | use crate::types::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `hp_before` [INFO] [stderr] --> src/combat/engine.rs:2808:13 [INFO] [stderr] | [INFO] [stderr] 2808 | let hp_before = state.enemies[0].hp; [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hp_before` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `events` [INFO] [stderr] --> src/combat/engine.rs:3339:13 [INFO] [stderr] | [INFO] [stderr] 3339 | let events = state.fear_cascade("galen"); [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_events` [INFO] [stderr] [INFO] [stderr] warning: `saints-mile` (lib) generated 23 warnings (run `cargo fix --lib -p saints-mile` to apply 23 suggestions) [INFO] [stderr] warning: `saints-mile` (lib test) generated 26 warnings (22 duplicates) (run `cargo fix --lib -p saints-mile --tests` to apply 4 suggestions) [INFO] [stderr] warning: constant `RELAY_TOM` is never used [INFO] [stderr] --> tests/common/mod.rs:17:11 [INFO] [stderr] | [INFO] [stderr] 17 | pub const RELAY_TOM: &str = "tom"; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: constant `RELAY_NELLA` is never used [INFO] [stderr] --> tests/common/mod.rs:18:11 [INFO] [stderr] | [INFO] [stderr] 18 | pub const RELAY_NELLA: &str = "nella"; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `RELAY_PAPERS` is never used [INFO] [stderr] --> tests/common/mod.rs:19:11 [INFO] [stderr] | [INFO] [stderr] 19 | pub const RELAY_PAPERS: &str = "papers"; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `run_scene` is never used [INFO] [stderr] --> tests/common/mod.rs:27:8 [INFO] [stderr] | [INFO] [stderr] 27 | pub fn run_scene( [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `MAX_COMBAT_ROUNDS` is never used [INFO] [stderr] --> tests/common/mod.rs:46:11 [INFO] [stderr] | [INFO] [stderr] 46 | pub const MAX_COMBAT_ROUNDS: usize = 30; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `run_combat` is never used [INFO] [stderr] --> tests/common/mod.rs:53:8 [INFO] [stderr] | [INFO] [stderr] 53 | pub fn run_combat( [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: value assigned to `resolved` is never read [INFO] [stderr] --> tests/saints_mile_convoy.rs:71:17 [INFO] [stderr] | [INFO] [stderr] 71 | resolved = true; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: `saints-mile` (test "feature_wave1") generated 6 warnings [INFO] [stderr] warning: `saints-mile` (test "prologue") generated 5 warnings (5 duplicates) [INFO] [stderr] warning: `saints-mile` (test "saints_mile_convoy") generated 1 warning [INFO] [stderr] warning: `saints-mile` (test "feature_wave3") generated 6 warnings (6 duplicates) [INFO] [stderr] warning: unused import: `builders::*` [INFO] [stderr] --> tests/cedar_wake.rs:12:40 [INFO] [stderr] | [INFO] [stderr] 12 | use saints_mile::content::{cedar_wake, builders::*}; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `dir` [INFO] [stderr] --> tests/cedar_wake.rs:254:9 [INFO] [stderr] | [INFO] [stderr] 254 | let dir = TempDir::new().unwrap(); [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_dir` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `nerve` [INFO] [stderr] --> tests/cedar_wake.rs:366:20 [INFO] [stderr] | [INFO] [stderr] 366 | let (_, _, hp, nerve, ammo, speed, accuracy, damage, skills, duo_techs, _) = [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_nerve` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ammo` [INFO] [stderr] --> tests/cedar_wake.rs:366:27 [INFO] [stderr] | [INFO] [stderr] 366 | let (_, _, hp, nerve, ammo, speed, accuracy, damage, skills, duo_techs, _) = [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_ammo` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `adult_ammo` [INFO] [stderr] --> tests/cedar_wake.rs:393:29 [INFO] [stderr] | [INFO] [stderr] 393 | let (_, _, adult_hp, _, adult_ammo, adult_speed, adult_accuracy, adult_damage, adult_skills, adult_duos, _) = [INFO] [stderr] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_adult_ammo` [INFO] [stderr] [INFO] [stderr] warning: unused import: `saints_mile::scene::types::SceneTransition` [INFO] [stderr] --> tests/adult_act_end.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use saints_mile::scene::types::SceneTransition; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `stance` [INFO] [stderr] --> tests/ropehouse_blood.rs:276:13 [INFO] [stderr] | [INFO] [stderr] 276 | for (i, stance) in stances.iter().enumerate() { [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_stance` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `saints_mile::state::types::GameState` [INFO] [stderr] --> tests/feature_wave4.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | use saints_mile::state::types::GameState; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `saints_mile::scene::types::StateEffect` [INFO] [stderr] --> tests/feature_wave4.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | use saints_mile::scene::types::StateEffect; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `thug_hp_start` [INFO] [stderr] --> tests/feature_wave4.rs:469:9 [INFO] [stderr] | [INFO] [stderr] 469 | let thug_hp_start = state.enemies[0].hp; [INFO] [stderr] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thug_hp_start` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `thug_hp_mid` [INFO] [stderr] --> tests/feature_wave4.rs:479:9 [INFO] [stderr] | [INFO] [stderr] 479 | let thug_hp_mid = state.enemies[0].hp; [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thug_hp_mid` [INFO] [stderr] [INFO] [stderr] warning: unused import: `AgePhase` [INFO] [stderr] --> tests/morrow_crossing.rs:7:54 [INFO] [stderr] | [INFO] [stderr] 7 | CharacterId, SkillId, FlagValue, ReputationAxis, AgePhase, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: `saints-mile` (test "dust_revival") generated 3 warnings (3 duplicates) [INFO] [stderr] warning: `saints-mile` (test "fuse_country") generated 3 warnings (3 duplicates) [INFO] [stderr] warning: `saints-mile` (test "cedar_wake") generated 5 warnings (run `cargo fix --test "cedar_wake" -p saints-mile` to apply 5 suggestions) [INFO] [stderr] warning: `saints-mile` (test "adult_act_end") generated 1 warning (run `cargo fix --test "adult_act_end" -p saints-mile` to apply 1 suggestion) [INFO] [stderr] warning: `saints-mile` (test "ropehouse_blood") generated 1 warning (run `cargo fix --test "ropehouse_blood" -p saints-mile` to apply 1 suggestion) [INFO] [stderr] warning: `saints-mile` (test "feature_wave4") generated 10 warnings (6 duplicates) (run `cargo fix --test "feature_wave4" -p saints-mile` to apply 4 suggestions) [INFO] [stderr] warning: `saints-mile` (test "morrow_crossing") generated 1 warning (run `cargo fix --test "morrow_crossing" -p saints-mile` to apply 1 suggestion) [INFO] [stderr] warning: unused import: `saints_mile::state::types::GameState` [INFO] [stderr] --> tests/full_playthrough.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | use saints_mile::state::types::GameState; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Condition` and `StateEffect` [INFO] [stderr] --> tests/pressure_encounters.rs:5:33 [INFO] [stderr] | [INFO] [stderr] 5 | use saints_mile::scene::types::{Condition, StateEffect}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: `saints-mile` (test "scene_system") generated 6 warnings (6 duplicates) [INFO] [stderr] warning: `saints-mile` (test "full_playthrough") generated 7 warnings (6 duplicates) (run `cargo fix --test "full_playthrough" -p saints-mile` to apply 1 suggestion) [INFO] [stderr] warning: `saints-mile` (test "feature_wave2") generated 6 warnings (6 duplicates) [INFO] [stderr] warning: `saints-mile` (test "pressure_encounters") generated 1 warning (run `cargo fix --test "pressure_encounters" -p saints-mile` to apply 1 suggestion) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.44s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/saints_mile-9ebfca43c8640475) [INFO] [stdout] [INFO] [stdout] running 158 tests [INFO] [stdout] test combat::convoy::tests::convoy_creates_with_full_cast ... ok [INFO] [stdout] test combat::convoy::tests::day_night_progression ... ok [INFO] [stdout] test combat::crowd::tests::different_actions_affect_crowd_differently ... ok [INFO] [stdout] test combat::crowd::tests::physical_hold_delays_surge ... ok [INFO] [stdout] test combat::convoy::tests::member_death_and_finalize ... ok [INFO] [stdout] test combat::crowd::tests::broad_calm_restores_nerve ... ok [INFO] [stdout] test combat::crowd::tests::crowd_breaks_when_nerve_zero ... ok [INFO] [stdout] test combat::crowd::tests::crowd_breaks_when_surge_reaches_zero ... ok [INFO] [stdout] test combat::crowd::tests::shock_calms_briefly_but_worsens_momentum ... ok [INFO] [stdout] test combat::engine::tests::active_objectives_fail_on_defeat ... ok [INFO] [stdout] test combat::engine::tests::active_objectives_resolve_on_victory ... ok [INFO] [stdout] test combat::convoy::tests::asset_damage_and_destruction ... ok [INFO] [stdout] test combat::engine::tests::bleeding_deals_damage_per_turn ... ok [INFO] [stdout] test combat::crowd::tests::targeted_nerve_breaks_ringleader ... ok [INFO] [stdout] test combat::engine::tests::active_objectives_fail_on_flee ... ok [INFO] [stdout] test combat::engine::tests::combo_reset_clears_actor ... ok [INFO] [stdout] test combat::engine::tests::action_execution_uses_ammo ... ok [INFO] [stdout] test combat::engine::tests::combo_first_action_no_bonus ... ok [INFO] [stdout] test combat::engine::tests::age_variant_youth_faster_less_accurate ... ok [INFO] [stdout] test combat::engine::tests::combo_third_same_action_twenty_percent ... ok [INFO] [stdout] test combat::engine::tests::cooldown_ticks_down_each_round ... ok [INFO] [stdout] test combat::crowd::tests::crowd_disperses_when_nerve_high ... ok [INFO] [stdout] test combat::engine::tests::combo_resets_on_different_skill_line ... ok [INFO] [stdout] test combat::engine::tests::cover_reduces_damage ... ok [INFO] [stdout] test combat::engine::tests::combo_second_same_action_ten_percent ... ok [INFO] [stdout] test combat::engine::tests::destructible_cover_breaks_under_damage ... ok [INFO] [stdout] test combat::engine::tests::age_variant_affects_damage_in_combat ... ok [INFO] [stdout] test combat::engine::tests::duo_tech_execution ... ok [INFO] [stdout] test combat::engine::tests::encounter_creates_with_4_slots ... ok [INFO] [stdout] test combat::engine::tests::duo_tech_fails_when_partner_down ... ok [INFO] [stdout] test combat::engine::tests::duo_tech_uses_registry_damage ... ok [INFO] [stdout] test combat::engine::tests::fear_cascade_can_chain ... ok [INFO] [stdout] test combat::engine::tests::fear_cascade_damages_allies_nerve ... ok [INFO] [stdout] test combat::engine::tests::fear_cascade_on_enemy_side ... ok [INFO] [stdout] test combat::engine::tests::fear_cascade_skips_already_panicked ... ok [INFO] [stdout] test combat::engine::tests::flee_blocked_in_boss_encounter ... ok [INFO] [stdout] test combat::engine::tests::flee_succeeds_when_party_faster ... ok [INFO] [stdout] test combat::engine::tests::force_out_of_cover_action ... ok [INFO] [stdout] test combat::engine::tests::full_combat_round_flows ... ok [INFO] [stdout] test combat::engine::tests::indestructible_cover_survives ... ok [INFO] [stdout] test combat::engine::tests::force_out_of_cover_noop_on_open_target ... ok [INFO] [stdout] test combat::engine::tests::inspired_boosts_damage ... ok [INFO] [stdout] test combat::engine::tests::npc_allies_use_character_specific_stats ... ok [INFO] [stdout] test combat::engine::tests::named_npc_eli_uses_fast_talk ... ok [INFO] [stdout] test combat::engine::tests::npc_nervous_takes_cover_when_hurt ... ok [INFO] [stdout] test combat::engine::tests::nerve_break_causes_panic ... ok [INFO] [stdout] test combat::engine::tests::named_npc_ada_heals_critical_ally ... ok [INFO] [stdout] test combat::engine::tests::npc_professional_attacks_highest_threat ... ok [INFO] [stdout] test combat::engine::tests::npc_protective_heals_injured_ally ... ok [INFO] [stdout] test combat::engine::tests::objective_resolution ... ok [INFO] [stdout] test combat::engine::tests::partial_cover_reduces_damage_25_percent ... ok [INFO] [stdout] test combat::engine::tests::panicked_enemies_excluded_from_turn_queue ... ok [INFO] [stdout] test combat::engine::tests::reload_at_full_ammo_does_nothing ... ok [INFO] [stdout] test combat::engine::tests::reload_caps_at_max_ammo ... ok [INFO] [stdout] test combat::engine::tests::reload_restores_partial_ammo ... ok [INFO] [stdout] test combat::engine::tests::scavenge_ammo_from_defeated_enemies ... ok [INFO] [stdout] test combat::engine::tests::skill_cooldown_blocks_reuse ... ok [INFO] [stdout] test combat::engine::tests::skill_registry_overrides_damage_and_accuracy ... ok [INFO] [stdout] test combat::engine::tests::standoff_bait_can_break_target ... ok [INFO] [stdout] test combat::engine::tests::standoff_early_draw ... ok [INFO] [stdout] test combat::engine::tests::status_effects_expire_after_ticking ... ok [INFO] [stdout] test combat::engine::tests::stunned_skips_turn ... ok [INFO] [stdout] test combat::engine::tests::suppressed_reduces_accuracy ... ok [INFO] [stdout] test combat::engine::tests::take_cover_assigns_terrain_element ... ok [INFO] [stdout] test combat::engine::tests::terrain_burning_applies_damage ... ok [INFO] [stdout] test combat::engine::tests::terrain_flooded_applies_nerve_penalty ... ok [INFO] [stdout] test combat::environment::tests::chain_reaction_accelerates_other_charges ... ok [INFO] [stdout] test combat::engine::tests::terrain_multiple_modifiers_stack ... ok [INFO] [stdout] test combat::environment::tests::cover_destruction ... ok [INFO] [stdout] test combat::environment::tests::fuse_ticks_and_detonates ... ok [INFO] [stdout] test combat::engine::tests::turn_queue_speed_ordered ... ok [INFO] [stdout] test combat::environment::tests::physical_disarm ... ok [INFO] [stdout] test combat::reckoning::tests::eli_act_is_the_hinge ... ok [INFO] [stdout] test combat::environment::tests::structural_charge_collapses_trestle ... ok [INFO] [stdout] test combat::reckoning::tests::opposition_degrades_all_bars ... ok [INFO] [stdout] test combat::environment::tests::shoot_fuse_requires_accuracy ... ok [INFO] [stdout] test combat::engine::tests::terrain_no_modifiers_no_effects ... ok [INFO] [stdout] test combat::reckoning::tests::sequence_matters ... ok [INFO] [stdout] test combat::wounds::tests::recover_wound_out_of_bounds ... ok [INFO] [stdout] test combat::wounds::tests::recover_wound_untreatable ... ok [INFO] [stdout] test combat::wounds::tests::recover_wound_with_ada ... ok [INFO] [stdout] test combat::wounds::tests::recover_wound_without_ada_fails ... ok [INFO] [stdout] test combat::wounds::tests::rest_recovery_empty_wounds ... ok [INFO] [stdout] test combat::reckoning::tests::reckoning_state_tracks_five_bars ... ok [INFO] [stdout] test combat::wounds::tests::rest_recovery_heals_oldest_minor ... ok [INFO] [stdout] test combat::engine::tests::take_cover_falls_back_to_partial_when_all_occupied ... ok [INFO] [stdout] test combat::reckoning::tests::ch9_results_change_opening ... ok [INFO] [stdout] test combat::wounds::tests::rest_recovery_skips_major_wounds ... ok [INFO] [stdout] test pressure::engine::tests::cargo_damage_and_loss ... ok [INFO] [stdout] test pressure::engine::tests::pressure_success_when_all_bars_above_fail ... ok [INFO] [stdout] test pressure::engine::tests::full_pressure_round_flow ... ok [INFO] [stdout] test pressure::engine::tests::negative_delta_reduces_bar ... ok [INFO] [stdout] test pressure::engine::tests::pressure_action_modifies_bar ... ok [INFO] [stdout] test pressure::engine::tests::pressure_engine_creates_from_encounter ... ok [INFO] [stdout] test pressure::engine::tests::pressure_failure_triggers_on_bar_threshold ... ok [INFO] [stdout] test pressure::engine::tests::bar_summary_only_shows_visible ... ok [INFO] [stdout] test pressure::engine::tests::available_actions_per_character ... ok [INFO] [stdout] test pressure::engine::tests::actions_blocked_after_resolution ... ok [INFO] [stdout] test pressure::engine::tests::pressure_bar_clamps_to_max ... ok [INFO] [stdout] test scene::runner::tests::memory_callbacks_collected ... ok [INFO] [stdout] test state::progression::tests::can_enter_next_chapter_from_current ... ok [INFO] [stdout] test state::progression::tests::can_reenter_current_chapter ... ok [INFO] [stdout] test state::progression::tests::cannot_skip_chapters ... ok [INFO] [stdout] test state::progression::tests::cannot_skip_to_endgame ... ok [INFO] [stdout] test state::progression::tests::full_chapter_order_length ... ok [INFO] [stdout] test state::progression::tests::late_game_progression ... ok [INFO] [stdout] test state::progression::tests::numeric_chapter_ids_work ... ok [INFO] [stdout] test state::progression::tests::unknown_chapter_blocked ... ok [INFO] [stdout] test state::progression::tests::midgame_cannot_go_back_requirement ... ok [INFO] [stdout] test state::progression::tests::prologue_always_reachable ... ok [INFO] [stdout] test state::settings::tests::apply_text_speed_crisis_stays_zero ... ok [INFO] [stdout] test state::settings::tests::apply_text_speed_minimum_one ... ok [INFO] [stdout] test state::settings::tests::apply_text_speed_multiplier ... ok [INFO] [stdout] test state::settings::tests::default_settings ... ok [INFO] [stdout] test state::settings::tests::validate_clamps_high ... ok [INFO] [stdout] test state::settings::tests::validate_clamps_low ... ok [INFO] [stdout] test state::store::tests::complex_effect_sequence ... ok [INFO] [stdout] test state::settings::tests::load_corrupt_returns_default ... ok [INFO] [stdout] test state::store::tests::condition_checking ... ok [INFO] [stdout] test state::store::tests::delete_empty_slot_fails ... ok [INFO] [stdout] test state::store::tests::delete_save_removes_file ... ok [INFO] [stdout] test state::store::tests::eli_loyalty_line_grayed_out ... ok [INFO] [stdout] test state::store::tests::auto_save_creates_file ... ok [INFO] [stdout] test scene::runner::tests::describe_lock_reputation_neq ... ok [INFO] [stdout] test scene::runner::tests::evaluate_choices_unlocked_by_skill ... ok [INFO] [stdout] test state::store::tests::dead_drop_persists ... ok [INFO] [stdout] test state::store::tests::hand_injury_persists ... ok [INFO] [stdout] test scene::runner::tests::evaluate_choices_available_and_locked ... ok [INFO] [stdout] test scene::runner::tests::filter_lines_basic ... ok [INFO] [stdout] test scene::runner::tests::execute_choice_applies_effects ... ok [INFO] [stdout] test scene::runner::tests::filter_lines_with_condition_met ... ok [INFO] [stdout] test state::store::tests::evidence_integrity_survives ... ok [INFO] [stdout] test scene::runner::tests::morrow_crossing_poster_shape ... ok [INFO] [stdout] test scene::runner::tests::prepare_scene_full_pipeline ... ok [INFO] [stdout] test scene::runner::tests::scene_effects_applied ... ok [INFO] [stdout] test scene::runner::tests::scene_gated_by_conditions ... ok [INFO] [stdout] test state::store::tests::save_no_leftover_tmp ... ok [INFO] [stdout] test scene::runner::tests::describe_lock_reputation_eq ... ok [INFO] [stdout] test state::settings::tests::load_missing_returns_default ... ok [INFO] [stdout] test state::store::tests::save_creates_backup ... ok [INFO] [stdout] test state::store::tests::relay_branch_first_class ... ok [INFO] [stdout] test state::settings::tests::round_trip ... ok [INFO] [stdout] test state::store::tests::witness_state_branching ... ok [INFO] [stdout] test state::store::tests::memory_objects_persist ... ok [INFO] [stdout] test state::types::tests::available_party_no_departures ... ok [INFO] [stdout] test state::store::tests::version_mismatch_fails_cleanly ... ok [INFO] [stdout] test state::types::tests::investigation_wired_to_state ... ok [INFO] [stdout] test state::store::tests::round_trip_new_game ... ok [INFO] [stdout] test state::types::tests::multiple_departures_ch12 ... ok [INFO] [stdout] test state::types::tests::returned_member_included ... ok [INFO] [stdout] test state::types::tests::relay_evidence_tom_branch ... ok [INFO] [stdout] test state::types::tests::has_collected_works ... ok [INFO] [stdout] test state::types::tests::relay_evidence_papers_branch ... ok [INFO] [stdout] test state::types::tests::departed_member_excluded ... ok [INFO] [stdout] test state::types::tests::relay_evidence_none_returns_empty ... ok [INFO] [stdout] test state::types::tests::relay_evidence_nella_branch ... ok [INFO] [stdout] test state::types::tests::collect_evidence_deduplicates ... ok [INFO] [stdout] test state::types::tests::galen_never_departing ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 158 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/saints_mile-f8ef47830281543e) [INFO] [stdout] [INFO] [stderr] Running tests/adult_act_end.rs (/opt/rustwide/target/debug/deps/adult_act_end-56a048c7a0b32caa) [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] [stdout] [INFO] [stdout] running 7 tests [INFO] [stdout] test peak_synthesis_battle ... ok [INFO] [stdout] test hand_changes_the_menu ... ok [INFO] [stdout] test eli_campfire_line ... ok [INFO] [stdout] test hand_injury_is_system_wound ... ok [INFO] [stdout] test dispersal_is_consequence ... ok [INFO] [stdout] test ada_treatment_bridges_identity ... ok [INFO] [stdout] test adult_arc_carry_state ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/black_willow.rs (/opt/rustwide/target/debug/deps/black_willow-b1418659ecebe547) [INFO] [stdout] [INFO] [stdout] running 9 tests [INFO] [stdout] test ada_is_not_just_a_healer ... ok [INFO] [stdout] test adult_galen_feels_different_from_youth ... ok [INFO] [stdout] test older_galen_feels_transformed ... ok [INFO] [stdout] test wound_persistence_and_triage ... ok [INFO] [stdout] test three_character_party_combat ... ok [INFO] [stdout] test care_versus_pursuit_tension ... ok [INFO] [stdout] test relay_branch_entry_variants ... ok [INFO] [stdout] test chapter_3_full_path ... ok [INFO] [stdout] test sheriff_trail_integrates_relay_branch ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/breakwater_junction.rs (/opt/rustwide/target/debug/deps/breakwater_junction-4370ec11e5e1cfad) [INFO] [stdout] [INFO] [stdout] running 7 tests [INFO] [stdout] test breakwater_battle_encounter_exists ... ok [INFO] [stdout] test all_scenes_are_available ... ok [INFO] [stdout] test hand_injury_scene_has_injury_effect ... ok [INFO] [stdout] test nonexistent_scene_returns_none ... ok [INFO] [stdout] test victory_scene_has_memory_ref_to_ch13 ... ok [INFO] [stdout] test entry_scene_sets_ch11_started ... ok [INFO] [stdout] test victory_scene_sets_completion_flags ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/burned_mission.rs (/opt/rustwide/target/debug/deps/burned_mission-f66b7aacc4df3715) [INFO] [stdout] [INFO] [stdout] running 5 tests [INFO] [stdout] test party_is_the_tool ... ok [INFO] [stdout] test bell_remains_unresolved ... ok [INFO] [stdout] test revelation_is_older_not_bigger ... ok [INFO] [stdout] test lucien_reads_himself_in_the_walls ... ok [INFO] [stdout] test chapter_8_full_path ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/cedar_wake.rs (/opt/rustwide/target/debug/deps/cedar_wake-d86601256a51e924) [INFO] [stdout] [INFO] [stdout] running 5 tests [INFO] [stdout] test youth_galen_identity ... ok [INFO] [stdout] test chapter_1_alternate_approach ... ok [INFO] [stdout] test same_skill_different_meaning ... ok [INFO] [stdout] test bitter_cut_tracks_participation ... ok [INFO] [stdout] test chapter_1_full_path ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/combat_party_defs.rs (/opt/rustwide/target/debug/deps/combat_party_defs-67605a60690b01a0) [INFO] [stdout] [INFO] [stdout] running 11 tests [INFO] [stdout] test ada_is_the_medic ... ok [INFO] [stdout] test ch3_party_has_three_members ... ok [INFO] [stdout] test ch4_party_adds_rosa ... ok [INFO] [stdout] test ch3_pre_ada_has_two_members ... ok [INFO] [stdout] test ch5_roster_exceeds_party_slots ... ok [INFO] [stdout] test galen_adult_has_duo_techs ... ok [INFO] [stderr] Running tests/combat_wounds.rs (/opt/rustwide/target/debug/deps/combat_wounds-25f228d2d93221e3) [INFO] [stdout] test galen_ages_gain_skills_lose_speed ... ok [INFO] [stdout] test galen_older_is_most_accurate_slowest ... ok [INFO] [stdout] test galen_youth_has_basic_skills ... ok [INFO] [stdout] test rosa_is_physical_not_fast ... ok [INFO] [stdout] test to_combat_tuple_preserves_values ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test thorough_triage_restores_more_costs_more ... ok [INFO] [stdout] test exhaustion_affects_all_stats ... ok [INFO] [stdout] test nerve_shock_targets_nerve ... ok [INFO] [stdout] test triage_empty_wounds_returns_nothing ... ok [INFO] [stdout] test gunshot_wound_penalties ... ok [INFO] [stdout] test triage_heals_treatable_wounds ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/content_lookup.rs (/opt/rustwide/target/debug/deps/content_lookup-15d2ef5d924a9e07) [INFO] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test get_encounter_nonexistent_chapter_returns_none ... ok [INFO] [stdout] test get_scene_nonexistent_chapter_returns_none ... ok [INFO] [stdout] test get_encounter_nonexistent_encounter_id_returns_none ... ok [INFO] [stdout] test get_scene_nonexistent_scene_id_returns_none ... ok [INFO] [stdout] test get_encounter_valid_lookup_returns_some ... ok [INFO] [stdout] test get_scene_valid_lookup_returns_some ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/deadwater_trial.rs (/opt/rustwide/target/debug/deps/deadwater_trial-693b49d6a1effc8c) [INFO] [stdout] [INFO] [stdout] running 7 tests [INFO] [stdout] test ch9_results_change_deadwater ... ok [INFO] [stdout] test reckoning_is_combat ... ok [INFO] [stdout] test eli_line_is_right ... ok [INFO] [stdout] test eli_loyalty_earned_through_deed ... ok [INFO] [stdout] test no_clean_institutional_win ... ok [INFO] [stdout] test three_sequences_three_textures ... ok [INFO] [stdout] test chapter_10_full_path ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/dev_infrastructure.rs (/opt/rustwide/target/debug/deps/dev_infrastructure-af98fed30f26d4cf) [INFO] [stdout] [INFO] [stdout] running 5 tests [INFO] [stdout] test jump_point_progression ... ok [INFO] [stdout] test all_jump_points_create_valid_states ... ok [INFO] [stdout] test event_log_capture_and_export ... ok [INFO] [stdout] test generate_all_fixtures ... ok [INFO] [stdout] test jump_points_survive_save_round_trip ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/dust_revival.rs (/opt/rustwide/target/debug/deps/dust_revival-10e12190489ff592) [INFO] [stdout] [INFO] [stdout] running 8 tests [INFO] [stdout] test crowd_fight_feels_unique ... ok [INFO] [stdout] test miriam_changes_the_room ... ok [INFO] [stdout] test crowd_nerve_state_after_actions ... ok [INFO] [stdout] test chapter_5_force_hold_stance ... ok [INFO] [stdout] test five_roster_after_ch5 ... ok [INFO] [stdout] test ringleader_presence_affects_crowd_mood ... ok [INFO] [stdout] test chapter_5_full_path_miriam_speaks ... ok [INFO] [stdout] test miriam_is_distinct ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/feature_wave1.rs (/opt/rustwide/target/debug/deps/feature_wave1-e9b16536ef3e40fc) [INFO] [stdout] [INFO] [stdout] running 35 tests [INFO] [stdout] test all_16_chapters_have_entry_scenes ... ok [INFO] [stdout] test confirm_quit_screen_variant_exists ... ok [INFO] [stdout] test breakwater_battle_has_objectives ... ok [INFO] [stdout] test breakwater_battle_has_standoff ... ok [INFO] [stdout] test different_npcs_get_different_live_stats ... ok [INFO] [stdout] test breakwater_battle_encounter_dispatches ... ok [INFO] [stdout] test active_objectives_resolve_when_enemies_defeated ... ok [INFO] [stdout] test duo_tech_both_members_present_can_execute ... ok [INFO] [stdout] test completed_objectives_maintain_status ... ok [INFO] [stdout] test app_starts_with_should_quit_false ... ok [INFO] [stdout] test chapter_progression_flags_can_be_set ... ok [INFO] [stdout] test duo_tech_dead_member_blocks_execution ... ok [INFO] [stdout] test duo_tech_missing_member_party_lacks_partner ... ok [INFO] [stdout] test duo_tech_registry_registers_and_retrieves ... ok [INFO] [stdout] test chapter_entry_scenes_map_to_valid_scenes ... ok [INFO] [stdout] test encounter_state_carries_skill_registry ... ok [INFO] [stdout] test early_chapters_accessible_from_game_start ... ok [INFO] [stdout] test encounter_state_escapable_defaults_true ... ok [INFO] [stdout] test fled_result_variant_exists ... ok [INFO] [stdout] test flee_action_executes_without_panic ... ok [INFO] [stdout] test flee_action_variant_exists ... ok [INFO] [stdout] test npc_ally_stats_flow_into_encounter_state ... ok [INFO] [stdout] test npc_stats_cal_are_reasonable ... ok [INFO] [stdout] test npc_stats_for_unknown_returns_defaults ... ok [INFO] [stdout] test npc_stats_bale_is_slow_heavy_hitter ... ok [INFO] [stdout] test npc_stats_for_known_characters_returns_unique_stats ... ok [INFO] [stdout] test quit_options_include_save_and_cancel ... ok [INFO] [stdout] test quit_options_have_labels ... ok [INFO] [stdout] test secondary_objective_fails_when_enemies_killed_not_broken ... ok [INFO] [stdout] test skill_has_proper_cost_values ... ok [INFO] [stdout] test skill_registry_registers_and_retrieves ... ok [INFO] [stdout] test skill_registry_returns_none_for_unknown ... ok [INFO] [stdout] test skill_registry_variant_falls_back_to_first ... ok [INFO] [stdout] test skill_registry_variant_lookup_by_age ... ok [INFO] [stdout] test unknown_chapter_entry_returns_none ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/feature_wave2.rs (/opt/rustwide/target/debug/deps/feature_wave2-ebdb156eaef6dfe1) [INFO] [stdout] [INFO] [stdout] running 38 tests [INFO] [stdout] test cover_element_has_durability ... ok [INFO] [stdout] test ch6_chapter_close_sets_completion_flag ... ok [INFO] [stdout] test lucien_archive_contribution_varies_by_status ... ok [INFO] [stdout] test missing_age_variant_falls_back_to_base ... ok [INFO] [stdout] test destructible_cover_can_be_destroyed_via_environment ... ok [INFO] [stdout] test full_cover_position_exists ... ok [INFO] [stdout] test ch8_has_mission_defense_encounter ... ok [INFO] [stdout] test ch6_chapter_close_has_memory_refs ... ok [INFO] [stdout] test evidence_collection_is_idempotent ... ok [INFO] [stdout] test evidence_can_be_collected_in_game_state ... ok [INFO] [stdout] test ch8_chapter_close_sets_completion_flag ... ok [INFO] [stdout] test ch6_has_chapter_close_scene ... ok [INFO] [stdout] test npc_ally_in_encounter_uses_behavior ... ok [INFO] [stdout] test departed_members_tracked_via_flags ... ok [INFO] [stdout] test ch8_chapter_close_has_memory_refs ... ok [INFO] [stdout] test cover_survives_partial_damage ... ok [INFO] [stdout] test partial_cover_position_exists ... ok [INFO] [stdout] test iron_ledger_archive_has_records ... ok [INFO] [stdout] test npc_behavior_variants_exist ... ok [INFO] [stdout] test npc_combatant_carries_behavior ... ok [INFO] [stdout] test party_members_can_be_removed_and_readded ... ok [INFO] [stdout] test position_states_are_comprehensive ... ok [INFO] [stdout] test pressure_actions_blocked_after_resolution ... ok [INFO] [stdout] test pressure_bar_at_fail_threshold_means_failure ... ok [INFO] [stdout] test pressure_bar_tracks_current_max_fail ... ok [INFO] [stdout] test pressure_engine_action_modifies_bar ... ok [INFO] [stdout] test pressure_engine_creates_with_bars ... ok [INFO] [stdout] test pressure_failure_triggers_at_threshold ... ok [INFO] [stdout] test pressure_success_when_all_bars_above_fail ... ok [INFO] [stdout] test protective_npc_behavior_is_distinct ... ok [INFO] [stdout] test reassembly_fails_with_insufficient_returns ... ok [INFO] [stdout] test reassembly_requires_enough_returning_allies ... ok [INFO] [stdout] test relay_evidence_differs_by_branch ... ok [INFO] [stdout] test returned_flags_track_reassembly ... ok [INFO] [stdout] test skill_registry_get_variant_returns_age_specific_stats ... ok [INFO] [stdout] test verification_result_carries_proof ... ok [INFO] [stdout] test young_man_variant_falls_back_similarly ... ok [INFO] [stdout] test youth_variant_differs_from_adult_variant ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 38 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stderr] Running tests/feature_wave3.rs (/opt/rustwide/target/debug/deps/feature_wave3-69fe7705b3ed0191) [INFO] [stdout] [INFO] [stdout] running 33 tests [INFO] [stdout] test bleeding_per_turn_impact_deals_damage ... ok [INFO] [stdout] test cascade_nerve_damage_is_bounded ... ok [INFO] [stdout] test ch10_hearing_has_sequence_dependent_lines ... ok [INFO] [stdout] test ch10_hearing_scene_exists ... ok [INFO] [stdout] test auto_save_creates_file_in_autosave_slot ... ok [INFO] [stdout] test ch13_first_contact_has_order_dependent_choices ... ok [INFO] [stdout] test autosave_overwrites_previous ... ok [INFO] [stdout] test ch13_first_contact_scene_exists ... ok [INFO] [stdout] test ch15_testament_has_expanded_content_per_ending ... ok [INFO] [stdout] test ch15_testament_scene_exists ... ok [INFO] [stdout] test ch15_testament_has_multiple_endings ... ok [INFO] [stdout] test cooldown_turns_field_exists_on_skill_cost ... ok [INFO] [stdout] test cooldown_can_be_set_on_encounter_state ... ok [INFO] [stdout] test cooldown_zero_means_no_cooldown ... ok [INFO] [stdout] test effects_expire_when_duration_reaches_zero ... ok [INFO] [stdout] test autosave_is_loadable ... ok [INFO] [stdout] test error_screen_holds_message ... ok [INFO] [stdout] test error_screen_variant_exists ... ok [INFO] [stdout] test multiple_enemies_can_panic_independently ... ok [INFO] [stdout] test encounter_state_has_cooldowns_map ... ok [INFO] [stdout] test inspired_and_suppressed_have_no_per_turn_damage ... ok [INFO] [stdout] test nerve_break_sets_panicked_flag ... ok [INFO] [stdout] test pause_screen_variant_exists ... ok [INFO] [stdout] test delete_save_removes_file ... ok [INFO] [stdout] test delete_nonexistent_slot_returns_error ... ok [INFO] [stdout] test reload_action_executes_without_panic ... ok [INFO] [stdout] test reload_action_variant_exists ... ok [INFO] [stdout] test status_effect_can_be_applied_to_party_member ... ok [INFO] [stdout] test delete_save_is_idempotent_error ... ok [INFO] [stdout] test status_effect_can_be_applied_with_duration ... ok [INFO] [stdout] test status_effect_variants_exist ... ok [INFO] [stdout] test nerve_break_on_party_member_is_trackable ... ok [INFO] [stdout] test stunned_per_turn_impact_skips_turn ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 33 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/feature_wave4.rs (/opt/rustwide/target/debug/deps/feature_wave4-7df4b5cc2a30eb22) [INFO] [stdout] [INFO] [stdout] running 29 tests [INFO] [stdout] test confirm_quit_carries_return_screen ... ok [INFO] [stdout] test jump_point_convoy_age_transition ... ok [INFO] [stdout] test combo_resets_on_line_switch ... ok [INFO] [stdout] test combo_multiplier_applied_to_damage ... ok [INFO] [stdout] test combo_second_use_gives_bonus ... ok [INFO] [stdout] test combo_third_use_max_bonus ... ok [INFO] [stdout] test combo_first_use_no_bonus ... ok [INFO] [stdout] test fear_cascade_triggers_on_nerve_break ... ok [INFO] [stdout] test combo_reset_clears ... ok [INFO] [stdout] test apply_terrain_effects_hits_all_combatants ... ok [INFO] [stdout] test cooldowns_tick_on_new_round ... ok [INFO] [stdout] test npc_ally_uses_named_action_selection ... ok [INFO] [stdout] test jump_point_cascading_carries_flags ... ok [INFO] [stdout] test rest_recovery_heals_minor_only ... ok [INFO] [stdout] test jump_points_always_include_galen ... ok [INFO] [stdout] test settings_default_text_speed ... ok [INFO] [stdout] test terrain_modifier_types_exist ... ok [INFO] [stdout] test screen_variants_constructable ... ok [INFO] [stdout] test rest_recovery_skips_major ... ok [INFO] [stdout] test settings_apply_text_speed ... ok [INFO] [stdout] test settings_text_speed_clamped ... ok [INFO] [stdout] test wound_recover_without_ada_fails ... ok [INFO] [stdout] test settings_save_load_round_trip ... ok [INFO] [stdout] test terrain_effects_applied_on_round_boundary ... ok [INFO] [stdout] test save_no_backup_on_first_write ... ok [INFO] [stdout] test terrain_modifiers_stack ... ok [INFO] [stdout] test save_backup_created_on_overwrite ... ok [INFO] [stdout] test wound_recover_with_ada_removes_wound ... ok [INFO] [stdout] test terrain_modifiers_apply_and_check ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 29 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/fifteen_years_gone.rs (/opt/rustwide/target/debug/deps/fifteen_years_gone-df45692f4accfe74) [INFO] [stdout] [INFO] [stdout] running 7 tests [INFO] [stdout] test older_galen_feels_necessary_not_weaker ... ok [INFO] [stdout] test wrong_history_is_becoming_permanent ... ok [INFO] [stdout] test older_galen_with_modified_context_does_not_panic ... ok [INFO] [stdout] test return_is_not_nostalgia ... ok [INFO] [stdout] test relay_branch_echoes_in_return ... ok [INFO] [stdout] test first_contact_is_selective ... ok [INFO] [stdout] test chapter_13_full_path ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/full_playthrough.rs (/opt/rustwide/target/debug/deps/full_playthrough-7b998012deb8cd6b) [INFO] [stdout] [INFO] [stdout] running 5 tests [INFO] [stdout] test chapter_progression_gates_correctly ... ok [INFO] [stdout] test all_jump_points_create_valid_states ... ok [INFO] [stdout] test state_carries_across_chapter_boundaries ... ok [INFO] [stdout] test prologue_scene_chain_plays_through ... ok [INFO] [stderr] Running tests/fuse_country.rs (/opt/rustwide/target/debug/deps/fuse_country-3e0cf5a885a5d165) [INFO] [stdout] test save_load_mid_playthrough_preserves_state ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 10 tests [INFO] [stdout] test environmental_combat_is_real_system ... ok [INFO] [stdout] test fuse_charges_have_varied_timing ... ok [INFO] [stdout] test lucien_is_hateable ... ok [INFO] [stdout] test lucien_damage_before_face ... ok [INFO] [stdout] test galen_shoots_fuse_with_steady_aim ... ok [INFO] [stdout] test rosa_physically_disarms ... ok [INFO] [stdout] test structural_collapse_changes_battlefield ... ok [INFO] [stdout] test lucien_not_recruited_in_ch6 ... ok [INFO] [stdout] test trestle_has_fuse_state_and_cover ... ok [INFO] [stdout] test chapter_6_lucien_decision_variants ... ok [INFO] [stderr] Running tests/iron_ledger.rs (/opt/rustwide/target/debug/deps/iron_ledger-a392d94cc5f8dc97) [INFO] [stdout] [INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 7 tests [INFO] [stdout] test relay_truths_converge_in_archive ... ok [INFO] [stdout] test lucien_custody_changes_access ... ok [INFO] [stdout] test chapter_7_full_path_with_lucien ... ok [INFO] [stdout] test lucien_is_necessary_before_forgivable ... ok [INFO] [stdout] test no_clean_institutional_win ... ok [INFO] [stdout] test three_approaches_different_compromises ... ok [INFO] [stderr] Running tests/long_wire.rs (/opt/rustwide/target/debug/deps/long_wire-4bcf24fd59793f47) [INFO] [stdout] test archive_convergence_scene_branches ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 7 tests [INFO] [stdout] test assignment_is_character ... ok [INFO] [stdout] test truth_moves_by_time ... ok [INFO] [stdout] test no_single_team_does_everything ... ok [INFO] [stdout] test eli_returns_changed ... ok [INFO] [stdout] test three_assignments_three_textures ... ok [INFO] [stdout] test synergy_reflects_relationships ... ok [INFO] [stdout] test chapter_9_full_path ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/morrow_crossing.rs (/opt/rustwide/target/debug/deps/morrow_crossing-ac50ff695831d960) [INFO] [stdout] [INFO] [stdout] running 3 tests [INFO] [stdout] test divergent_path_homestead_first ... ok [INFO] [stdout] test two_paths_different_biographies ... ok [INFO] [stdout] test golden_path_town_direct ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/names_in_dust.rs (/opt/rustwide/target/debug/deps/names_in_dust-ddbb235434541c00) [INFO] [stdout] [INFO] [stdout] running 7 tests [INFO] [stdout] test all_scenes_are_available ... ok [INFO] [stdout] test nonexistent_scene_returns_none ... ok [INFO] [stdout] test last_road_has_memory_ref_to_ch14 ... ok [INFO] [stdout] test separations_set_departure_flags ... ok [INFO] [stdout] test last_road_completes_adult_arc ... ok [INFO] [stderr] Running tests/old_friends.rs (/opt/rustwide/target/debug/deps/old_friends-aab20e220cef06c7) [INFO] [stdout] test campfire_adds_memory_object ... ok [INFO] [stdout] test aftermath_sets_ch12_started ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test chapter_14_feels_necessary ... ok [INFO] [stdout] test reassembly_is_selective_not_total ... ok [INFO] [stdout] test old_chemistry_is_changed_not_restored ... ok [INFO] [stdout] test eli_still_has_the_ledger ... ok [INFO] [stdout] test each_return_carries_distinct_truth ... ok [INFO] [stdout] test chapter_14_full_path ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/pressure_encounters.rs (/opt/rustwide/target/debug/deps/pressure_encounters-8df7dd4d632e7e7d) [INFO] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test crowd_pressure_has_ringleaders ... ok [INFO] [stdout] test escort_pressure_has_cargo ... ok [INFO] [stdout] test pressure_action_has_delta ... ok [INFO] [stdout] test public_reckoning_has_five_bars ... ok [INFO] [stdout] test pressure_bar_tracks_state ... ok [INFO] [stdout] test transmission_race_has_channels ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/prologue.rs (/opt/rustwide/target/debug/deps/prologue-7d8713072739a8cd) [INFO] [stdout] [INFO] [stdout] running 10 tests [INFO] [stdout] test age_phase_is_adult_at_prologue ... ok [INFO] [stdout] test beat5_homestead_consequence_in_return ... ok [INFO] [stdout] test prologue_branch_homestead_first ... ok [INFO] [stdout] test beat5_town_direct_consequence_in_return ... ok [INFO] [stdout] test relay_triage_nella_sets_branch ... ok [INFO] [stdout] test relay_triage_papers_sets_branch ... ok [INFO] [stdout] test prologue_entry_scene_routing ... ok [INFO] [stdout] test prologue_branch_town_direct ... ok [INFO] [stdout] test prologue_poster_exists_and_has_choices ... ok [INFO] [stdout] test relay_triage_tom_sets_branch ... ok [INFO] [stderr] Running tests/reassembly.rs (/opt/rustwide/target/debug/deps/reassembly-d037dd3462c6db5c) [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] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test boundary_exactly_three_body_returns ... ok [INFO] [stdout] test cannot_approach_with_too_few_body_returns ... ok [INFO] [stdout] test can_approach_with_enough_body_returns ... ok [INFO] [stdout] test return_modes_are_diverse ... ok [INFO] [stdout] test each_ally_carries_truth_and_tension ... ok [INFO] [stdout] test chapter_14_reassembly_has_five_allies ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/ropehouse_blood.rs (/opt/rustwide/target/debug/deps/ropehouse_blood-a5a0d20ede0ee608) [INFO] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test party_argument_has_memory ... ok [INFO] [stdout] test rosa_is_a_person ... ok [INFO] [stdout] test full_party_feels_real ... ok [INFO] [stdout] test chapter_4_full_path_negotiate ... ok [INFO] [stdout] test chapter_4_full_path_force ... ok [INFO] [stdout] test three_stances_different_relationships ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/saints_mile_again.rs (/opt/rustwide/target/debug/deps/saints_mile_again-a7b5569b599219b8) [INFO] [stdout] [INFO] [stdout] running 7 tests [INFO] [stdout] test four_axes_four_legacies ... ok [INFO] [stdout] test ending_reads_run_state ... ok [INFO] [stdout] test voss_confrontation_is_about_authorship ... ok [INFO] [stdout] test each_ally_contributes_distinct_final_truth ... ok [INFO] [stdout] test bell_remains_unresolved ... ok [INFO] [stdout] test testament_reflects_choice ... ok [INFO] [stdout] test chapter_15_the_game_ends ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/saints_mile_convoy.rs (/opt/rustwide/target/debug/deps/saints_mile_convoy-8c001efb9991e818) [INFO] [stdout] [INFO] [stdout] running 3 tests [INFO] [stdout] test convoy_full_path_save_tom ... ok [INFO] [stdout] test relay_three_branches_diverge ... ok [INFO] [stdout] test convoy_memory_objects_persist ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/scene_system.rs (/opt/rustwide/target/debug/deps/scene_system-c81d5dad72a04082) [INFO] [stdout] [INFO] [stdout] running 11 tests [INFO] [stdout] test choice_filtering_locked_vs_available ... ok [INFO] [stdout] test condition_flag_evaluation ... ok [INFO] [stdout] test choice_unlocked_by_flag ... ok [INFO] [stdout] test choice_unlocked_by_party_member ... ok [INFO] [stdout] test condition_prologue_choice_evaluation ... ok [INFO] [stdout] test condition_relay_branch_evaluation ... ok [INFO] [stdout] test condition_reputation_all_operators ... ok [INFO] [stdout] test effect_set_relationship ... ok [INFO] [stdout] test effect_set_flag ... ok [INFO] [stdout] test effect_unlock_skill ... ok [INFO] [stdout] test scene_level_condition_gates_entire_scene ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/split_party.rs (/opt/rustwide/target/debug/deps/split_party-689e52f4b244bcbf) [INFO] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test evaluate_synergy_strong_pairings ... ok [INFO] [stdout] test hostile_signal_tower_still_succeeds ... ok [INFO] [stdout] test evaluate_synergy_volatile_and_hostile ... ok [INFO] [stdout] test long_wire_split_creates_three_teams ... ok [INFO] [stdout] test resolve_team_produces_flags ... ok [INFO] [stdout] test witness_route_eli_miriam_special_report ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/state_systems.rs (/opt/rustwide/target/debug/deps/state_systems-62fd10ebd76f26f4) [INFO] [stdout] [INFO] [stdout] running 14 tests [INFO] [stdout] test branch_verification_counts_are_consistent ... ok [INFO] [stdout] test branch_verification_is_branch_specific ... ok [INFO] [stdout] test burned_mission_has_all_domains ... ok [INFO] [stdout] test convergence_requires_all_domains ... ok [INFO] [stdout] test correct_reader_reveals_fragment ... ok [INFO] [stdout] test discovered_count_tracks_correctly ... ok [INFO] [stdout] test fragment_cannot_be_read_twice ... ok [INFO] [stdout] test iron_ledger_archive_has_records ... ok [INFO] [stdout] test lucien_archive_contribution_varies_by_status ... ok [INFO] [stdout] test miriam_silent_in_ch4 ... ok [INFO] [stdout] test reactions_carry_position_text ... ok [INFO] [stdout] test unknown_stance_produces_empty_reactions ... ok [INFO] [stdout] test water_claim_stances_produce_different_reactions ... ok [INFO] [stdout] test wrong_reader_cannot_reveal ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/ui_logic.rs (/opt/rustwide/target/debug/deps/ui_logic-75e9f0b1d3020bee) [INFO] [stdout] [INFO] [stdout] running 15 tests [INFO] [stdout] test age_labels_are_descriptive ... ok [INFO] [stdout] test ammo_color_thresholds ... ok [INFO] [stdout] test complete_all_finishes_instantly ... ok [INFO] [stdout] test age_menu_titles_differ ... ok [INFO] [stdout] test crisis_pacing_instant_reveal ... ok [INFO] [stdout] test empty_lines_complete_immediately ... ok [INFO] [stdout] test exploration_pacing_is_gradual ... ok [INFO] [stdout] test gauge_color_thresholds ... ok [INFO] [stdout] test intimate_pacing_is_slower ... ok [INFO] [stdout] test line_visible_tracks_correctly ... ok [INFO] [stdout] test pacing_border_varies ... ok [INFO] [stdout] test pacing_reveal_rates_ordered ... ok [INFO] [stdout] test skip_line_completes_then_advances ... ok [INFO] [stdout] test skip_line_returns_false_when_complete ... ok [INFO] [stdout] test visible_chars_returns_correct_values ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/version.rs (/opt/rustwide/target/debug/deps/version-77a1313e03564868) [INFO] [stdout] [INFO] [stdout] running 3 tests [INFO] [stdout] test cargo_version_is_valid_semver ... ok [INFO] [stdout] test version_flag_prints_version ... ok [INFO] [stdout] test help_flag_prints_help ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Doc-tests saints_mile [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" "f163a87d462ffbca712e4c985dee1b3187917786592de5c28fea40befdefce2e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f163a87d462ffbca712e4c985dee1b3187917786592de5c28fea40befdefce2e", kill_on_drop: false }` [INFO] [stdout] f163a87d462ffbca712e4c985dee1b3187917786592de5c28fea40befdefce2e