[INFO] fetching crate tcod 0.15.0...
[INFO] testing tcod-0.15.0 against beta-2026-04-21 for beta-1.96-2
[INFO] extracting crate tcod 0.15.0 into /workspace/builds/worker-0-tc2/source
[INFO] removed /workspace/builds/worker-0-tc2/source/.cargo/config
[INFO] started tweaking crates.io crate tcod 0.15.0
[INFO] finished tweaking crates.io crate tcod 0.15.0
[INFO] tweaked toml for crates.io crate tcod 0.15.0 written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate tcod 0.15.0 on toolchain beta-2026-04-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 29 packages to latest compatible versions
[INFO] [stderr]       Adding bitflags v0.1.1 (available: v2.11.1)
[INFO] [stderr]       Adding lazy_static v0.1.16 (available: v1.5.0)
[INFO] [stderr]       Adding rand v0.3.23 (available: v0.10.1)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[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" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 32046c59c7a2164fc5e11912e94e35f1f0c0d9fb8fed43dccfde8e8386dccb1d
[INFO] running `Command { std: "docker" "start" "-a" "32046c59c7a2164fc5e11912e94e35f1f0c0d9fb8fed43dccfde8e8386dccb1d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "32046c59c7a2164fc5e11912e94e35f1f0c0d9fb8fed43dccfde8e8386dccb1d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "32046c59c7a2164fc5e11912e94e35f1f0c0d9fb8fed43dccfde8e8386dccb1d", kill_on_drop: false }`
[INFO] [stdout] 32046c59c7a2164fc5e11912e94e35f1f0c0d9fb8fed43dccfde8e8386dccb1d
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] fc27aee42ac7cd41f5b94d168f1bade6f6e44bc737eaeef04c44aff0bb57b397
[INFO] running `Command { std: "docker" "start" "-a" "fc27aee42ac7cd41f5b94d168f1bade6f6e44bc737eaeef04c44aff0bb57b397", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr]    Compiling bitflags v0.1.1
[INFO] [stderr]    Compiling lazy_static v0.1.16
[INFO] [stderr]    Compiling tcod-sys v5.0.1
[INFO] [stderr]    Compiling tcod v0.15.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unexpected `cfg` condition value: `nightly`
[INFO] [stdout]   --> src/namegen.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | / lazy_static! {
[INFO] [stdout] 13 | |     static ref NAMEGEN_MUTEX: Mutex<()> = Mutex::new(());
[INFO] [stdout] 14 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `rustc-serialize`, `serde`, `serde_derive`, and `serialization`
[INFO] [stdout]    = note: using a cfg inside a macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `lazy_static` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = help: the macro `lazy_static` may come from an old version of the `lazy_static` crate, try updating your dependency with `cargo update -p lazy_static`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `nightly`
[INFO] [stdout]   --> src/namegen.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | / lazy_static! {
[INFO] [stdout] 13 | |     static ref NAMEGEN_MUTEX: Mutex<()> = Mutex::new(());
[INFO] [stdout] 14 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `rustc-serialize`, `serde`, `serde_derive`, and `serialization`
[INFO] [stdout]    = note: using a cfg inside a macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `lazy_static` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = help: the macro `lazy_static` may come from an old version of the `lazy_static` crate, try updating your dependency with `cargo update -p lazy_static`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/pathfinding.rs:151:13
[INFO] [stdout]     |
[INFO] [stdout] 151 |             (Some((x, y)))
[INFO] [stdout]     |             ^            ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 151 -             (Some((x, y)))
[INFO] [stdout] 151 +             Some((x, y)) 
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/bindings.rs:43:15
[INFO] [stdout]    |
[INFO] [stdout] 43 |         x @ 0 ... 66 => Some(unsafe { transmute(x) }),
[INFO] [stdout]    |               ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/input.rs:193:58
[INFO] [stdout]     |
[INFO] [stdout] 193 |     let mut c_key_state: ffi::TCOD_key_t = unsafe { mem::uninitialized() };
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/input.rs:194:62
[INFO] [stdout]     |
[INFO] [stdout] 194 |     let mut c_mouse_state: ffi::TCOD_mouse_t = unsafe { mem::uninitialized() };
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `Once::new()` function is now preferred
[INFO] [stdout]   --> src/namegen.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | / lazy_static! {
[INFO] [stdout] 13 | |     static ref NAMEGEN_MUTEX: Mutex<()> = Mutex::new(());
[INFO] [stdout] 14 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `Once::new()` function is now preferred
[INFO] [stdout]   --> src/namegen.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | / lazy_static! {
[INFO] [stdout] 13 | |     static ref NAMEGEN_MUTEX: Mutex<()> = Mutex::new(());
[INFO] [stdout] 14 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/console.rs:464:16
[INFO] [stdout]     |
[INFO] [stdout] 464 |     title: Box<AsRef<str> + 'a>,
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 464 |     title: Box<dyn AsRef<str> + 'a>,
[INFO] [stdout]     |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/console.rs:466:20
[INFO] [stdout]     |
[INFO] [stdout] 466 |     font_path: Box<AsRef<Path> + 'a>,
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 466 |     font_path: Box<dyn AsRef<Path> + 'a>,
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/pathfinding.rs:7:18
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Callback(Box<FnMut((i32, i32), (i32, i32)) -> f32+'a>),
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Callback(Box<dyn FnMut((i32, i32), (i32, i32)) -> f32+'a>),
[INFO] [stdout]   |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bsp.rs:223:22
[INFO] [stdout]     |
[INFO] [stdout] 223 |         let cb: &mut FnMut(&mut Bsp) -> bool = &mut callback;
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 223 |         let cb: &mut dyn FnMut(&mut Bsp) -> bool = &mut callback;
[INFO] [stdout]     |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: a method with this name may be added to the standard library in the future
[INFO] [stdout]    --> src/console.rs:563:17
[INFO] [stdout]     |
[INFO] [stdout] 563 |         (*self).as_ascii()
[INFO] [stdout]     |                 ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: call with fully qualified syntax `TcodString::as_ascii(...)` to keep using the current method
[INFO] [stdout]     = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
[INFO] [stdout]     = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
[INFO] [stdout]     = note: `#[warn(unstable_name_collisions)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: a method with this name may be added to the standard library in the future
[INFO] [stdout]    --> src/console.rs:569:36
[INFO] [stdout]     |
[INFO] [stdout] 569 |         AsRef::<str>::as_ref(self).as_ascii()
[INFO] [stdout]     |                                    ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: call with fully qualified syntax `TcodString::as_ascii(...)` to keep using the current method
[INFO] [stdout]     = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
[INFO] [stdout]     = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: a method with this name may be added to the standard library in the future
[INFO] [stdout]    --> src/console.rs:575:36
[INFO] [stdout]     |
[INFO] [stdout] 575 |         AsRef::<str>::as_ref(self).as_ascii()
[INFO] [stdout]     |                                    ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: call with fully qualified syntax `TcodString::as_ascii(...)` to keep using the current method
[INFO] [stdout]     = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
[INFO] [stdout]     = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/pathfinding.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     Map(Map),
[INFO] [stdout]   |     --- ^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[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] 6 -     Map(Map),
[INFO] [stdout] 6 +     Map(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/pathfinding.rs:7:14
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Callback(Box<FnMut((i32, i32), (i32, i32)) -> f32+'a>),
[INFO] [stdout]   |     -------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[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] 7 -     Callback(Box<FnMut((i32, i32), (i32, i32)) -> f32+'a>),
[INFO] [stdout] 7 +     Callback(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/console.rs:986:25
[INFO] [stdout]     |
[INFO] [stdout] 986 |         assert!(x >= 0, y >= 0 && x < self.width());
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 986 |         assert!(x >= 0, "{}", y >= 0 && x < self.width());
[INFO] [stdout]     |                         +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `TCOD_key_t` does not permit being left uninitialized
[INFO] [stdout]     --> src/input.rs:193:53
[INFO] [stdout]      |
[INFO] [stdout]  193 |     let mut c_key_state: ffi::TCOD_key_t = unsafe { mem::uninitialized() };
[INFO] [stdout]      |                                                     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                                     |
[INFO] [stdout]      |                                                     this code causes undefined behavior when executed
[INFO] [stdout]      |                                                     help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]      |
[INFO] [stdout] note: enums with multiple inhabited variants have to be initialized to a variant
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tcod-sys-5.0.1/lib.rs:1511:1
[INFO] [stdout]      |
[INFO] [stdout] 1511 | pub enum TCOD_keycode_t {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#[warn(invalid_value)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `TCOD_mouse_t` does not permit being left uninitialized
[INFO] [stdout]    --> src/input.rs:194:57
[INFO] [stdout]     |
[INFO] [stdout] 194 |     let mut c_mouse_state: ffi::TCOD_mouse_t = unsafe { mem::uninitialized() };
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                         |
[INFO] [stdout]     |                                                         this code causes undefined behavior when executed
[INFO] [stdout]     |                                                         help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout]     = note: integers must be initialized
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 17.57s
[INFO] running `Command { std: "docker" "inspect" "fc27aee42ac7cd41f5b94d168f1bade6f6e44bc737eaeef04c44aff0bb57b397", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fc27aee42ac7cd41f5b94d168f1bade6f6e44bc737eaeef04c44aff0bb57b397", kill_on_drop: false }`
[INFO] [stdout] fc27aee42ac7cd41f5b94d168f1bade6f6e44bc737eaeef04c44aff0bb57b397
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d1057adf7e4096d1047aca111171c8418954d56241468065268c67ace9de4a18
[INFO] running `Command { std: "docker" "start" "-a" "d1057adf7e4096d1047aca111171c8418954d56241468065268c67ace9de4a18", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr]    Compiling rand v0.4.6
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stdout] warning: unexpected `cfg` condition value: `nightly`
[INFO] [stdout]   --> src/namegen.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | / lazy_static! {
[INFO] [stdout] 13 | |     static ref NAMEGEN_MUTEX: Mutex<()> = Mutex::new(());
[INFO] [stdout] 14 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `rustc-serialize`, `serde`, `serde_derive`, and `serialization`
[INFO] [stdout]    = note: using a cfg inside a macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `lazy_static` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = help: the macro `lazy_static` may come from an old version of the `lazy_static` crate, try updating your dependency with `cargo update -p lazy_static`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `nightly`
[INFO] [stdout]   --> src/namegen.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | / lazy_static! {
[INFO] [stdout] 13 | |     static ref NAMEGEN_MUTEX: Mutex<()> = Mutex::new(());
[INFO] [stdout] 14 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `rustc-serialize`, `serde`, `serde_derive`, and `serialization`
[INFO] [stdout]    = note: using a cfg inside a macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `lazy_static` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = help: the macro `lazy_static` may come from an old version of the `lazy_static` crate, try updating your dependency with `cargo update -p lazy_static`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/pathfinding.rs:151:13
[INFO] [stdout]     |
[INFO] [stdout] 151 |             (Some((x, y)))
[INFO] [stdout]     |             ^            ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 151 -             (Some((x, y)))
[INFO] [stdout] 151 +             Some((x, y)) 
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/bindings.rs:43:15
[INFO] [stdout]    |
[INFO] [stdout] 43 |         x @ 0 ... 66 => Some(unsafe { transmute(x) }),
[INFO] [stdout]    |               ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/input.rs:193:58
[INFO] [stdout]     |
[INFO] [stdout] 193 |     let mut c_key_state: ffi::TCOD_key_t = unsafe { mem::uninitialized() };
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/input.rs:194:62
[INFO] [stdout]     |
[INFO] [stdout] 194 |     let mut c_mouse_state: ffi::TCOD_mouse_t = unsafe { mem::uninitialized() };
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `Once::new()` function is now preferred
[INFO] [stdout]   --> src/namegen.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | / lazy_static! {
[INFO] [stdout] 13 | |     static ref NAMEGEN_MUTEX: Mutex<()> = Mutex::new(());
[INFO] [stdout] 14 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `Once::new()` function is now preferred
[INFO] [stdout]   --> src/namegen.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | / lazy_static! {
[INFO] [stdout] 13 | |     static ref NAMEGEN_MUTEX: Mutex<()> = Mutex::new(());
[INFO] [stdout] 14 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/console.rs:464:16
[INFO] [stdout]     |
[INFO] [stdout] 464 |     title: Box<AsRef<str> + 'a>,
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 464 |     title: Box<dyn AsRef<str> + 'a>,
[INFO] [stdout]     |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/console.rs:466:20
[INFO] [stdout]     |
[INFO] [stdout] 466 |     font_path: Box<AsRef<Path> + 'a>,
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 466 |     font_path: Box<dyn AsRef<Path> + 'a>,
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/pathfinding.rs:7:18
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Callback(Box<FnMut((i32, i32), (i32, i32)) -> f32+'a>),
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Callback(Box<dyn FnMut((i32, i32), (i32, i32)) -> f32+'a>),
[INFO] [stdout]   |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bsp.rs:223:22
[INFO] [stdout]     |
[INFO] [stdout] 223 |         let cb: &mut FnMut(&mut Bsp) -> bool = &mut callback;
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 223 |         let cb: &mut dyn FnMut(&mut Bsp) -> bool = &mut callback;
[INFO] [stdout]     |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: a method with this name may be added to the standard library in the future
[INFO] [stdout]    --> src/console.rs:563:17
[INFO] [stdout]     |
[INFO] [stdout] 563 |         (*self).as_ascii()
[INFO] [stdout]     |                 ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: call with fully qualified syntax `TcodString::as_ascii(...)` to keep using the current method
[INFO] [stdout]     = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
[INFO] [stdout]     = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
[INFO] [stdout]     = note: `#[warn(unstable_name_collisions)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: a method with this name may be added to the standard library in the future
[INFO] [stdout]    --> src/console.rs:569:36
[INFO] [stdout]     |
[INFO] [stdout] 569 |         AsRef::<str>::as_ref(self).as_ascii()
[INFO] [stdout]     |                                    ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: call with fully qualified syntax `TcodString::as_ascii(...)` to keep using the current method
[INFO] [stdout]     = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
[INFO] [stdout]     = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: a method with this name may be added to the standard library in the future
[INFO] [stdout]    --> src/console.rs:575:36
[INFO] [stdout]     |
[INFO] [stdout] 575 |         AsRef::<str>::as_ref(self).as_ascii()
[INFO] [stdout]     |                                    ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: call with fully qualified syntax `TcodString::as_ascii(...)` to keep using the current method
[INFO] [stdout]     = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
[INFO] [stdout]     = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/pathfinding.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     Map(Map),
[INFO] [stdout]   |     --- ^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[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] 6 -     Map(Map),
[INFO] [stdout] 6 +     Map(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/pathfinding.rs:7:14
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Callback(Box<FnMut((i32, i32), (i32, i32)) -> f32+'a>),
[INFO] [stdout]   |     -------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[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] 7 -     Callback(Box<FnMut((i32, i32), (i32, i32)) -> f32+'a>),
[INFO] [stdout] 7 +     Callback(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/console.rs:986:25
[INFO] [stdout]     |
[INFO] [stdout] 986 |         assert!(x >= 0, y >= 0 && x < self.width());
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 986 |         assert!(x >= 0, "{}", y >= 0 && x < self.width());
[INFO] [stdout]     |                         +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `TCOD_key_t` does not permit being left uninitialized
[INFO] [stdout]     --> src/input.rs:193:53
[INFO] [stdout]      |
[INFO] [stdout]  193 |     let mut c_key_state: ffi::TCOD_key_t = unsafe { mem::uninitialized() };
[INFO] [stdout]      |                                                     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                                     |
[INFO] [stdout]      |                                                     this code causes undefined behavior when executed
[INFO] [stdout]      |                                                     help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]      |
[INFO] [stdout] note: enums with multiple inhabited variants have to be initialized to a variant
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tcod-sys-5.0.1/lib.rs:1511:1
[INFO] [stdout]      |
[INFO] [stdout] 1511 | pub enum TCOD_keycode_t {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#[warn(invalid_value)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `TCOD_mouse_t` does not permit being left uninitialized
[INFO] [stdout]    --> src/input.rs:194:57
[INFO] [stdout]     |
[INFO] [stdout] 194 |     let mut c_mouse_state: ffi::TCOD_mouse_t = unsafe { mem::uninitialized() };
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                         |
[INFO] [stdout]     |                                                         this code causes undefined behavior when executed
[INFO] [stdout]     |                                                         help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout]     = note: integers must be initialized
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling rand v0.3.23
[INFO] [stderr]    Compiling tcod v0.15.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> examples/blit.rs:16:28
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let mut trait_object: &Console = &OffscreenConsole::new(20, 20);
[INFO] [stdout]    |                            ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let mut trait_object: &dyn Console = &OffscreenConsole::new(20, 20);
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> examples/blit.rs:17:30
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let mut boxed_trait: Box<Console> = Box::new(OffscreenConsole::new(20, 20));
[INFO] [stdout]    |                              ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let mut boxed_trait: Box<dyn Console> = Box::new(OffscreenConsole::new(20, 20));
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `nightly`
[INFO] [stdout]   --> src/namegen.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | / lazy_static! {
[INFO] [stdout] 13 | |     static ref NAMEGEN_MUTEX: Mutex<()> = Mutex::new(());
[INFO] [stdout] 14 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `rustc-serialize`, `serde`, `serde_derive`, and `serialization`
[INFO] [stdout]    = note: using a cfg inside a macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `lazy_static` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = help: the macro `lazy_static` may come from an old version of the `lazy_static` crate, try updating your dependency with `cargo update -p lazy_static`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `nightly`
[INFO] [stdout]   --> src/namegen.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | / lazy_static! {
[INFO] [stdout] 13 | |     static ref NAMEGEN_MUTEX: Mutex<()> = Mutex::new(());
[INFO] [stdout] 14 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `rustc-serialize`, `serde`, `serde_derive`, and `serialization`
[INFO] [stdout]    = note: using a cfg inside a macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `lazy_static` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = help: the macro `lazy_static` may come from an old version of the `lazy_static` crate, try updating your dependency with `cargo update -p lazy_static`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/pathfinding.rs:151:13
[INFO] [stdout]     |
[INFO] [stdout] 151 |             (Some((x, y)))
[INFO] [stdout]     |             ^            ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 151 -             (Some((x, y)))
[INFO] [stdout] 151 +             Some((x, y)) 
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/bindings.rs:43:15
[INFO] [stdout]    |
[INFO] [stdout] 43 |         x @ 0 ... 66 => Some(unsafe { transmute(x) }),
[INFO] [stdout]    |               ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/input.rs:193:58
[INFO] [stdout]     |
[INFO] [stdout] 193 |     let mut c_key_state: ffi::TCOD_key_t = unsafe { mem::uninitialized() };
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/input.rs:194:62
[INFO] [stdout]     |
[INFO] [stdout] 194 |     let mut c_mouse_state: ffi::TCOD_mouse_t = unsafe { mem::uninitialized() };
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `Once::new()` function is now preferred
[INFO] [stdout]   --> src/namegen.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | / lazy_static! {
[INFO] [stdout] 13 | |     static ref NAMEGEN_MUTEX: Mutex<()> = Mutex::new(());
[INFO] [stdout] 14 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `Once::new()` function is now preferred
[INFO] [stdout]   --> src/namegen.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | / lazy_static! {
[INFO] [stdout] 13 | |     static ref NAMEGEN_MUTEX: Mutex<()> = Mutex::new(());
[INFO] [stdout] 14 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/console.rs:464:16
[INFO] [stdout]     |
[INFO] [stdout] 464 |     title: Box<AsRef<str> + 'a>,
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 464 |     title: Box<dyn AsRef<str> + 'a>,
[INFO] [stdout]     |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/console.rs:466:20
[INFO] [stdout]     |
[INFO] [stdout] 466 |     font_path: Box<AsRef<Path> + 'a>,
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 466 |     font_path: Box<dyn AsRef<Path> + 'a>,
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/pathfinding.rs:7:18
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Callback(Box<FnMut((i32, i32), (i32, i32)) -> f32+'a>),
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Callback(Box<dyn FnMut((i32, i32), (i32, i32)) -> f32+'a>),
[INFO] [stdout]   |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> examples/samples.rs:101:10
[INFO] [stdout]     |
[INFO] [stdout] 101 |         };
[INFO] [stdout]     |          ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> examples/samples.rs:549:20
[INFO] [stdout]     |
[INFO] [stdout] 549 |                 '1'...'9' =>
[INFO] [stdout]     |                    ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> examples/samples.rs:781:36
[INFO] [stdout]     |
[INFO] [stdout] 781 | const SQUARED_TORCH_RADIUS : f32 = (TORCH_RADIUS*TORCH_RADIUS);
[INFO] [stdout]     |                                    ^                         ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 781 - const SQUARED_TORCH_RADIUS : f32 = (TORCH_RADIUS*TORCH_RADIUS);
[INFO] [stdout] 781 + const SQUARED_TORCH_RADIUS : f32 = TORCH_RADIUS*TORCH_RADIUS ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> examples/samples.rs:1522:21
[INFO] [stdout]      |
[INFO] [stdout] 1522 |     render: &'a mut Render
[INFO] [stdout]      |                     ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]      = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1522 |     render: &'a mut dyn Render
[INFO] [stdout]      |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bsp.rs:223:22
[INFO] [stdout]     |
[INFO] [stdout] 223 |         let cb: &mut FnMut(&mut Bsp) -> bool = &mut callback;
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 223 |         let cb: &mut dyn FnMut(&mut Bsp) -> bool = &mut callback;
[INFO] [stdout]     |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> examples/samples.rs:1526:40
[INFO] [stdout]      |
[INFO] [stdout] 1526 |     fn new(name: &str, render: &'a mut Render) -> Self {
[INFO] [stdout]      |                                        ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1526 |     fn new(name: &str, render: &'a mut dyn Render) -> Self {
[INFO] [stdout]      |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> examples/samples.rs:95:40
[INFO] [stdout]    |
[INFO] [stdout] 95 |     fn set_colors(&self, console: &mut Console) {
[INFO] [stdout]    |                                        ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 95 |     fn set_colors(&self, console: &mut dyn Console) {
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> examples/samples.rs:124:52
[INFO] [stdout]     |
[INFO] [stdout] 124 |     fn print_random_chars(&mut self, console: &mut Console) -> colors::Color {
[INFO] [stdout]     |                                                    ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 124 |     fn print_random_chars(&mut self, console: &mut dyn Console) -> colors::Color {
[INFO] [stdout]     |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: a method with this name may be added to the standard library in the future
[INFO] [stdout]    --> src/console.rs:563:17
[INFO] [stdout]     |
[INFO] [stdout] 563 |         (*self).as_ascii()
[INFO] [stdout]     |                 ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: call with fully qualified syntax `TcodString::as_ascii(...)` to keep using the current method
[INFO] [stdout]     = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
[INFO] [stdout]     = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
[INFO] [stdout]     = note: `#[warn(unstable_name_collisions)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: a method with this name may be added to the standard library in the future
[INFO] [stdout]    --> src/console.rs:569:36
[INFO] [stdout]     |
[INFO] [stdout] 569 |         AsRef::<str>::as_ref(self).as_ascii()
[INFO] [stdout]     |                                    ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: call with fully qualified syntax `TcodString::as_ascii(...)` to keep using the current method
[INFO] [stdout]     = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
[INFO] [stdout]     = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: a method with this name may be added to the standard library in the future
[INFO] [stdout]    --> src/console.rs:575:36
[INFO] [stdout]     |
[INFO] [stdout] 575 |         AsRef::<str>::as_ref(self).as_ascii()
[INFO] [stdout]     |                                    ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: call with fully qualified syntax `TcodString::as_ascii(...)` to keep using the current method
[INFO] [stdout]     = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
[INFO] [stdout]     = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/pathfinding.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     Map(Map),
[INFO] [stdout]   |     --- ^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[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] 6 -     Map(Map),
[INFO] [stdout] 6 +     Map(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/pathfinding.rs:7:14
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Callback(Box<FnMut((i32, i32), (i32, i32)) -> f32+'a>),
[INFO] [stdout]   |     -------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[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] 7 -     Callback(Box<FnMut((i32, i32), (i32, i32)) -> f32+'a>),
[INFO] [stdout] 7 +     Callback(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/console.rs:986:25
[INFO] [stdout]     |
[INFO] [stdout] 986 |         assert!(x >= 0, y >= 0 && x < self.width());
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 986 |         assert!(x >= 0, "{}", y >= 0 && x < self.width());
[INFO] [stdout]     |                         +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `TCOD_key_t` does not permit being left uninitialized
[INFO] [stdout]     --> src/input.rs:193:53
[INFO] [stdout]      |
[INFO] [stdout]  193 |     let mut c_key_state: ffi::TCOD_key_t = unsafe { mem::uninitialized() };
[INFO] [stdout]      |                                                     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                                     |
[INFO] [stdout]      |                                                     this code causes undefined behavior when executed
[INFO] [stdout]      |                                                     help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]      |
[INFO] [stdout] note: enums with multiple inhabited variants have to be initialized to a variant
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tcod-sys-5.0.1/lib.rs:1511:1
[INFO] [stdout]      |
[INFO] [stdout] 1511 | pub enum TCOD_keycode_t {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#[warn(invalid_value)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `TCOD_mouse_t` does not permit being left uninitialized
[INFO] [stdout]    --> src/input.rs:194:57
[INFO] [stdout]     |
[INFO] [stdout] 194 |     let mut c_mouse_state: ffi::TCOD_mouse_t = unsafe { mem::uninitialized() };
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                         |
[INFO] [stdout]     |                                                         this code causes undefined behavior when executed
[INFO] [stdout]     |                                                         help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout]     = note: integers must be initialized
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.37s
[INFO] running `Command { std: "docker" "inspect" "d1057adf7e4096d1047aca111171c8418954d56241468065268c67ace9de4a18", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d1057adf7e4096d1047aca111171c8418954d56241468065268c67ace9de4a18", kill_on_drop: false }`
[INFO] [stdout] d1057adf7e4096d1047aca111171c8418954d56241468065268c67ace9de4a18
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 18b067d8bd13a7bb67d20dc408feb78193018a71d69ba9df23954d4a86e992f0
[INFO] running `Command { std: "docker" "start" "-a" "18b067d8bd13a7bb67d20dc408feb78193018a71d69ba9df23954d4a86e992f0", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: unexpected `cfg` condition value: `nightly`
[INFO] [stderr]   --> src/namegen.rs:12:1
[INFO] [stderr]    |
[INFO] [stderr] 12 | / lazy_static! {
[INFO] [stderr] 13 | |     static ref NAMEGEN_MUTEX: Mutex<()> = Mutex::new(());
[INFO] [stderr] 14 | | }
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr]    = note: expected values for `feature` are: `rustc-serialize`, `serde`, `serde_derive`, and `serialization`
[INFO] [stderr]    = note: using a cfg inside a macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stderr]    = help: try referring to `lazy_static` crate for guidance on how handle this unexpected cfg
[INFO] [stderr]    = help: the macro `lazy_static` may come from an old version of the `lazy_static` crate, try updating your dependency with `cargo update -p lazy_static`
[INFO] [stderr]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stderr]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stderr]    = note: this warning originates in the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unexpected `cfg` condition value: `nightly`
[INFO] [stderr]   --> src/namegen.rs:12:1
[INFO] [stderr]    |
[INFO] [stderr] 12 | / lazy_static! {
[INFO] [stderr] 13 | |     static ref NAMEGEN_MUTEX: Mutex<()> = Mutex::new(());
[INFO] [stderr] 14 | | }
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr]    = note: expected values for `feature` are: `rustc-serialize`, `serde`, `serde_derive`, and `serialization`
[INFO] [stderr]    = note: using a cfg inside a macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stderr]    = help: try referring to `lazy_static` crate for guidance on how handle this unexpected cfg
[INFO] [stderr]    = help: the macro `lazy_static` may come from an old version of the `lazy_static` crate, try updating your dependency with `cargo update -p lazy_static`
[INFO] [stderr]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stderr]    = note: this warning originates in the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around block return value
[INFO] [stderr]    --> src/pathfinding.rs:151:13
[INFO] [stderr]     |
[INFO] [stderr] 151 |             (Some((x, y)))
[INFO] [stderr]     |             ^            ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 151 -             (Some((x, y)))
[INFO] [stderr] 151 +             Some((x, y)) 
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]   --> src/bindings.rs:43:15
[INFO] [stderr]    |
[INFO] [stderr] 43 |         x @ 0 ... 66 => Some(unsafe { transmute(x) }),
[INFO] [stderr]    |               ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]    = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stderr]    --> src/input.rs:193:58
[INFO] [stderr]     |
[INFO] [stderr] 193 |     let mut c_key_state: ffi::TCOD_key_t = unsafe { mem::uninitialized() };
[INFO] [stderr]     |                                                          ^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stderr]    --> src/input.rs:194:62
[INFO] [stderr]     |
[INFO] [stderr] 194 |     let mut c_mouse_state: ffi::TCOD_mouse_t = unsafe { mem::uninitialized() };
[INFO] [stderr]     |                                                              ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `Once::new()` function is now preferred
[INFO] [stderr]   --> src/namegen.rs:12:1
[INFO] [stderr]    |
[INFO] [stderr] 12 | / lazy_static! {
[INFO] [stderr] 13 | |     static ref NAMEGEN_MUTEX: Mutex<()> = Mutex::new(());
[INFO] [stderr] 14 | | }
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/console.rs:464:16
[INFO] [stderr]     |
[INFO] [stderr] 464 |     title: Box<AsRef<str> + 'a>,
[INFO] [stderr]     |                ^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]     = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 464 |     title: Box<dyn AsRef<str> + 'a>,
[INFO] [stderr]     |                +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/console.rs:466:20
[INFO] [stderr]     |
[INFO] [stderr] 466 |     font_path: Box<AsRef<Path> + 'a>,
[INFO] [stderr]     |                    ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 466 |     font_path: Box<dyn AsRef<Path> + 'a>,
[INFO] [stderr]     |                    +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/pathfinding.rs:7:18
[INFO] [stderr]   |
[INFO] [stderr] 7 |     Callback(Box<FnMut((i32, i32), (i32, i32)) -> f32+'a>),
[INFO] [stderr]   |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]   |
[INFO] [stderr] 7 |     Callback(Box<dyn FnMut((i32, i32), (i32, i32)) -> f32+'a>),
[INFO] [stderr]   |                  +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/bsp.rs:223:22
[INFO] [stderr]     |
[INFO] [stderr] 223 |         let cb: &mut FnMut(&mut Bsp) -> bool = &mut callback;
[INFO] [stderr]     |                      ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 223 |         let cb: &mut dyn FnMut(&mut Bsp) -> bool = &mut callback;
[INFO] [stderr]     |                      +++
[INFO] [stderr] 
[INFO] [stderr] warning: a method with this name may be added to the standard library in the future
[INFO] [stderr]    --> src/console.rs:563:17
[INFO] [stderr]     |
[INFO] [stderr] 563 |         (*self).as_ascii()
[INFO] [stderr]     |                 ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: call with fully qualified syntax `TcodString::as_ascii(...)` to keep using the current method
[INFO] [stderr]     = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
[INFO] [stderr]     = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
[INFO] [stderr]     = note: `#[warn(unstable_name_collisions)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: a method with this name may be added to the standard library in the future
[INFO] [stderr]    --> src/console.rs:569:36
[INFO] [stderr]     |
[INFO] [stderr] 569 |         AsRef::<str>::as_ref(self).as_ascii()
[INFO] [stderr]     |                                    ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: call with fully qualified syntax `TcodString::as_ascii(...)` to keep using the current method
[INFO] [stderr]     = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
[INFO] [stderr]     = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
[INFO] [stderr] 
[INFO] [stderr] warning: a method with this name may be added to the standard library in the future
[INFO] [stderr]    --> src/console.rs:575:36
[INFO] [stderr]     |
[INFO] [stderr] 575 |         AsRef::<str>::as_ref(self).as_ascii()
[INFO] [stderr]     |                                    ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: call with fully qualified syntax `TcodString::as_ascii(...)` to keep using the current method
[INFO] [stderr]     = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
[INFO] [stderr]     = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]  --> src/pathfinding.rs:6:9
[INFO] [stderr]   |
[INFO] [stderr] 6 |     Map(Map),
[INFO] [stderr]   |     --- ^^^
[INFO] [stderr]   |     |
[INFO] [stderr]   |     field in this variant
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]   |
[INFO] [stderr] 6 -     Map(Map),
[INFO] [stderr] 6 +     Map(()),
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]  --> src/pathfinding.rs:7:14
[INFO] [stderr]   |
[INFO] [stderr] 7 |     Callback(Box<FnMut((i32, i32), (i32, i32)) -> f32+'a>),
[INFO] [stderr]   |     -------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |     |
[INFO] [stderr]   |     field in this variant
[INFO] [stderr]   |
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]   |
[INFO] [stderr] 7 -     Callback(Box<FnMut((i32, i32), (i32, i32)) -> f32+'a>),
[INFO] [stderr] 7 +     Callback(()),
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]    --> src/console.rs:986:25
[INFO] [stderr]     |
[INFO] [stderr] 986 |         assert!(x >= 0, y >= 0 && x < self.width());
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]     = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stderr] help: add a "{}" format string to `Display` the message
[INFO] [stderr]     |
[INFO] [stderr] 986 |         assert!(x >= 0, "{}", y >= 0 && x < self.width());
[INFO] [stderr]     |                         +++++
[INFO] [stderr] 
[INFO] [stderr] warning: the type `TCOD_key_t` does not permit being left uninitialized
[INFO] [stderr]     --> src/input.rs:193:53
[INFO] [stderr]      |
[INFO] [stderr]  193 |     let mut c_key_state: ffi::TCOD_key_t = unsafe { mem::uninitialized() };
[INFO] [stderr]      |                                                     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |                                                     |
[INFO] [stderr]      |                                                     this code causes undefined behavior when executed
[INFO] [stderr]      |                                                     help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stderr]      |
[INFO] [stderr] note: enums with multiple inhabited variants have to be initialized to a variant
[INFO] [stderr]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tcod-sys-5.0.1/lib.rs:1511:1
[INFO] [stderr]      |
[INFO] [stderr] 1511 | pub enum TCOD_keycode_t {
[INFO] [stderr]      | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      = note: `#[warn(invalid_value)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: the type `TCOD_mouse_t` does not permit being left uninitialized
[INFO] [stderr]    --> src/input.rs:194:57
[INFO] [stderr]     |
[INFO] [stderr] 194 |     let mut c_mouse_state: ffi::TCOD_mouse_t = unsafe { mem::uninitialized() };
[INFO] [stderr]     |                                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                                                         |
[INFO] [stderr]     |                                                         this code causes undefined behavior when executed
[INFO] [stderr]     |                                                         help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stderr]     |
[INFO] [stderr]     = note: integers must be initialized
[INFO] [stderr] 
[INFO] [stderr] warning: `tcod` (lib) generated 20 warnings (1 duplicate) (run `cargo fix --lib -p tcod` to apply 7 suggestions)
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> examples/blit.rs:16:28
[INFO] [stderr]    |
[INFO] [stderr] 16 |     let mut trait_object: &Console = &OffscreenConsole::new(20, 20);
[INFO] [stderr]    |                            ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 16 |     let mut trait_object: &dyn Console = &OffscreenConsole::new(20, 20);
[INFO] [stderr]    |                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> examples/blit.rs:17:30
[INFO] [stderr]    |
[INFO] [stderr] 17 |     let mut boxed_trait: Box<Console> = Box::new(OffscreenConsole::new(20, 20));
[INFO] [stderr]    |                              ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 17 |     let mut boxed_trait: Box<dyn Console> = Box::new(OffscreenConsole::new(20, 20));
[INFO] [stderr]    |                              +++
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary trailing semicolon
[INFO] [stderr]    --> examples/samples.rs:101:10
[INFO] [stderr]     |
[INFO] [stderr] 101 |         };
[INFO] [stderr]     |          ^ help: remove this semicolon
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> examples/samples.rs:549:20
[INFO] [stderr]     |
[INFO] [stderr] 549 |                 '1'...'9' =>
[INFO] [stderr]     |                    ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> examples/samples.rs:781:36
[INFO] [stderr]     |
[INFO] [stderr] 781 | const SQUARED_TORCH_RADIUS : f32 = (TORCH_RADIUS*TORCH_RADIUS);
[INFO] [stderr]     |                                    ^                         ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 781 - const SQUARED_TORCH_RADIUS : f32 = (TORCH_RADIUS*TORCH_RADIUS);
[INFO] [stderr] 781 + const SQUARED_TORCH_RADIUS : f32 = TORCH_RADIUS*TORCH_RADIUS ;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]     --> examples/samples.rs:1522:21
[INFO] [stderr]      |
[INFO] [stderr] 1522 |     render: &'a mut Render
[INFO] [stderr]      |                     ^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]      = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]      |
[INFO] [stderr] 1522 |     render: &'a mut dyn Render
[INFO] [stderr]      |                     +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]     --> examples/samples.rs:1526:40
[INFO] [stderr]      |
[INFO] [stderr] 1526 |     fn new(name: &str, render: &'a mut Render) -> Self {
[INFO] [stderr]      |                                        ^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]      |
[INFO] [stderr] 1526 |     fn new(name: &str, render: &'a mut dyn Render) -> Self {
[INFO] [stderr]      |                                        +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> examples/samples.rs:95:40
[INFO] [stderr]    |
[INFO] [stderr] 95 |     fn set_colors(&self, console: &mut Console) {
[INFO] [stderr]    |                                        ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 95 |     fn set_colors(&self, console: &mut dyn Console) {
[INFO] [stderr]    |                                        +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> examples/samples.rs:124:52
[INFO] [stderr]     |
[INFO] [stderr] 124 |     fn print_random_chars(&mut self, console: &mut Console) -> colors::Color {
[INFO] [stderr]     |                                                    ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 124 |     fn print_random_chars(&mut self, console: &mut dyn Console) -> colors::Color {
[INFO] [stderr]     |                                                    +++
[INFO] [stderr] 
[INFO] [stderr] warning: `tcod` (lib test) generated 20 warnings (20 duplicates)
[INFO] [stderr] warning: `tcod` (example "blit") generated 2 warnings (run `cargo fix --example "blit" -p tcod` to apply 2 suggestions)
[INFO] [stderr] warning: `tcod` (example "samples") generated 7 warnings (run `cargo fix --example "samples" -p tcod` to apply 6 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.03s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/tcod-3db5d18c59e746b8)
[INFO] [stdout] 
[INFO] [stdout] running 49 tests
[INFO] [stdout] test bsp::test::break_traverse ... ok
[INFO] [stdout] test bindings::test_keycodes ... ok
[INFO] [stdout] test bsp::test::accessors ... ok
[INFO] [stdout] test bsp::test::created_destroyed_no_panic ... ok
[INFO] [stdout] test bsp::test::children ... ok
[INFO] [stdout] test bsp::test::father ... ok
[INFO] [stdout] test bsp::test::safe_tree_pointer ... ok
[INFO] [stdout] test bsp::test::split ... ok
[INFO] [stdout] test bsp::test::split_recursive ... ok
[INFO] [stdout] test bsp::test::traverse ... ok
[INFO] [stdout] test bsp::test::traverse_orders ... ok
[INFO] [stdout] test console::test::test_custom_font_as_path ... ok
[INFO] [stdout] test console::test::test_custom_font_as_static_str ... ok
[INFO] [stdout] test console::test::test_custom_font_as_str ... ok
[INFO] [stdout] test console::test::test_custom_font_as_string ... ok
[INFO] [stdout] test line::test::iterate_over_line ... ok
[INFO] [stdout] test line::test::line_created ... ok
[INFO] [stdout] test line::test::line_with_callback ... ok
[INFO] [stdout] test line::test::start_end_same ... ok
[INFO] [stdout] test line::test::step_line ... ok
[INFO] [stdout] test line::test::step_two_lines ... ok
[INFO] [stdout] test noise::test::get ... ok
[INFO] [stdout] test noise::test::get_fbm ... ok
[INFO] [stdout] test noise::test::get_turbulence ... ok
[INFO] [stdout] test noise::test::get_ex_not_enough_args - should panic ... ok
[INFO] [stdout] test noise::test::get_ex_too_many_args - should panic ... ok
[INFO] [stdout] test noise::test::get_fbm_ex_not_enough_args - should panic ... ok
[INFO] [stdout] test noise::test::get_fbm_not_enough_args - should panic ... ok
[INFO] [stdout] test noise::test::get_fbm_octaves_too_big - should panic ... ok
[INFO] [stdout] test noise::test::get_fbm_octaves_zero - should panic ... ok
[INFO] [stdout] test noise::test::get_turbulence_octaves_too_big - should panic ... ok
[INFO] [stdout] test noise::test::get_fbm_ex_too_many_args - should panic ... ok
[INFO] [stdout] test noise::test::get_not_enough_args - should panic ... ok
[INFO] [stdout] test noise::test::get_fbm_ex_octaves_too_big - should panic ... ok
[INFO] [stdout] test noise::test::get_fbm_too_many_args - should panic ... ok
[INFO] [stdout] test noise::test::init_with_zero_dimensions - should panic ... ok
[INFO] [stdout] test noise::test::get_too_many_args - should panic ... ok
[INFO] [stdout] test noise::test::get_turbulence_ex_octaves_too_big - should panic ... ok
[INFO] [stdout] test noise::test::get_turbulence_ex_octaves_zero - should panic ... ok
[INFO] [stdout] test noise::test::get_turbulence_ex_too_many_args - should panic ... ok
[INFO] [stdout] test noise::test::get_turbulence_not_enough_args - should panic ... ok
[INFO] [stdout] test noise::test::get_fbm_ex_octaves_zero - should panic ... ok
[INFO] [stdout] test noise::test::get_turbulence_octaves_zero - should panic ... ok
[INFO] [stdout] test noise::test::get_turbulence_too_many_args - should panic ... ok
[INFO] [stdout] test noise::test::init_with_wrong_dimensions - should panic ... ok
[INFO] [stdout] test noise::test::get_turbulence_ex_not_enough_args - should panic ... ok
[INFO] [stdout] test noise::test::get_fbm_ex ... ok
[INFO] [stdout] test noise::test::get_ex ... ok
[INFO] [stdout] test noise::test::get_turbulence_ex ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 49 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests tcod
[INFO] [stderr] warning: unnecessary parentheses around block return value
[INFO] [stderr]    --> src/pathfinding.rs:151:13
[INFO] [stderr]     |
[INFO] [stderr] 151 |             (Some((x, y)))
[INFO] [stderr]     |             ^            ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 151 -             (Some((x, y)))
[INFO] [stderr] 151 +             Some((x, y)) 
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]   --> src/bindings.rs:43:15
[INFO] [stderr]    |
[INFO] [stderr] 43 |         x @ 0 ... 66 => Some(unsafe { transmute(x) }),
[INFO] [stderr]    |               ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]    = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: 2 warnings emitted
[INFO] [stderr] 
[INFO] [stdout] 
[INFO] [stdout] running 14 tests
[INFO] [stdout] test src/console.rs - console::Offscreen (line 93) - compile ... ok
[INFO] [stdout] test src/console.rs - console (line 23) - compile ... ok
[INFO] [stdout] test src/console.rs - console::Root::initializer (line 210) - compile ... ok
[INFO] [stdout] test src/console.rs - console::Offscreen (line 83) - compile ... ok
[INFO] [stdout] test src/console.rs - console::Console (line 638) - compile ... ok
[INFO] [stdout] test src/console.rs - console (line 13) - compile ... ok
[INFO] [stdout] test src/console.rs - console::RootId (line 146) - compile ... ok
[INFO] [stdout] test src/console.rs - console::RootId (line 175) - compile ... ok
[INFO] [stdout] test src/line.rs - line::Line::new_with_callback (line 29) - compile ... ok
[INFO] [stdout] test src/bsp.rs - bsp::Bsp (line 26) - compile ... ok
[INFO] [stdout] test src/console.rs - console::RootInitializer (line 448) - compile ... ok
[INFO] [stdout] test src/console.rs - console (line 47) - compile ... ok
[INFO] [stdout] test src/console.rs - console::blit (line 1050) - compile ... ok
[INFO] [stdout] test src/bsp.rs - bsp::Bsp<'a>::traverse (line 209) - compile ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "18b067d8bd13a7bb67d20dc408feb78193018a71d69ba9df23954d4a86e992f0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "18b067d8bd13a7bb67d20dc408feb78193018a71d69ba9df23954d4a86e992f0", kill_on_drop: false }`
[INFO] [stdout] 18b067d8bd13a7bb67d20dc408feb78193018a71d69ba9df23954d4a86e992f0
