[INFO] cloning repository https://github.com/loovjo/soviet-sim
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/loovjo/soviet-sim" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Floovjo%2Fsoviet-sim", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Floovjo%2Fsoviet-sim'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 4c28732f7ed6141ca041cc4e8254795e063cbcfb
[INFO] checking loovjo/soviet-sim/4c28732f7ed6141ca041cc4e8254795e063cbcfb against 1af98b7cdf86932b76182a387f52f1be6f0c1be0 for pr-159706
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Floovjo%2Fsoviet-sim" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/loovjo/soviet-sim
[INFO] finished tweaking git repo https://github.com/loovjo/soviet-sim
[INFO] tweaked toml for git repo https://github.com/loovjo/soviet-sim written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/loovjo/soviet-sim on toolchain 1af98b7cdf86932b76182a387f52f1be6f0c1be0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1af98b7cdf86932b76182a387f52f1be6f0c1be0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/loovjo/soviet-sim already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1af98b7cdf86932b76182a387f52f1be6f0c1be0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `soviet-sim` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:00c5645b54fe3ce5dae1417175e3c7fb6a6646c021d554ecd63a097b8b9f3602" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] ff570174956c6d2db10b1ba817e6dc2a4d30936c0e5f16ddd57ac7e4617b023a
[INFO] running `Command { std: "docker" "start" "ff570174956c6d2db10b1ba817e6dc2a4d30936c0e5f16ddd57ac7e4617b023a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ff570174956c6d2db10b1ba817e6dc2a4d30936c0e5f16ddd57ac7e4617b023a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "ff570174956c6d2db10b1ba817e6dc2a4d30936c0e5f16ddd57ac7e4617b023a" "/opt/rustwide/cargo-home/bin/cargo" "+1af98b7cdf86932b76182a387f52f1be6f0c1be0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ff570174956c6d2db10b1ba817e6dc2a4d30936c0e5f16ddd57ac7e4617b023a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "ff570174956c6d2db10b1ba817e6dc2a4d30936c0e5f16ddd57ac7e4617b023a" "/opt/rustwide/cargo-home/bin/cargo" "+1af98b7cdf86932b76182a387f52f1be6f0c1be0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `soviet-sim` (manifest) generated 1 warning
[INFO] [stderr]     Checking lazy_static v1.0.0
[INFO] [stderr]     Checking soviet-sim v1.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/ext.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/key.rs:50:11
[INFO] [stdout]    |
[INFO] [stdout] 50 |         65...90 => Some(Key::Letter(code - b'A')),
[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: `...` range patterns are deprecated
[INFO] [stdout]   --> src/key.rs:51:11
[INFO] [stdout]    |
[INFO] [stdout] 51 |         48...57 => Some(Key::Digit(code - 48)),
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/lib.rs:406:58
[INFO] [stdout]     |
[INFO] [stdout] 406 |         rouge.world.generate(WORLD_SIZE.0, WORLD_SIZE.1);;
[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: use of deprecated constant `std::sync::ONCE_INIT`: the `Once::new()` function is now preferred
[INFO] [stdout]   --> src/lib.rs:68:1
[INFO] [stdout]    |
[INFO] [stdout] 68 | / lazy_static! {
[INFO] [stdout] 69 | |     static ref GAME: Mutex<Game> = Mutex::new(
[INFO] [stdout] 70 | |         Game {
[INFO] [stdout] 71 | |             state: GameState::Menu(Difficulty::Easy),
[INFO] [stdout] 72 | |             size: (0, 0)
[INFO] [stdout] 73 | |         });
[INFO] [stdout] 74 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `nll` has been stable since 1.63.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/lib.rs:1:29
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(vec_remove_item, nll, const_let)]
[INFO] [stdout]   |                             ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `const_let` has been stable since 1.33.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/lib.rs:1:34
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(vec_remove_item, nll, const_let)]
[INFO] [stdout]   |                                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0635]: unknown feature `vec_remove_item`
[INFO] [stdout]  --> src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(vec_remove_item, nll, const_let)]
[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/ext.rs:32:1
[INFO] [stdout]    |
[INFO] [stdout] 32 | / lazy_static! {
[INFO] [stdout] 33 | |     static ref SCREEN: Mutex<Vec<Vec<Shape>>> = Mutex::new(vec![]);
[INFO] [stdout] 34 | |     static ref UNFLIPPED: Mutex<Vec<Vec<Shape>>> = Mutex::new(vec![]);
[INFO] [stdout] 35 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of 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/ext.rs:32:1
[INFO] [stdout]    |
[INFO] [stdout] 32 | / lazy_static! {
[INFO] [stdout] 33 | |     static ref SCREEN: Mutex<Vec<Vec<Shape>>> = Mutex::new(vec![]);
[INFO] [stdout] 34 | |     static ref UNFLIPPED: Mutex<Vec<Vec<Shape>>> = Mutex::new(vec![]);
[INFO] [stdout] 35 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of 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/controls.rs:38:1
[INFO] [stdout]     |
[INFO] [stdout]  38 | / lazy_static! {
[INFO] [stdout]  39 | |     pub static ref CONTROLS: Vec<Control<'static>> = vec![
[INFO] [stdout]  40 | |         Control {
[INFO] [stdout]  41 | |             modifiers: &[Key::Shift, Key::Ctrl],
[INFO] [stdout] ...   |
[INFO] [stdout] 121 | |     ];
[INFO] [stdout] 122 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of 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/block.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | / lazy_static! {
[INFO] [stdout]  9 | |     pub static ref BLOCK_FUNCS: Mutex<Vec<fn(&mut World, u64)>>
[INFO] [stdout] 10 | |         = Mutex::new(vec![|_, _| {}]);
[INFO] [stdout] 11 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of 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/block.rs:60:1
[INFO] [stdout]     |
[INFO] [stdout]  60 | / lazy_static! {
[INFO] [stdout]  61 | |     pub static ref GROUND: Block = Block::new(
[INFO] [stdout]  62 | |         Shape::new('.', (128, 128, 128), (0, 0, 0)),
[INFO] [stdout]  63 | |         "Ground".into(),
[INFO] [stdout] ...   |
[INFO] [stdout] 132 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of 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/block.rs:60:1
[INFO] [stdout]     |
[INFO] [stdout]  60 | / lazy_static! {
[INFO] [stdout]  61 | |     pub static ref GROUND: Block = Block::new(
[INFO] [stdout]  62 | |         Shape::new('.', (128, 128, 128), (0, 0, 0)),
[INFO] [stdout]  63 | |         "Ground".into(),
[INFO] [stdout] ...   |
[INFO] [stdout] 132 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of 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/block.rs:60:1
[INFO] [stdout]     |
[INFO] [stdout]  60 | / lazy_static! {
[INFO] [stdout]  61 | |     pub static ref GROUND: Block = Block::new(
[INFO] [stdout]  62 | |         Shape::new('.', (128, 128, 128), (0, 0, 0)),
[INFO] [stdout]  63 | |         "Ground".into(),
[INFO] [stdout] ...   |
[INFO] [stdout] 132 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of 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/block.rs:60:1
[INFO] [stdout]     |
[INFO] [stdout]  60 | / lazy_static! {
[INFO] [stdout]  61 | |     pub static ref GROUND: Block = Block::new(
[INFO] [stdout]  62 | |         Shape::new('.', (128, 128, 128), (0, 0, 0)),
[INFO] [stdout]  63 | |         "Ground".into(),
[INFO] [stdout] ...   |
[INFO] [stdout] 132 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of 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/block.rs:60:1
[INFO] [stdout]     |
[INFO] [stdout]  60 | / lazy_static! {
[INFO] [stdout]  61 | |     pub static ref GROUND: Block = Block::new(
[INFO] [stdout]  62 | |         Shape::new('.', (128, 128, 128), (0, 0, 0)),
[INFO] [stdout]  63 | |         "Ground".into(),
[INFO] [stdout] ...   |
[INFO] [stdout] 132 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of 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/crafting.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | / lazy_static! {
[INFO] [stdout] 11 | |     pub static ref RECIPES: Vec<Recipe> = vec![
[INFO] [stdout] 12 | |         Recipe {
[INFO] [stdout] 13 | |             out: InventoryItem::Block(block::MOVER.clone()),
[INFO] [stdout] ...  |
[INFO] [stdout] 49 | |     ];
[INFO] [stdout] 50 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of 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/entity/mod.rs:159:27
[INFO] [stdout]     |
[INFO] [stdout] 159 |               type Target = Entity;
[INFO] [stdout]     |                             ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 | / MakeEntityWrapper!(
[INFO] [stdout] 183 | |     Player=WPlayer,
[INFO] [stdout] 184 | |     Josef=WJosef,
[INFO] [stdout] 185 | |     Police=WPolice,
[INFO] [stdout] 186 | |     Bomb=WBomb,
[INFO] [stdout] 187 | |     Bullet=WBullet
[INFO] [stdout] 188 | |     );
[INFO] [stdout]     | |_____- in this macro invocation
[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]     = note: this warning originates in the macro `MakeEntityWrapper` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/ext.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/key.rs:50:11
[INFO] [stdout]    |
[INFO] [stdout] 50 |         65...90 => Some(Key::Letter(code - b'A')),
[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: `...` range patterns are deprecated
[INFO] [stdout]   --> src/key.rs:51:11
[INFO] [stdout]    |
[INFO] [stdout] 51 |         48...57 => Some(Key::Digit(code - 48)),
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/lib.rs:406:58
[INFO] [stdout]     |
[INFO] [stdout] 406 |         rouge.world.generate(WORLD_SIZE.0, WORLD_SIZE.1);;
[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] error[E0599]: no method named `remove_item` found for struct `Vec<((u16, u16), Vec<MoveDir>)>` in the current scope
[INFO] [stdout]    --> src/entity/police.rs:116:31
[INFO] [stdout]     |
[INFO] [stdout] 116 |                         paths.remove_item(&(*pos, path.clone()));
[INFO] [stdout]     |                               ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `remove` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 116 -                         paths.remove_item(&(*pos, path.clone()));
[INFO] [stdout] 116 +                         paths.remove(&(*pos, path.clone()));
[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/lib.rs:68:1
[INFO] [stdout]    |
[INFO] [stdout] 68 | / lazy_static! {
[INFO] [stdout] 69 | |     static ref GAME: Mutex<Game> = Mutex::new(
[INFO] [stdout] 70 | |         Game {
[INFO] [stdout] 71 | |             state: GameState::Menu(Difficulty::Easy),
[INFO] [stdout] 72 | |             size: (0, 0)
[INFO] [stdout] 73 | |         });
[INFO] [stdout] 74 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `nll` has been stable since 1.63.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/lib.rs:1:29
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(vec_remove_item, nll, const_let)]
[INFO] [stdout]   |                             ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `const_let` has been stable since 1.33.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/lib.rs:1:34
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(vec_remove_item, nll, const_let)]
[INFO] [stdout]   |                                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0635]: unknown feature `vec_remove_item`
[INFO] [stdout]  --> src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(vec_remove_item, nll, const_let)]
[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/ext.rs:32:1
[INFO] [stdout]    |
[INFO] [stdout] 32 | / lazy_static! {
[INFO] [stdout] 33 | |     static ref SCREEN: Mutex<Vec<Vec<Shape>>> = Mutex::new(vec![]);
[INFO] [stdout] 34 | |     static ref UNFLIPPED: Mutex<Vec<Vec<Shape>>> = Mutex::new(vec![]);
[INFO] [stdout] 35 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of 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/ext.rs:32:1
[INFO] [stdout]    |
[INFO] [stdout] 32 | / lazy_static! {
[INFO] [stdout] 33 | |     static ref SCREEN: Mutex<Vec<Vec<Shape>>> = Mutex::new(vec![]);
[INFO] [stdout] 34 | |     static ref UNFLIPPED: Mutex<Vec<Vec<Shape>>> = Mutex::new(vec![]);
[INFO] [stdout] 35 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of 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/controls.rs:38:1
[INFO] [stdout]     |
[INFO] [stdout]  38 | / lazy_static! {
[INFO] [stdout]  39 | |     pub static ref CONTROLS: Vec<Control<'static>> = vec![
[INFO] [stdout]  40 | |         Control {
[INFO] [stdout]  41 | |             modifiers: &[Key::Shift, Key::Ctrl],
[INFO] [stdout] ...   |
[INFO] [stdout] 121 | |     ];
[INFO] [stdout] 122 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of 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/block.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | / lazy_static! {
[INFO] [stdout]  9 | |     pub static ref BLOCK_FUNCS: Mutex<Vec<fn(&mut World, u64)>>
[INFO] [stdout] 10 | |         = Mutex::new(vec![|_, _| {}]);
[INFO] [stdout] 11 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of 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/block.rs:60:1
[INFO] [stdout]     |
[INFO] [stdout]  60 | / lazy_static! {
[INFO] [stdout]  61 | |     pub static ref GROUND: Block = Block::new(
[INFO] [stdout]  62 | |         Shape::new('.', (128, 128, 128), (0, 0, 0)),
[INFO] [stdout]  63 | |         "Ground".into(),
[INFO] [stdout] ...   |
[INFO] [stdout] 132 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of 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/block.rs:60:1
[INFO] [stdout]     |
[INFO] [stdout]  60 | / lazy_static! {
[INFO] [stdout]  61 | |     pub static ref GROUND: Block = Block::new(
[INFO] [stdout]  62 | |         Shape::new('.', (128, 128, 128), (0, 0, 0)),
[INFO] [stdout]  63 | |         "Ground".into(),
[INFO] [stdout] ...   |
[INFO] [stdout] 132 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of 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/block.rs:60:1
[INFO] [stdout]     |
[INFO] [stdout]  60 | / lazy_static! {
[INFO] [stdout]  61 | |     pub static ref GROUND: Block = Block::new(
[INFO] [stdout]  62 | |         Shape::new('.', (128, 128, 128), (0, 0, 0)),
[INFO] [stdout]  63 | |         "Ground".into(),
[INFO] [stdout] ...   |
[INFO] [stdout] 132 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of 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/block.rs:60:1
[INFO] [stdout]     |
[INFO] [stdout]  60 | / lazy_static! {
[INFO] [stdout]  61 | |     pub static ref GROUND: Block = Block::new(
[INFO] [stdout]  62 | |         Shape::new('.', (128, 128, 128), (0, 0, 0)),
[INFO] [stdout]  63 | |         "Ground".into(),
[INFO] [stdout] ...   |
[INFO] [stdout] 132 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of 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/block.rs:60:1
[INFO] [stdout]     |
[INFO] [stdout]  60 | / lazy_static! {
[INFO] [stdout]  61 | |     pub static ref GROUND: Block = Block::new(
[INFO] [stdout]  62 | |         Shape::new('.', (128, 128, 128), (0, 0, 0)),
[INFO] [stdout]  63 | |         "Ground".into(),
[INFO] [stdout] ...   |
[INFO] [stdout] 132 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of 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/crafting.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | / lazy_static! {
[INFO] [stdout] 11 | |     pub static ref RECIPES: Vec<Recipe> = vec![
[INFO] [stdout] 12 | |         Recipe {
[INFO] [stdout] 13 | |             out: InventoryItem::Block(block::MOVER.clone()),
[INFO] [stdout] ...  |
[INFO] [stdout] 49 | |     ];
[INFO] [stdout] 50 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of 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/entity/mod.rs:159:27
[INFO] [stdout]     |
[INFO] [stdout] 159 |               type Target = Entity;
[INFO] [stdout]     |                             ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 | / MakeEntityWrapper!(
[INFO] [stdout] 183 | |     Player=WPlayer,
[INFO] [stdout] 184 | |     Josef=WJosef,
[INFO] [stdout] 185 | |     Police=WPolice,
[INFO] [stdout] 186 | |     Bomb=WBomb,
[INFO] [stdout] 187 | |     Bullet=WBullet
[INFO] [stdout] 188 | |     );
[INFO] [stdout]     | |_____- in this macro invocation
[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]     = note: this warning originates in the macro `MakeEntityWrapper` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `remove_item` found for struct `Vec<((u16, u16), Vec<MoveDir>)>` in the current scope
[INFO] [stdout]    --> src/entity/police.rs:116:31
[INFO] [stdout]     |
[INFO] [stdout] 116 |                         paths.remove_item(&(*pos, path.clone()));
[INFO] [stdout]     |                               ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `remove` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 116 -                         paths.remove_item(&(*pos, path.clone()));
[INFO] [stdout] 116 +                         paths.remove(&(*pos, path.clone()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0599, E0635.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0599`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `soviet-sim` (lib) due to 2 previous errors; 18 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] Some errors have detailed explanations: E0599, E0635.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0599`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `soviet-sim` (lib test) due to 2 previous errors; 18 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "ff570174956c6d2db10b1ba817e6dc2a4d30936c0e5f16ddd57ac7e4617b023a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ff570174956c6d2db10b1ba817e6dc2a4d30936c0e5f16ddd57ac7e4617b023a", kill_on_drop: false }`
[INFO] [stdout] ff570174956c6d2db10b1ba817e6dc2a4d30936c0e5f16ddd57ac7e4617b023a
