[INFO] cloning repository https://github.com/pnor/terminal-dungeon
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/pnor/terminal-dungeon" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpnor%2Fterminal-dungeon", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpnor%2Fterminal-dungeon'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 3ad5c4a854b9069c4bc8be4b4abe65bd6461ab5b
[INFO] checking pnor/terminal-dungeon against try#66388cc165a6c4ac98c074dc9f0281ff23528c55 for pr-150727
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpnor%2Fterminal-dungeon" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/pnor/terminal-dungeon
[INFO] finished tweaking git repo https://github.com/pnor/terminal-dungeon
[INFO] tweaked toml for git repo https://github.com/pnor/terminal-dungeon written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/pnor/terminal-dungeon on toolchain 66388cc165a6c4ac98c074dc9f0281ff23528c55
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+66388cc165a6c4ac98c074dc9f0281ff23528c55" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/pnor/terminal-dungeon 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" "+66388cc165a6c4ac98c074dc9f0281ff23528c55" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+66388cc165a6c4ac98c074dc9f0281ff23528c55" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 88e09a65558a1be946d387f4b5605eb0c89911fa7459c2236c3bc74b941205e3
[INFO] running `Command { std: "docker" "start" "-a" "88e09a65558a1be946d387f4b5605eb0c89911fa7459c2236c3bc74b941205e3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "88e09a65558a1be946d387f4b5605eb0c89911fa7459c2236c3bc74b941205e3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "88e09a65558a1be946d387f4b5605eb0c89911fa7459c2236c3bc74b941205e3", kill_on_drop: false }`
[INFO] [stdout] 88e09a65558a1be946d387f4b5605eb0c89911fa7459c2236c3bc74b941205e3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+66388cc165a6c4ac98c074dc9f0281ff23528c55" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8436e99124be4b5f5af4b0003cb2f3248434863d183d4397bcd6d49630fc5395
[INFO] running `Command { std: "docker" "start" "-a" "8436e99124be4b5f5af4b0003cb2f3248434863d183d4397bcd6d49630fc5395", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.81
[INFO] [stderr]    Compiling libm v0.2.1
[INFO] [stderr]    Compiling num-traits v0.2.14
[INFO] [stderr]    Compiling crossbeam-utils v0.8.1
[INFO] [stderr]    Compiling memoffset v0.6.1
[INFO] [stderr]    Compiling const_fn v0.4.5
[INFO] [stderr]    Compiling proc-macro2 v1.0.24
[INFO] [stderr]    Compiling syn v1.0.57
[INFO] [stderr]    Compiling rayon-core v1.9.0
[INFO] [stderr]    Compiling log v0.4.11
[INFO] [stderr]    Compiling memchr v2.3.4
[INFO] [stderr]     Checking smallvec v1.5.1
[INFO] [stderr]    Compiling nom v5.1.2
[INFO] [stderr]    Compiling rayon v1.5.0
[INFO] [stderr]    Compiling num-integer v0.1.44
[INFO] [stderr]    Compiling serde v1.0.124
[INFO] [stderr]    Compiling quote v1.0.8
[INFO] [stderr]     Checking crossbeam-epoch v0.9.1
[INFO] [stderr]     Checking crossbeam-channel v0.5.0
[INFO] [stderr]     Checking getrandom v0.1.16
[INFO] [stderr]     Checking num_cpus v1.13.0
[INFO] [stderr]    Compiling generic-array v0.14.4
[INFO] [stderr]    Compiling hashbrown v0.7.2
[INFO] [stderr]     Checking crossbeam-deque v0.8.0
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]    Compiling num-rational v0.3.2
[INFO] [stderr]    Compiling crossbeam-utils v0.7.2
[INFO] [stderr]     Checking either v1.6.1
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking parking_lot_core v0.8.2
[INFO] [stderr]     Checking mio v0.7.7
[INFO] [stderr]     Checking num-complex v0.3.1
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking approx v0.4.0
[INFO] [stderr]     Checking signal-hook-registry v1.3.0
[INFO] [stderr]     Checking lock_api v0.4.2
[INFO] [stderr]    Compiling paste v1.0.4
[INFO] [stderr]     Checking ahash v0.3.8
[INFO] [stderr]     Checking parking_lot v0.11.1
[INFO] [stderr]     Checking matrixmultiply v0.2.4
[INFO] [stderr]     Checking simba v0.3.1
[INFO] [stderr]     Checking rand_distr v0.3.0
[INFO] [stderr]     Checking signal-hook v0.1.17
[INFO] [stderr]     Checking maybe-uninit v2.0.0
[INFO] [stderr]     Checking arrayvec v0.5.2
[INFO] [stderr]     Checking mopa v0.2.2
[INFO] [stderr]     Checking atom v0.3.6
[INFO] [stderr]     Checking crossterm v0.18.2
[INFO] [stderr]     Checking crossbeam-queue v0.2.3
[INFO] [stderr]    Compiling ntest_proc_macro_helper v0.7.3
[INFO] [stderr]     Checking tynm v0.1.6
[INFO] [stderr]     Checking tuple_utils v0.3.0
[INFO] [stderr]     Checking unicode-segmentation v1.7.1
[INFO] [stderr]     Checking shrev v1.1.1
[INFO] [stderr]     Checking float-cmp v0.8.0
[INFO] [stderr]     Checking tui v0.14.0
[INFO] [stderr]     Checking shred v0.10.2
[INFO] [stderr]     Checking hibitset v0.6.3
[INFO] [stderr]    Compiling specs-derive v0.4.1
[INFO] [stderr]    Compiling ntest_test_cases v0.7.3
[INFO] [stderr]     Checking specs v0.16.1
[INFO] [stderr]    Compiling toml v0.5.8
[INFO] [stderr]    Compiling proc-macro-crate v0.1.5
[INFO] [stderr]    Compiling ntest_timeout v0.7.3
[INFO] [stderr]     Checking nalgebra v0.24.0
[INFO] [stderr]     Checking ntest v0.7.3
[INFO] [stderr]     Checking splines v4.0.0
[INFO] [stderr]     Checking terminal-dungeon v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr] 
[INFO] [stderr] thread 'rustc' (1048) panicked at /rustc-dev/66388cc165a6c4ac98c074dc9f0281ff23528c55/compiler/rustc_ast/src/attr/mod.rs:302:36:
[INFO] [stderr] attribute is missing tokens: Attribute { kind: Normal(NormalAttr { item: AttrItem { unsafety: Default, path: Path { span: src/views/screen_manager.rs:573:5: 573:12 (#219), segments: [PathSegment { ident: <test_trace>#219, id: NodeId(4294967040), args: None }], tokens: None }, args: Unparsed(Empty), tokens: None }, tokens: None }), id: AttrId(359), style: Outer, span: src/views/screen_manager.rs:573:5: 573:12 (#219) }
[INFO] [stderr] stack backtrace:
[INFO] [stderr]    0:     0x7530aa02bfa3 - <<std[7d609349af90bec6]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[75ca2badb63c4514]::fmt::Display>::fmt
[INFO] [stderr]    1:     0x7530aa60fb48 - core[75ca2badb63c4514]::fmt::write
[INFO] [stderr]    2:     0x7530aa042226 - <std[7d609349af90bec6]::sys::stdio::unix::Stderr as std[7d609349af90bec6]::io::Write>::write_fmt
[INFO] [stderr]    3:     0x7530aa001b98 - std[7d609349af90bec6]::panicking::default_hook::{closure#0}
[INFO] [stderr]    4:     0x7530aa01f833 - std[7d609349af90bec6]::panicking::default_hook
[INFO] [stderr]    5:     0x7530a900236a - std[7d609349af90bec6]::panicking::update_hook::<alloc[d7482eb0f1d19161]::boxed::Box<rustc_driver_impl[3f9d6dd912ac34bd]::install_ice_hook::{closure#1}>>::{closure#0}
[INFO] [stderr]    6:     0x7530aa01fb12 - std[7d609349af90bec6]::panicking::panic_with_hook
[INFO] [stderr]    7:     0x7530aa001c58 - std[7d609349af90bec6]::panicking::panic_handler::{closure#0}
[INFO] [stderr]    8:     0x7530a9ff89a9 - std[7d609349af90bec6]::sys::backtrace::__rust_end_short_backtrace::<std[7d609349af90bec6]::panicking::panic_handler::{closure#0}, !>
[INFO] [stderr]    9:     0x7530aa00372d - __rustc[69841a6cbc58d81d]::rust_begin_unwind
[INFO] [stderr]   10:     0x7530a6c38f9c - core[75ca2badb63c4514]::panicking::panic_fmt
[INFO] [stderr]   11:     0x7530ab3e0110 - <rustc_ast[333fca09df5738a4]::ast::Attribute>::token_trees
[INFO] [stderr]   12:     0x7530abc1c314 - <rustc_expand[a01ffc1bf52c2613]::expand::MacroExpander>::fully_expand_fragment
[INFO] [stderr]   13:     0x7530abbe65d2 - <rustc_expand[a01ffc1bf52c2613]::expand::MacroExpander>::expand_crate
[INFO] [stderr]   14:     0x7530aacf0af3 - rustc_interface[903e43df8d6bd657]::passes::configure_and_expand
[INFO] [stderr]   15:     0x7530ab807658 - rustc_interface[903e43df8d6bd657]::passes::resolver_for_lowering_raw
[INFO] [stderr]   16:     0x7530ab8073cd - rustc_query_impl[8c5349e00d64015e]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[8c5349e00d64015e]::query_impl::resolver_for_lowering_raw::dynamic_query::{closure#2}::{closure#0}, rustc_middle[2342951a64deba5]::query::erase::Erased<[u8; 16usize]>>
[INFO] [stderr]   17:     0x7530ab8073a7 - <rustc_query_impl[8c5349e00d64015e]::query_impl::resolver_for_lowering_raw::dynamic_query::{closure#2} as core[75ca2badb63c4514]::ops::function::FnOnce<(rustc_middle[2342951a64deba5]::ty::context::TyCtxt, ())>>::call_once
[INFO] [stderr]   18:     0x7530ab7ecb5f - rustc_query_system[d45be4fb383a0235]::query::plumbing::try_execute_query::<rustc_query_impl[8c5349e00d64015e]::DynamicConfig<rustc_query_system[d45be4fb383a0235]::query::caches::SingleCache<rustc_middle[2342951a64deba5]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[8c5349e00d64015e]::plumbing::QueryCtxt, false>
[INFO] [stderr]   19:     0x7530ab7ec6bc - rustc_query_impl[8c5349e00d64015e]::query_impl::resolver_for_lowering_raw::get_query_non_incr::__rust_end_short_backtrace
[INFO] [stderr]   20:     0x7530ab97127b - <rustc_interface[903e43df8d6bd657]::passes::create_and_enter_global_ctxt<core[75ca2badb63c4514]::option::Option<rustc_interface[903e43df8d6bd657]::queries::Linker>, rustc_driver_impl[3f9d6dd912ac34bd]::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core[75ca2badb63c4514]::ops::function::FnOnce<(&rustc_session[1e6875ba352dc1ba]::session::Session, rustc_middle[2342951a64deba5]::ty::context::CurrentGcx, alloc[d7482eb0f1d19161]::sync::Arc<rustc_data_structures[c82a87ce5cdbfc92]::jobserver::Proxy>, &std[7d609349af90bec6]::sync::once_lock::OnceLock<rustc_middle[2342951a64deba5]::ty::context::GlobalCtxt>, &rustc_data_structures[c82a87ce5cdbfc92]::sync::worker_local::WorkerLocal<rustc_middle[2342951a64deba5]::arena::Arena>, &rustc_data_structures[c82a87ce5cdbfc92]::sync::worker_local::WorkerLocal<rustc_hir[cc727ec2ba6ebdb5]::Arena>, rustc_driver_impl[3f9d6dd912ac34bd]::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
[INFO] [stderr]   21:     0x7530ab85ac98 - rustc_interface[903e43df8d6bd657]::interface::run_compiler::<(), rustc_driver_impl[3f9d6dd912ac34bd]::run_compiler::{closure#0}>::{closure#1}
[INFO] [stderr]   22:     0x7530ab6eac4e - std[7d609349af90bec6]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[903e43df8d6bd657]::util::run_in_thread_with_globals<rustc_interface[903e43df8d6bd657]::util::run_in_thread_pool_with_globals<rustc_interface[903e43df8d6bd657]::interface::run_compiler<(), rustc_driver_impl[3f9d6dd912ac34bd]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
[INFO] [stderr]   23:     0x7530ab6eaa20 - <std[7d609349af90bec6]::thread::lifecycle::spawn_unchecked<rustc_interface[903e43df8d6bd657]::util::run_in_thread_with_globals<rustc_interface[903e43df8d6bd657]::util::run_in_thread_pool_with_globals<rustc_interface[903e43df8d6bd657]::interface::run_compiler<(), rustc_driver_impl[3f9d6dd912ac34bd]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[75ca2badb63c4514]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stderr]   24:     0x7530ab6ed138 - <std[7d609349af90bec6]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stderr]   25:     0x7530a528aaa4 - <unknown>
[INFO] [stderr]   26:     0x7530a5317a64 - clone
[INFO] [stderr]   27:                0x0 - <unknown>
[INFO] [stderr] 
[INFO] [stderr] error: the compiler unexpectedly panicked. this is a bug.
[INFO] [stderr] 
[INFO] [stderr] note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md
[INFO] [stderr] 
[INFO] [stderr] note: please make sure that you have updated to the latest nightly
[INFO] [stderr] 
[INFO] [stderr] warning: the ICE couldn't be written to `/opt/rustwide/workdir/rustc-ice-2026-01-09T21_06_35-1044.txt`: Read-only file system (os error 30)
[INFO] [stderr] 
[INFO] [stderr] note: rustc 1.94.0-nightly (66388cc16 2026-01-08) running on x86_64-unknown-linux-gnu
[INFO] [stderr] 
[INFO] [stderr] note: compiler flags: -C embed-bitcode=no -C debuginfo=2
[INFO] [stderr] 
[INFO] [stderr] note: some of the compiler flags provided by cargo are hidden
[INFO] [stderr] 
[INFO] [stderr] query stack during panic:
[INFO] [stderr] #0 [resolver_for_lowering_raw] getting the resolver for lowering
[INFO] [stderr] end of query stack
[INFO] [stderr] error: could not compile `terminal-dungeon` (bin "terminal-dungeon" test)
[INFO] [stderr] 
[INFO] [stderr] Caused by:
[INFO] [stderr]   process didn't exit successfully: `/opt/rustwide/rustup-home/toolchains/66388cc165a6c4ac98c074dc9f0281ff23528c55/bin/rustc --crate-name terminal_dungeon --edition=2018 src/main.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --emit=dep-info,metadata -C embed-bitcode=no -C debuginfo=2 --test --check-cfg 'cfg(docsrs,test)' --check-cfg 'cfg(feature, values())' -C metadata=d3980d26bd213c53 -C extra-filename=-13261d125ab31602 --out-dir /opt/rustwide/target/debug/deps -L dependency=/opt/rustwide/target/debug/deps --extern crossterm=/opt/rustwide/target/debug/deps/libcrossterm-efcca47b19d51652.rmeta --extern float_cmp=/opt/rustwide/target/debug/deps/libfloat_cmp-e0315deca576ba28.rmeta --extern nalgebra=/opt/rustwide/target/debug/deps/libnalgebra-bb1324940423f3de.rmeta --extern ntest=/opt/rustwide/target/debug/deps/libntest-dab834134d51c675.rmeta --extern specs=/opt/rustwide/target/debug/deps/libspecs-c38ef76362e920a7.rmeta --extern splines=/opt/rustwide/target/debug/deps/libsplines-cb3df69a21995c49.rmeta --extern tui=/opt/rustwide/target/debug/deps/libtui-9bb86843bd5b6122.rmeta --cap-lints=forbid` (exit status: 101)
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: function `test_room` is never used
[INFO] [stdout]   --> src/world/map.rs:73:8
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub fn test_room() -> Map {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Shade` is never constructed
[INFO] [stdout]   --> src/entities/component.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct Shade {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AnimationProgress` is never constructed
[INFO] [stdout]   --> src/entities/component.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct AnimationProgress {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PositionAnimation` is never constructed
[INFO] [stdout]   --> src/entities/component.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub struct PositionAnimation {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `with_splines` are never used
[INFO] [stdout]   --> src/entities/component.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 78 | impl PositionAnimation {
[INFO] [stdout]    | ---------------------- associated functions in this implementation
[INFO] [stdout] 79 |     /// Create `PositionAnimation` that uses `interpolation` for entirety of both the x spline and the y spline
[INFO] [stdout] 80 |     fn new(start: Vector2<i32>, end: Vector2<i32>, interpolation: Interpolation<f32, i32>) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 93 |     fn with_splines(x_spline: Spline<f32, i32>, y_spline: Spline<f32, i32>) -> Self {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AppearanceAnimation` is never constructed
[INFO] [stdout]    --> src/entities/component.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub struct AppearanceAnimation {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `color_to_rgb` is never used
[INFO] [stdout]  --> src/utility/color_util.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn color_to_rgb(color: Color) -> Color {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/utility/text_canvas.rs:30:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl TextCanvas {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  30 |     pub fn for_map(map: &Map) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     pub fn set_character(&mut self, vec2: Vector2<usize>, character: char) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     pub fn add_modifier(&mut self, vec2: Vector2<usize>, modifier: Modifier) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn clear_modifiers(&mut self, vec2: Vector2<usize>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn set_fg_color(&mut self, vec2: Vector2<usize>, color: Color) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn set_bg_color(&mut self, vec2: Vector2<usize>, color: Color) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn apply_fg_color(&mut self, vec2: Vector2<usize>, color: Color, alpha: f64) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub fn apply_bg_color(&mut self, vec2: Vector2<usize>, color: Color, alpha: f64) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     fn apply_color(base_color: Color, color: Color, alpha: f64) -> Color {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]  --> src/utility/icon_spline.rs:6:6
[INFO] [stdout]   |
[INFO] [stdout] 6 | type Result<T> = std::result::Result<T, IconSplineConstructorError>;
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IconSpline` is never constructed
[INFO] [stdout]   --> src/utility/icon_spline.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct IconSpline {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `sample`, and `clamped_sample` are never used
[INFO] [stdout]   --> src/utility/icon_spline.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl IconSpline {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 20 |     fn new(mut icon_ranges: Vec<(f32, char)>) -> Result<Self> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     fn sample(&self, point: f32) -> Option<char> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     fn clamped_sample(&self, point: f32) -> Option<char> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_ranges` is never used
[INFO] [stdout]   --> src/utility/icon_spline.rs:43:4
[INFO] [stdout]    |
[INFO] [stdout] 43 | fn validate_ranges(icon_ranges: &Vec<(f32, f32)>) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_spline` is never used
[INFO] [stdout]   --> src/utility/icon_spline.rs:62:4
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn create_spline(icon_ranges: Vec<(f32, f32)>) -> Spline<f32, f32> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IconSplineConstructorError` is never constructed
[INFO] [stdout]   --> src/utility/icon_spline.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 79 | struct IconSplineConstructorError(Vec<(f32, f32)>);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FakeSource` is never constructed
[INFO] [stdout]   --> src/game/source.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct FakeSource {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/game/source.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl FakeSource {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 48 |
[INFO] [stdout] 49 |     pub fn new(mut events: Vec<Event>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/game/input_manager.rs:118:20
[INFO] [stdout]     |
[INFO] [stdout] 118 |     CrosstermError(crossterm::ErrorKind),
[INFO] [stdout]     |     -------------- ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `InputManagerError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 118 -     CrosstermError(crossterm::ErrorKind),
[INFO] [stdout] 118 +     CrosstermError(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/game/input_manager.rs:119:21
[INFO] [stdout]     |
[INFO] [stdout] 119 |     RecvTimoutERror(mpsc::RecvTimeoutError),
[INFO] [stdout]     |     --------------- ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `InputManagerError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 119 -     RecvTimoutERror(mpsc::RecvTimeoutError),
[INFO] [stdout] 119 +     RecvTimoutERror(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `draw_location`, and `add_screen_manager_callback` are never used
[INFO] [stdout]   --> src/views/popup.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait Popup {
[INFO] [stdout]    |           ----- associated items in this trait
[INFO] [stdout] ...
[INFO] [stdout] 11 |     fn new() -> Self where Self:Sized;
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     fn draw_location(&self) -> Rect;
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     fn add_screen_manager_callback(&mut self, callback: BoxedCallback);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `debug_new`, `pop_screen`, `push_popup`, and `pop_popup` are never used
[INFO] [stdout]    --> src/views/screen_manager.rs:42:12
[INFO] [stdout]     |
[INFO] [stdout]  34 | impl ScreenManager {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  42 |     pub fn debug_new(events: Vec<Event>) -> Result<ScreenManager> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn pop_screen(&mut self) -> Option<Box<dyn Screen>> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn push_popup(&mut self, popup: impl Popup + 'static) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn pop_popup(&mut self) -> Option<Box<dyn Popup>> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/views/screen_manager.rs:218:13
[INFO] [stdout]     |
[INFO] [stdout] 218 |     IoError(io::Error),
[INFO] [stdout]     |     ------- ^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ScreenManagerError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 218 -     IoError(io::Error),
[INFO] [stdout] 218 +     IoError(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/views/screen_manager.rs:219:20
[INFO] [stdout]     |
[INFO] [stdout] 219 |     CrosstermError(crossterm::ErrorKind),
[INFO] [stdout]     |     -------------- ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ScreenManagerError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 219 -     CrosstermError(crossterm::ErrorKind),
[INFO] [stdout] 219 +     CrosstermError(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/views/screen_manager.rs:220:23
[INFO] [stdout]     |
[INFO] [stdout] 220 |     InputManagerError(InputManagerError)
[INFO] [stdout]     |     ----------------- ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ScreenManagerError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 220 -     InputManagerError(InputManagerError)
[INFO] [stdout] 220 +     InputManagerError(())
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/utility/text_canvas.rs:36:27
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn as_styled_text(&self) -> Text {
[INFO] [stdout]    |                           ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                           |
[INFO] [stdout]    |                           the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn as_styled_text(&self) -> Text<'_> {
[INFO] [stdout]    |                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/utility/text_canvas.rs:148:13
[INFO] [stdout]     |
[INFO] [stdout] 148 |     fn span(&self) -> Span {
[INFO] [stdout]     |             ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |             |
[INFO] [stdout]     |             the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 148 |     fn span(&self) -> Span<'_> {
[INFO] [stdout]     |                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "8436e99124be4b5f5af4b0003cb2f3248434863d183d4397bcd6d49630fc5395", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8436e99124be4b5f5af4b0003cb2f3248434863d183d4397bcd6d49630fc5395", kill_on_drop: false }`
[INFO] [stdout] 8436e99124be4b5f5af4b0003cb2f3248434863d183d4397bcd6d49630fc5395
