[INFO] fetching crate terrr 0.1.1...
[INFO] building terrr-0.1.1 against try#d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6 for pr-146237-1
[INFO] extracting crate terrr 0.1.1 into /workspace/builds/worker-3-tc2/source
[INFO] started tweaking crates.io crate terrr 0.1.1
[INFO] finished tweaking crates.io crate terrr 0.1.1
[INFO] tweaked toml for crates.io crate terrr 0.1.1 written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate terrr 0.1.1 on toolchain d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate terrr 0.1.1 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" "+d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 3d3072f2b7667b8ffff0987b276113f949f2dfc33ad595724c70e1873ca535ed
[INFO] running `Command { std: "docker" "start" "-a" "3d3072f2b7667b8ffff0987b276113f949f2dfc33ad595724c70e1873ca535ed", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3d3072f2b7667b8ffff0987b276113f949f2dfc33ad595724c70e1873ca535ed", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3d3072f2b7667b8ffff0987b276113f949f2dfc33ad595724c70e1873ca535ed", kill_on_drop: false }`
[INFO] [stdout] 3d3072f2b7667b8ffff0987b276113f949f2dfc33ad595724c70e1873ca535ed
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b8fa83811f3140b8e3242b1b3e4dada384321e4e3e906198bff16b50e36c81e5
[INFO] running `Command { std: "docker" "start" "-a" "b8fa83811f3140b8e3242b1b3e4dada384321e4e3e906198bff16b50e36c81e5", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.170
[INFO] [stderr]    Compiling proc-macro2 v1.0.93
[INFO] [stderr]    Compiling unicode-ident v1.0.17
[INFO] [stderr]    Compiling cfg-if v1.0.0
[INFO] [stderr]    Compiling autocfg v1.4.0
[INFO] [stderr]    Compiling rustversion v1.0.19
[INFO] [stderr]    Compiling parking_lot_core v0.9.10
[INFO] [stderr]    Compiling signal-hook v0.3.17
[INFO] [stderr]    Compiling smallvec v1.14.0
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling log v0.4.26
[INFO] [stderr]    Compiling bitflags v2.8.0
[INFO] [stderr]    Compiling paste v1.0.15
[INFO] [stderr]    Compiling unicode-width v0.1.14
[INFO] [stderr]    Compiling foldhash v0.1.4
[INFO] [stderr]    Compiling lock_api v0.4.12
[INFO] [stderr]    Compiling heck v0.4.1
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]    Compiling anyhow v1.0.96
[INFO] [stderr]    Compiling quote v1.0.38
[INFO] [stderr]    Compiling either v1.14.0
[INFO] [stderr]    Compiling pulldown-cmark v0.9.6
[INFO] [stderr]    Compiling itertools v0.11.0
[INFO] [stderr]    Compiling getopts v0.2.21
[INFO] [stderr]    Compiling hashbrown v0.15.2
[INFO] [stderr]    Compiling cassowary v0.3.0
[INFO] [stderr]    Compiling syn v2.0.98
[INFO] [stderr]    Compiling indoc v2.0.5
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]    Compiling signal-hook-registry v1.4.2
[INFO] [stderr]    Compiling mio v0.8.11
[INFO] [stderr]    Compiling getrandom v0.2.15
[INFO] [stderr]    Compiling lru v0.12.5
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling parking_lot v0.12.3
[INFO] [stderr]    Compiling unicase v2.8.1
[INFO] [stderr]    Compiling memchr v2.7.4
[INFO] [stderr]    Compiling signal-hook-mio v0.2.4
[INFO] [stderr]    Compiling crossterm v0.27.0
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling strum_macros v0.25.3
[INFO] [stderr]    Compiling zerocopy v0.7.35
[INFO] [stderr]    Compiling ppv-lite86 v0.2.20
[INFO] [stderr]    Compiling strum v0.25.0
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling ratatui v0.24.0
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling terrr v0.1.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `rand::Rng`
[INFO] [stdout]  --> src/game/commands.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rand::Rng; // Used for random chances in commands
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]   --> src/game/commands.rs:91:84
[INFO] [stdout]    |
[INFO] [stdout] 91 |     pub fn cmd_watcher(_terminal: &mut TerminalState, _fs: &mut VirtualFileSystem, time: &GameTime, _args: &[&str]) -> CommandResult {
[INFO] [stdout]    |                                                                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/game/app.rs:54:13
[INFO] [stdout]    |
[INFO] [stdout] 54 |         let mut terminal_controller = TerminalController::new();
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `last_update` is never read
[INFO] [stdout]   --> src/ui/menu.rs:69:9
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub struct MainMenu {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub last_update: Instant,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cursor_position` is never read
[INFO] [stdout]    --> src/game/state.rs:111:9
[INFO] [stdout]     |
[INFO] [stdout]  97 | pub struct TerminalState {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub cursor_position: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `hint` are never read
[INFO] [stdout]    --> src/game/state.rs:131:9
[INFO] [stdout]     |
[INFO] [stdout] 130 | pub struct Flag {
[INFO] [stdout]     |            ---- fields in this struct
[INFO] [stdout] 131 |     pub id: String,
[INFO] [stdout]     |         ^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub hint: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Flag` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `story_completed` is never read
[INFO] [stdout]    --> src/game/state.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub struct WinConditions {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub story_completed: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `start_time` is never read
[INFO] [stdout]    --> src/game/state.rs:199:9
[INFO] [stdout]     |
[INFO] [stdout] 196 | pub struct AppState {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 199 |     pub start_time: Instant,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `executable` and `to_string` are never used
[INFO] [stdout]   --> src/game/fs.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl Permissions {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn executable() -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn to_string(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `modified` and `created` are never read
[INFO] [stdout]   --> src/game/fs.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct VirtualFile {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub modified: SystemTime,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 57 |     pub created: SystemTime,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `VirtualFile` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `executable` is never used
[INFO] [stdout]   --> src/game/fs.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | impl VirtualFile {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn executable(name: &str, content: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `permissions` and `created` are never read
[INFO] [stdout]    --> src/game/fs.rs:105:9
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub struct VirtualDirectory {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] 104 |     pub name: String,
[INFO] [stdout] 105 |     pub permissions: Permissions,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 106 |     pub modified: SystemTime,
[INFO] [stdout] 107 |     pub created: SystemTime,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `VirtualDirectory` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_file_mut` is never used
[INFO] [stdout]    --> src/game/fs.rs:151:12
[INFO] [stdout]     |
[INFO] [stdout] 113 | impl VirtualDirectory {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn get_file_mut(&mut self, name: &str) -> Option<&mut VirtualFile> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_file_mut` and `write_file` are never used
[INFO] [stdout]    --> src/game/fs.rs:309:12
[INFO] [stdout]     |
[INFO] [stdout] 180 | impl VirtualFileSystem {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 309 |     pub fn get_file_mut(&mut self, path: &str) -> Option<&mut VirtualFile> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 336 |     pub fn write_file(&mut self, path: &str, content: &str) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_string` is never used
[INFO] [stdout]   --> src/game/terminal.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl CommandResult {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] 20 |     pub fn to_string(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `win_conditions` is never read
[INFO] [stdout]   --> src/game/terminal.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct TerminalController {
[INFO] [stdout]    |            ------------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub win_conditions: crate::game::state::WinConditions,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/game/state.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |         self.hour >= 0 && self.hour < 6
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 29.06s
[INFO] running `Command { std: "docker" "inspect" "b8fa83811f3140b8e3242b1b3e4dada384321e4e3e906198bff16b50e36c81e5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b8fa83811f3140b8e3242b1b3e4dada384321e4e3e906198bff16b50e36c81e5", kill_on_drop: false }`
[INFO] [stdout] b8fa83811f3140b8e3242b1b3e4dada384321e4e3e906198bff16b50e36c81e5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] fb3e08e4f65755401cd8f8510e229f2200e38b9afb56294af2e777be37cb95af
[INFO] running `Command { std: "docker" "start" "-a" "fb3e08e4f65755401cd8f8510e229f2200e38b9afb56294af2e777be37cb95af", kill_on_drop: false }`
[INFO] [stderr]    Compiling terrr v0.1.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `rand::Rng`
[INFO] [stdout]  --> src/game/commands.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rand::Rng; // Used for random chances in commands
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/game/app.rs:54:13
[INFO] [stdout]    |
[INFO] [stdout] 54 |         let mut terminal_controller = TerminalController::new();
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]   --> src/game/commands.rs:91:84
[INFO] [stdout]    |
[INFO] [stdout] 91 |     pub fn cmd_watcher(_terminal: &mut TerminalState, _fs: &mut VirtualFileSystem, time: &GameTime, _args: &[&str]) -> CommandResult {
[INFO] [stdout]    |                                                                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `last_update` is never read
[INFO] [stdout]   --> src/ui/menu.rs:69:9
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub struct MainMenu {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub last_update: Instant,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cursor_position` is never read
[INFO] [stdout]    --> src/game/state.rs:111:9
[INFO] [stdout]     |
[INFO] [stdout]  97 | pub struct TerminalState {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub cursor_position: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `hint` are never read
[INFO] [stdout]    --> src/game/state.rs:131:9
[INFO] [stdout]     |
[INFO] [stdout] 130 | pub struct Flag {
[INFO] [stdout]     |            ---- fields in this struct
[INFO] [stdout] 131 |     pub id: String,
[INFO] [stdout]     |         ^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub hint: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Flag` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `story_completed` is never read
[INFO] [stdout]    --> src/game/state.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub struct WinConditions {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub story_completed: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `start_time` is never read
[INFO] [stdout]    --> src/game/state.rs:199:9
[INFO] [stdout]     |
[INFO] [stdout] 196 | pub struct AppState {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 199 |     pub start_time: Instant,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `executable` and `to_string` are never used
[INFO] [stdout]   --> src/game/fs.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl Permissions {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn executable() -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn to_string(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `modified` and `created` are never read
[INFO] [stdout]   --> src/game/fs.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct VirtualFile {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub modified: SystemTime,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 57 |     pub created: SystemTime,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `VirtualFile` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `executable` is never used
[INFO] [stdout]   --> src/game/fs.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | impl VirtualFile {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn executable(name: &str, content: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `permissions` and `created` are never read
[INFO] [stdout]    --> src/game/fs.rs:105:9
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub struct VirtualDirectory {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] 104 |     pub name: String,
[INFO] [stdout] 105 |     pub permissions: Permissions,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 106 |     pub modified: SystemTime,
[INFO] [stdout] 107 |     pub created: SystemTime,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `VirtualDirectory` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_file_mut` is never used
[INFO] [stdout]    --> src/game/fs.rs:151:12
[INFO] [stdout]     |
[INFO] [stdout] 113 | impl VirtualDirectory {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn get_file_mut(&mut self, name: &str) -> Option<&mut VirtualFile> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_file_mut` and `write_file` are never used
[INFO] [stdout]    --> src/game/fs.rs:309:12
[INFO] [stdout]     |
[INFO] [stdout] 180 | impl VirtualFileSystem {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 309 |     pub fn get_file_mut(&mut self, path: &str) -> Option<&mut VirtualFile> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 336 |     pub fn write_file(&mut self, path: &str, content: &str) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_string` is never used
[INFO] [stdout]   --> src/game/terminal.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl CommandResult {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] 20 |     pub fn to_string(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `win_conditions` is never read
[INFO] [stdout]   --> src/game/terminal.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct TerminalController {
[INFO] [stdout]    |            ------------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub win_conditions: crate::game::state::WinConditions,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/game/state.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |         self.hour >= 0 && self.hour < 6
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.70s
[INFO] running `Command { std: "docker" "inspect" "fb3e08e4f65755401cd8f8510e229f2200e38b9afb56294af2e777be37cb95af", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fb3e08e4f65755401cd8f8510e229f2200e38b9afb56294af2e777be37cb95af", kill_on_drop: false }`
[INFO] [stdout] fb3e08e4f65755401cd8f8510e229f2200e38b9afb56294af2e777be37cb95af
