[INFO] cloning repository https://github.com/sinesc/spacegame
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/sinesc/spacegame" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsinesc%2Fspacegame", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsinesc%2Fspacegame'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ceadb3ba604624d9873c0facaef2aed50c9282e3
[INFO] testing sinesc/spacegame against master#1f7f8ea0721a3b1eb73e6c6d25cccb371434b320 for pr-154065-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsinesc%2Fspacegame" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/sinesc/spacegame
[INFO] finished tweaking git repo https://github.com/sinesc/spacegame
[INFO] tweaked toml for git repo https://github.com/sinesc/spacegame written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/sinesc/spacegame on toolchain 1f7f8ea0721a3b1eb73e6c6d25cccb371434b320
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/sinesc/spacegame 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" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "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] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded dtoa v0.4.2
[INFO] [stderr]   Downloaded coreaudio-sys v0.2.1
[INFO] [stderr]   Downloaded lazy_static v1.0.1
[INFO] [stderr]   Downloaded shred-derive v0.5.0
[INFO] [stderr]   Downloaded thread_local v0.3.5
[INFO] [stderr]   Downloaded token_store v0.1.2
[INFO] [stderr]   Downloaded cfg-if v0.1.3
[INFO] [stderr]   Downloaded core-text v9.2.0
[INFO] [stderr]   Downloaded phf_shared v0.7.22
[INFO] [stderr]   Downloaded backtrace v0.3.8
[INFO] [stderr]   Downloaded font-loader v0.6.0
[INFO] [stderr]   Downloaded enum_primitive v0.1.1
[INFO] [stderr]   Downloaded gleam v0.5.1
[INFO] [stderr]   Downloaded avec v0.1.0
[INFO] [stderr]   Downloaded objc v0.2.2
[INFO] [stderr]   Downloaded core-foundation v0.5.1
[INFO] [stderr]   Downloaded wayland-kbd v0.13.1
[INFO] [stderr]   Downloaded cmake v0.1.31
[INFO] [stderr]   Downloaded winit v0.12.0
[INFO] [stderr]   Downloaded deflate v0.7.18
[INFO] [stderr]   Downloaded syn v0.14.2
[INFO] [stderr]   Downloaded regex v1.0.0
[INFO] [stderr]   Downloaded regex-syntax v0.6.0
[INFO] [stderr]   Downloaded clap v2.31.2
[INFO] [stderr]   Downloaded image v0.19.0
[INFO] [stderr]   Downloaded rayon v1.0.1
[INFO] [stderr]   Downloaded syn v0.12.15
[INFO] [stderr]   Downloaded wayland-protocols v0.12.5
[INFO] [stderr]   Downloaded specs v0.11.2
[INFO] [stderr]   Downloaded backtrace-sys v0.1.23
[INFO] [stderr]   Downloaded serde v1.0.66
[INFO] [stderr]   Downloaded x11-dl v2.18.0
[INFO] [stderr]   Downloaded inflate v0.4.2
[INFO] [stderr]   Downloaded palette v0.3.0
[INFO] [stderr]   Downloaded expat-sys v2.1.5
[INFO] [stderr]   Downloaded stb_truetype v0.2.2
[INFO] [stderr]   Downloaded claxon v0.3.1
[INFO] [stderr]   Downloaded ogg v0.4.1
[INFO] [stderr]   Downloaded glium v0.21.0
[INFO] [stderr]   Downloaded lewton v0.5.2
[INFO] [stderr]   Downloaded winapi v0.3.5
[INFO] [stderr]   Downloaded serde_derive v1.0.66
[INFO] [stderr]   Downloaded log v0.4.2
[INFO] [stderr]   Downloaded rayon-core v1.4.0
[INFO] [stderr]   Downloaded itertools v0.5.10
[INFO] [stderr]   Downloaded syn v0.10.8
[INFO] [stderr]   Downloaded glutin v0.14.0
[INFO] [stderr]   Downloaded num-rational v0.1.42
[INFO] [stderr]   Downloaded num-traits v0.2.4
[INFO] [stderr]   Downloaded cpal v0.8.1
[INFO] [stderr]   Downloaded byteorder v1.2.3
[INFO] [stderr]   Downloaded shred v0.7.0
[INFO] [stderr]   Downloaded cc v1.0.17
[INFO] [stderr]   Downloaded serde_yaml v0.7.4
[INFO] [stderr]   Downloaded tempfile v3.0.2
[INFO] [stderr]   Downloaded wayland-client v0.12.5
[INFO] [stderr]   Downloaded rusttype v0.5.2
[INFO] [stderr]   Downloaded derivative v1.0.0
[INFO] [stderr]   Downloaded parking_lot v0.5.5
[INFO] [stderr]   Downloaded radiant-rs v0.12.6
[INFO] [stderr]   Downloaded cgl v0.2.2
[INFO] [stderr]   Downloaded owning_ref v0.3.3
[INFO] [stderr]   Downloaded specs-derive v0.2.0
[INFO] [stderr]   Downloaded yaml-rust v0.3.5
[INFO] [stderr]   Downloaded wayland-window v0.13.3
[INFO] [stderr]   Downloaded nodrop v0.1.12
[INFO] [stderr]   Downloaded stable_deref_trait v1.0.0
[INFO] [stderr]   Downloaded yaml-rust v0.4.0
[INFO] [stderr]   Downloaded color_quant v1.0.0
[INFO] [stderr]   Downloaded gif v0.10.0
[INFO] [stderr]   Downloaded jpeg-decoder v0.1.14
[INFO] [stderr]   Downloaded phf_generator v0.7.22
[INFO] [stderr]   Downloaded num_cpus v1.8.0
[INFO] [stderr]   Downloaded smallvec v0.6.1
[INFO] [stderr]   Downloaded parking_lot_core v0.2.14
[INFO] [stderr]   Downloaded shrev v1.0.1
[INFO] [stderr]   Downloaded shared_library v0.1.8
[INFO] [stderr]   Downloaded crossbeam v0.3.2
[INFO] [stderr]   Downloaded memmap v0.6.2
[INFO] [stderr]   Downloaded wayland-scanner v0.12.5
[INFO] [stderr]   Downloaded num-derive v0.2.2
[INFO] [stderr]   Downloaded adler32 v1.0.2
[INFO] [stderr]   Downloaded num-integer v0.1.38
[INFO] [stderr]   Downloaded phf v0.7.22
[INFO] [stderr]   Downloaded siphasher v0.2.2
[INFO] [stderr]   Downloaded phf_codegen v0.7.22
[INFO] [stderr]   Downloaded radiant-utils v0.2.2
[INFO] [stderr]   Downloaded core-graphics v0.13.0
[INFO] [stderr]   Downloaded atty v0.2.10
[INFO] [stderr]   Downloaded servo-fontconfig v0.4.0
[INFO] [stderr]   Downloaded cocoa v0.14.0
[INFO] [stderr]   Downloaded ordered-float v0.5.0
[INFO] [stderr]   Downloaded rodio v0.7.0
[INFO] [stderr]   Downloaded aho-corasick v0.6.4
[INFO] [stderr]   Downloaded proc-macro2 v0.4.6
[INFO] [stderr]   Downloaded hibitset v0.5.0
[INFO] [stderr]   Downloaded arrayvec v0.4.7
[INFO] [stderr]   Downloaded error-chain v0.10.0
[INFO] [stderr]   Downloaded linked-hash-map v0.5.1
[INFO] [stderr]   Downloaded textwrap v0.9.0
[INFO] [stderr]   Downloaded utf8-ranges v1.0.0
[INFO] [stderr]   Downloaded quote v0.6.3
[INFO] [stderr]   Downloaded bitflags v1.0.3
[INFO] [stderr]   Downloaded rustc-demangle v0.1.8
[INFO] [stderr]   Downloaded wayland-sys v0.12.5
[INFO] [stderr]   Downloaded tuple_utils v0.2.0
[INFO] [stderr]   Downloaded yaml-merge-keys v0.2.1
[INFO] [stderr]   Downloaded servo-fontconfig-sys v4.0.4
[INFO] [stderr]   Downloaded servo-freetype-sys v4.0.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/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" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a0020051734220a9d50b7c0a438c85328460c8efcc4245feb538331e2f7d97c1
[INFO] running `Command { std: "docker" "start" "-a" "a0020051734220a9d50b7c0a438c85328460c8efcc4245feb538331e2f7d97c1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a0020051734220a9d50b7c0a438c85328460c8efcc4245feb538331e2f7d97c1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a0020051734220a9d50b7c0a438c85328460c8efcc4245feb538331e2f7d97c1", kill_on_drop: false }`
[INFO] [stdout] a0020051734220a9d50b7c0a438c85328460c8efcc4245feb538331e2f7d97c1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 70874e44e3cd1fb0f2ce62146fea815b3c17dcdd08b9932e7bd07c0c0d391ebf
[INFO] running `Command { std: "docker" "start" "-a" "70874e44e3cd1fb0f2ce62146fea815b3c17dcdd08b9932e7bd07c0c0d391ebf", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr]    Compiling libc v0.2.42
[INFO] [stderr]    Compiling cc v1.0.17
[INFO] [stderr]    Compiling lazy_static v1.0.1
[INFO] [stderr]    Compiling pkg-config v0.3.11
[INFO] [stderr]    Compiling bitflags v1.0.3
[INFO] [stderr]    Compiling num-traits v0.2.4
[INFO] [stderr]    Compiling cfg-if v0.1.3
[INFO] [stderr]    Compiling byteorder v1.2.3
[INFO] [stderr]    Compiling nodrop v0.1.12
[INFO] [stderr]    Compiling scopeguard v0.3.3
[INFO] [stderr]    Compiling memoffset v0.2.1
[INFO] [stderr]    Compiling either v1.5.0
[INFO] [stderr]    Compiling rayon-core v1.4.0
[INFO] [stderr]    Compiling token_store v0.1.2
[INFO] [stderr]    Compiling arrayvec v0.4.7
[INFO] [stderr]    Compiling crossbeam-utils v0.2.2
[INFO] [stderr]    Compiling log v0.4.2
[INFO] [stderr]    Compiling xml-rs v0.7.0
[INFO] [stderr]    Compiling smallvec v0.6.1
[INFO] [stderr]    Compiling void v1.0.2
[INFO] [stderr]    Compiling siphasher v0.2.2
[INFO] [stderr]    Compiling num-integer v0.1.38
[INFO] [stderr]    Compiling phf_shared v0.7.22
[INFO] [stderr]    Compiling proc-macro2 v0.4.6
[INFO] [stderr]    Compiling x11-dl v2.18.0
[INFO] [stderr]    Compiling remove_dir_all v0.5.1
[INFO] [stderr]    Compiling rand v0.4.2
[INFO] [stderr]    Compiling crossbeam-epoch v0.3.1
[INFO] [stderr]    Compiling num_cpus v1.8.0
[INFO] [stderr]    Compiling memmap v0.6.2
[INFO] [stderr]    Compiling unicode-xid v0.0.4
[INFO] [stderr]    Compiling servo-fontconfig-sys v4.0.4
[INFO] [stderr]    Compiling rustc-demangle v0.1.8
[INFO] [stderr]    Compiling linked-hash-map v0.5.1
[INFO] [stderr]    Compiling quote v0.6.3
[INFO] [stderr]    Compiling serde v1.0.66
[INFO] [stderr]    Compiling approx v0.1.1
[INFO] [stderr]    Compiling quote v0.3.15
[INFO] [stderr]    Compiling cmake v0.1.31
[INFO] [stderr]    Compiling adler32 v1.0.2
[INFO] [stderr]    Compiling wayland-scanner v0.12.5
[INFO] [stderr]    Compiling crossbeam-deque v0.2.0
[INFO] [stderr]    Compiling gl_generator v0.9.0
[INFO] [stderr]    Compiling num-iter v0.1.37
[INFO] [stderr]    Compiling syn v0.14.2
[INFO] [stderr]    Compiling shared_library v0.1.8
[INFO] [stderr]    Compiling percent-encoding v1.0.1
[INFO] [stderr]    Compiling fnv v1.0.6
[INFO] [stderr]    Compiling tempfile v3.0.2
[INFO] [stderr]    Compiling num-traits v0.1.43
[INFO] [stderr]    Compiling libloading v0.5.0
[INFO] [stderr]    Compiling wayland-client v0.12.5
[INFO] [stderr]    Compiling wayland-protocols v0.12.5
[INFO] [stderr]    Compiling backtrace-sys v0.1.23
[INFO] [stderr]    Compiling expat-sys v2.1.5
[INFO] [stderr]    Compiling servo-freetype-sys v4.0.3
[INFO] [stderr]    Compiling phf_generator v0.7.22
[INFO] [stderr]    Compiling rayon v1.0.1
[INFO] [stderr]    Compiling phf_codegen v0.7.22
[INFO] [stderr]    Compiling glutin v0.14.0
[INFO] [stderr]    Compiling glium v0.21.0
[INFO] [stderr]    Compiling palette v0.3.0
[INFO] [stderr]    Compiling dlib v0.4.1
[INFO] [stderr]    Compiling wayland-sys v0.12.5
[INFO] [stderr]    Compiling osmesa-sys v0.1.2
[INFO] [stderr]    Compiling deflate v0.7.18
[INFO] [stderr]    Compiling inflate v0.4.2
[INFO] [stderr]    Compiling memchr v2.0.1
[INFO] [stderr]    Compiling alsa-sys v0.1.2
[INFO] [stderr]    Compiling unreachable v1.0.0
[INFO] [stderr]    Compiling unreachable v0.1.1
[INFO] [stderr]    Compiling stable_deref_trait v1.0.0
[INFO] [stderr]    Compiling regex v1.0.0
[INFO] [stderr]    Compiling lzw v0.10.0
[INFO] [stderr]    Compiling ucd-util v0.1.1
[INFO] [stderr]    Compiling color_quant v1.0.0
[INFO] [stderr]    Compiling itertools v0.5.10
[INFO] [stderr]    Compiling regex-syntax v0.6.0
[INFO] [stderr]    Compiling png v0.12.0
[INFO] [stderr]    Compiling gif v0.10.0
[INFO] [stderr]    Compiling num-derive v0.2.2
[INFO] [stderr]    Compiling jpeg-decoder v0.1.14
[INFO] [stderr]    Compiling owning_ref v0.3.3
[INFO] [stderr]    Compiling ordered-float v0.5.0
[INFO] [stderr]    Compiling backtrace v0.3.8
[INFO] [stderr]    Compiling thread_local v0.3.5
[INFO] [stderr]    Compiling aho-corasick v0.6.4
[INFO] [stderr]    Compiling phf v0.7.22
[INFO] [stderr]    Compiling servo-fontconfig v0.4.0
[INFO] [stderr]    Compiling num-rational v0.1.42
[INFO] [stderr]    Compiling wayland-kbd v0.13.1
[INFO] [stderr]    Compiling parking_lot_core v0.2.14
[INFO] [stderr]    Compiling syn v0.10.8
[INFO] [stderr]    Compiling synom v0.11.3
[INFO] [stderr]    Compiling stb_truetype v0.2.2
[INFO] [stderr]    Compiling proc-macro2 v0.2.3
[INFO] [stderr]    Compiling lazy_static v0.2.11
[INFO] [stderr]    Compiling scoped_threadpool v0.1.9
[INFO] [stderr]    Compiling utf8-ranges v1.0.0
[INFO] [stderr]    Compiling image v0.19.0
[INFO] [stderr]    Compiling rusttype v0.5.2
[INFO] [stderr]    Compiling quote v0.4.2
[INFO] [stderr]    Compiling parking_lot v0.5.5
[INFO] [stderr]    Compiling syn v0.11.11
[INFO] [stderr]    Compiling font-loader v0.6.0
[INFO] [stderr]    Compiling wayland-window v0.13.3
[INFO] [stderr]    Compiling serde_derive v1.0.66
[INFO] [stderr]    Compiling winit v0.12.0
[INFO] [stderr]    Compiling enum_primitive v0.1.1
[INFO] [stderr]    Compiling rand v0.3.22
[INFO] [stderr]    Compiling yaml-rust v0.4.0
[INFO] [stderr]    Compiling ogg v0.4.1
[INFO] [stderr]    Compiling fxhash v0.2.1
[INFO] [stderr]    Compiling atom v0.3.5
[INFO] [stderr]    Compiling avec v0.1.0
[INFO] [stderr]    Compiling unicode-normalization v0.1.7
[INFO] [stderr]    Compiling dtoa v0.4.2
[INFO] [stderr]    Compiling mopa v0.2.2
[INFO] [stderr]    Compiling derivative v1.0.0
[INFO] [stderr]    Compiling hibitset v0.5.0
[INFO] [stderr]    Compiling shred v0.7.0
[INFO] [stderr]    Compiling shred-derive v0.5.0
[INFO] [stderr]    Compiling lewton v0.5.2
[INFO] [stderr]    Compiling serde_yaml v0.7.4
[INFO] [stderr]    Compiling cgmath v0.14.1
[INFO] [stderr]    Compiling shrev v1.0.1
[INFO] [stderr]    Compiling cpal v0.8.1
[INFO] [stderr]    Compiling syn v0.12.15
[INFO] [stderr]    Compiling error-chain v0.10.0
[INFO] [stderr]    Compiling itertools v0.7.8
[INFO] [stderr]    Compiling hound v3.4.0
[INFO] [stderr]    Compiling yaml-rust v0.3.5
[INFO] [stderr]    Compiling tuple_utils v0.2.0
[INFO] [stderr]    Compiling claxon v0.3.1
[INFO] [stderr]    Compiling crossbeam v0.3.2
[INFO] [stderr]    Compiling unicode-segmentation v1.2.1
[INFO] [stderr]    Compiling rodio v0.7.0
[INFO] [stderr]    Compiling specs-derive v0.2.0
[INFO] [stderr]    Compiling specs v0.11.2
[INFO] [stderr]    Compiling yaml-merge-keys v0.2.1
[INFO] [stderr]    Compiling radiant-rs v0.12.6
[INFO] [stderr]    Compiling radiant-utils v0.2.2
[INFO] [stderr]    Compiling spacegame v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `cmp`, `collections`, and `process`
[INFO] [stdout]  --> src/prelude.rs:1:19
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub use std::{fs, cmp, path, collections, io, process, fmt, error};
[INFO] [stdout]   |                   ^^^        ^^^^^^^^^^^      ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `radiant_utils::maths as rm`
[INFO] [stdout]   --> src/prelude.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use radiant_utils::maths as rm;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `radiant_utils::util as ru`
[INFO] [stdout]   --> src/prelude.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use radiant_utils::util as ru;
[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/def/mod.rs:21:1
[INFO] [stdout]    |
[INFO] [stdout] 21 | / lazy_static! {
[INFO] [stdout] 22 | |     static ref MERGE_KEY: serde_yaml::Value = serde_yaml::Value::String("<<<".to_string());
[INFO] [stdout] 23 | | }
[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: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/def/mod.rs:28:23
[INFO] [stdout]    |
[INFO] [stdout] 28 |     cause: Option<Box<error::Error>>,
[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] 28 |     cause: Option<Box<dyn error::Error>>,
[INFO] [stdout]    |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/cmd.rs:55:27
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub type Handler<T> = Box<Fn(&Cmd<T>, &[Param])>;
[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] 55 | pub type Handler<T> = Box<dyn Fn(&Cmd<T>, &[Param])>;
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/def/mod.rs:47:38
[INFO] [stdout]    |
[INFO] [stdout] 47 |     fn cause(self: &Self) -> Option<&error::Error> {
[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] 47 |     fn cause(self: &Self) -> Option<&dyn error::Error> {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/cmd.rs:37:33
[INFO] [stdout]    |
[INFO] [stdout] 37 |         write!(f, "{} {}", self.description(), match self {
[INFO] [stdout]    |                                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/level/system/inertia.rs:48:21
[INFO] [stdout]    |
[INFO] [stdout] 48 |                 let mut av_current = (target_angle - old_angle).to_radians();
[INFO] [stdout]    |                     ----^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/level/system/inertia.rs:94:21
[INFO] [stdout]    |
[INFO] [stdout] 94 |                 let mut av_current = (target_angle - old_angle).to_radians();
[INFO] [stdout]    |                     ----^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/level/system/compute.rs:65:17
[INFO] [stdout]    |
[INFO] [stdout] 65 |             let mut a1 = Angle::from(target_pos - spatial.position);
[INFO] [stdout]    |                 ----^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/level/mod.rs:104:17
[INFO] [stdout]     |
[INFO] [stdout] 104 |             let mut layer = Layer::new((info.scale * 1920., info.scale * 1080.)).arc();
[INFO] [stdout]     |                 ----^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `angle` is never read
[INFO] [stdout]   --> src/def/spawner.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct SpawnerParameters {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] 46 |     pub position: Vec2,
[INFO] [stdout] 47 |     pub angle: Angle,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SpawnerParameters` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `dispatch` is never read
[INFO] [stdout]   --> src/def/spawner.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct SpawnerDescriptor {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] 55 |     pub dispatch: SpawnerDispatch,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SpawnerDescriptor` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sprite` is never read
[INFO] [stdout]   --> src/level/mod.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct Infrastructure {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     sprite      : Repository<Arc<Sprite>>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `spawn_lazy` is never used
[INFO] [stdout]   --> src/level/mod.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl WorldState {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 36 |     // TODO: not really nice to have these on worldstate. they are only here because they require "age", which is available on world...
[INFO] [stdout] 37 |     pub fn spawn_lazy(self: &Self, lazy: &LazyUpdate, entities: &EntitiesRes, name: &str, position: Option<Vec2>, angle: Option<Angl...
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/cmd.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     Int(i32),
[INFO] [stdout]    |     --- ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Param` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 17 -     Int(i32),
[INFO] [stdout] 17 +     Int(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/cmd.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 |     Float(f32),
[INFO] [stdout]    |     ----- ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Param` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 18 -     Float(f32),
[INFO] [stdout] 18 +     Float(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/cmd.rs:19:10
[INFO] [stdout]    |
[INFO] [stdout] 19 |     Bool(bool),
[INFO] [stdout]    |     ---- ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Param` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 19 -     Bool(bool),
[INFO] [stdout] 19 +     Bool(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `level` is never read
[INFO] [stdout]   --> src/console/mod.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct CommandContext<'a, 'b> {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 10 |     pub menu            : Rc<Menu>,
[INFO] [stdout] 11 |     pub level           : Rc<RefCell<Level<'a, 'b>>>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/def/layer.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | #[derive(Deserialize, Debug)]
[INFO] [stdout]   |          -^^^^^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `LayerDef` is not local
[INFO] [stdout]   |          `Deserialize` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_LayerDef`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/def/layer.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 | #[derive(Deserialize, Debug)]
[INFO] [stdout]    |          -^^^^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `LayerCreate` is not local
[INFO] [stdout]    |          `Deserialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_LayerCreate`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/def/layer.rs:24:10
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[derive(Deserialize, Debug)]
[INFO] [stdout]    |          -^^^^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `LayerRender` is not local
[INFO] [stdout]    |          `Deserialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_LayerRender`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/def/entity.rs:37:10
[INFO] [stdout]    |
[INFO] [stdout] 37 | #[derive(Deserialize, Debug)]
[INFO] [stdout]    |          -^^^^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `EntityDescriptor` is not local
[INFO] [stdout]    |          `Deserialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_EntityDescriptor`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/def/spawner.rs:31:30
[INFO] [stdout]    |
[INFO] [stdout] 31 | #[derive(Copy, Clone, Debug, Deserialize)]
[INFO] [stdout]    |                              -^^^^^^^^^^
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              `SpawnerDispatch` is not local
[INFO] [stdout]    |                              `Deserialize` is not local
[INFO] [stdout]    |                              move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_SpawnerDispatch`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/def/spawner.rs:44:26
[INFO] [stdout]    |
[INFO] [stdout] 44 | #[derive(Default, Debug, Deserialize)]
[INFO] [stdout]    |                          -^^^^^^^^^^
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          `SpawnerParameters` is not local
[INFO] [stdout]    |                          `Deserialize` is not local
[INFO] [stdout]    |                          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_SpawnerParameters`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/def/spawner.rs:53:26
[INFO] [stdout]    |
[INFO] [stdout] 53 | #[derive(Default, Debug, Deserialize)]
[INFO] [stdout]    |                          -^^^^^^^^^^
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          `SpawnerDescriptor` is not local
[INFO] [stdout]    |                          `Deserialize` is not local
[INFO] [stdout]    |                          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_SpawnerDescriptor`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/def/menu.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | #[derive(Deserialize, Debug)]
[INFO] [stdout]   |          -^^^^^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `MenuDef` is not local
[INFO] [stdout]   |          `Deserialize` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_MenuDef`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/def/menu.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[derive(Deserialize, Debug)]
[INFO] [stdout]    |          -^^^^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `MenuGroup` is not local
[INFO] [stdout]    |          `Deserialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_MenuGroup`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/def/menu.rs:34:10
[INFO] [stdout]    |
[INFO] [stdout] 34 | #[derive(Deserialize, Debug)]
[INFO] [stdout]    |          -^^^^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `MenuItem` is not local
[INFO] [stdout]    |          `Deserialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_MenuItem`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/level/component/visual.rs:9:24
[INFO] [stdout]   |
[INFO] [stdout] 9 | #[derive(Clone, Debug, Deserialize, Component)]
[INFO] [stdout]   |                        -^^^^^^^^^^
[INFO] [stdout]   |                        |
[INFO] [stdout]   |                        `Visual` is not local
[INFO] [stdout]   |                        `Deserialize` is not local
[INFO] [stdout]   |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Visual`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/level/component/spatial.rs:9:24
[INFO] [stdout]   |
[INFO] [stdout] 9 | #[derive(Clone, Debug, Deserialize, Default, Component)]
[INFO] [stdout]   |                        -^^^^^^^^^^
[INFO] [stdout]   |                        |
[INFO] [stdout]   |                        `Spatial` is not local
[INFO] [stdout]   |                        `Deserialize` is not local
[INFO] [stdout]   |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Spatial`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/level/component/inertial.rs:4:35
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[derive(Clone, Debug, PartialEq, Deserialize)]
[INFO] [stdout]   |                                   -^^^^^^^^^^
[INFO] [stdout]   |                                   |
[INFO] [stdout]   |                                   `InertialMotionType` is not local
[INFO] [stdout]   |                                   `Deserialize` is not local
[INFO] [stdout]   |                                   move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_InertialMotionType`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/level/component/inertial.rs:23:24
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Clone, Debug, Deserialize, Default, Component)]
[INFO] [stdout]    |                        -^^^^^^^^^^
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Inertial` is not local
[INFO] [stdout]    |                        `Deserialize` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Inertial`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/level/component/controlled.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 | #[derive(Clone, Debug, Deserialize, Default, Component)]
[INFO] [stdout]   |                        -^^^^^^^^^^
[INFO] [stdout]   |                        |
[INFO] [stdout]   |                        `Controlled` is not local
[INFO] [stdout]   |                        `Deserialize` is not local
[INFO] [stdout]   |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Controlled`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/level/component/computed.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 | #[derive(Clone, Debug, Deserialize, Default, Component)]
[INFO] [stdout]   |                        -^^^^^^^^^^
[INFO] [stdout]   |                        |
[INFO] [stdout]   |                        `Computed` is not local
[INFO] [stdout]   |                        `Deserialize` is not local
[INFO] [stdout]   |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Computed`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/level/component/lifetime.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 | #[derive(Clone, Debug, Deserialize, Default, Component)]
[INFO] [stdout]   |                        -^^^^^^^^^^
[INFO] [stdout]   |                        |
[INFO] [stdout]   |                        `Lifetime` is not local
[INFO] [stdout]   |                        `Deserialize` is not local
[INFO] [stdout]   |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Lifetime`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/level/component/shooter.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 | #[derive(Clone, Debug, Deserialize, Component)]
[INFO] [stdout]   |                        -^^^^^^^^^^
[INFO] [stdout]   |                        |
[INFO] [stdout]   |                        `Shooter` is not local
[INFO] [stdout]   |                        `Deserialize` is not local
[INFO] [stdout]   |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Shooter`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/level/component/fading.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 | #[derive(Clone, Debug, Deserialize, Default, Component)]
[INFO] [stdout]   |                        -^^^^^^^^^^
[INFO] [stdout]   |                        |
[INFO] [stdout]   |                        `Fading` is not local
[INFO] [stdout]   |                        `Deserialize` is not local
[INFO] [stdout]   |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Fading`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/level/component/bounding.rs:9:24
[INFO] [stdout]   |
[INFO] [stdout] 9 | #[derive(Clone, Debug, Deserialize, Default, Component)]
[INFO] [stdout]   |                        -^^^^^^^^^^
[INFO] [stdout]   |                        |
[INFO] [stdout]   |                        `Bounding` is not local
[INFO] [stdout]   |                        `Deserialize` is not local
[INFO] [stdout]   |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Bounding`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/level/component/explodes.rs:7:24
[INFO] [stdout]   |
[INFO] [stdout] 7 | #[derive(Clone, Debug, Deserialize, Default, Component)]
[INFO] [stdout]   |                        -^^^^^^^^^^
[INFO] [stdout]   |                        |
[INFO] [stdout]   |                        `Explodes` is not local
[INFO] [stdout]   |                        `Deserialize` is not local
[INFO] [stdout]   |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Explodes`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/level/component/hitpoints.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 | #[derive(Clone, Debug, Deserialize, Default, Component)]
[INFO] [stdout]   |                        -^^^^^^^^^^
[INFO] [stdout]   |                        |
[INFO] [stdout]   |                        `Hitpoints` is not local
[INFO] [stdout]   |                        `Deserialize` is not local
[INFO] [stdout]   |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Hitpoints`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/level/component/powerup.rs:10:24
[INFO] [stdout]    |
[INFO] [stdout] 10 | #[derive(Clone, Debug, Deserialize, Default, Component)]
[INFO] [stdout]    |                        -^^^^^^^^^^
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Powerup` is not local
[INFO] [stdout]    |                        `Deserialize` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Powerup`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/cmd.rs:77:26
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub fn context(self: &Self) -> ::std::cell::Ref<T> {
[INFO] [stdout]    |                          ^^^^^     ^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub fn context(self: &Self) -> ::std::cell::Ref<'_, T> {
[INFO] [stdout]    |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/cmd.rs:84:30
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn context_mut(self: &Self) -> ::std::cell::RefMut<T> {
[INFO] [stdout]    |                              ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn context_mut(self: &Self) -> ::std::cell::RefMut<'_, T> {
[INFO] [stdout]    |                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/repository.rs:49:23
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub fn values_mut(&mut self) -> IterMut<V> {
[INFO] [stdout]    |                       ^^^^^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub fn values_mut(&mut self) -> IterMut<'_, V> {
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [optimized + debuginfo] target(s) in 2m 58s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: glutin v0.14.0, syn v0.10.8, syn v0.12.15, syn v0.14.2, winit v0.12.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] running `Command { std: "docker" "inspect" "70874e44e3cd1fb0f2ce62146fea815b3c17dcdd08b9932e7bd07c0c0d391ebf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "70874e44e3cd1fb0f2ce62146fea815b3c17dcdd08b9932e7bd07c0c0d391ebf", kill_on_drop: false }`
[INFO] [stdout] 70874e44e3cd1fb0f2ce62146fea815b3c17dcdd08b9932e7bd07c0c0d391ebf
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 20859f7f9f6c5233126ca7b2e45fc59d86f9ca540f3995d2e245819f9d1db878
[INFO] running `Command { std: "docker" "start" "-a" "20859f7f9f6c5233126ca7b2e45fc59d86f9ca540f3995d2e245819f9d1db878", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr]    Compiling spacegame v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `cmp`, `collections`, and `process`
[INFO] [stdout]  --> src/prelude.rs:1:19
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub use std::{fs, cmp, path, collections, io, process, fmt, error};
[INFO] [stdout]   |                   ^^^        ^^^^^^^^^^^      ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `radiant_utils::maths as rm`
[INFO] [stdout]   --> src/prelude.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use radiant_utils::maths as rm;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `radiant_utils::util as ru`
[INFO] [stdout]   --> src/prelude.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use radiant_utils::util as ru;
[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/def/mod.rs:21:1
[INFO] [stdout]    |
[INFO] [stdout] 21 | / lazy_static! {
[INFO] [stdout] 22 | |     static ref MERGE_KEY: serde_yaml::Value = serde_yaml::Value::String("<<<".to_string());
[INFO] [stdout] 23 | | }
[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: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/def/mod.rs:28:23
[INFO] [stdout]    |
[INFO] [stdout] 28 |     cause: Option<Box<error::Error>>,
[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] 28 |     cause: Option<Box<dyn error::Error>>,
[INFO] [stdout]    |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/cmd.rs:55:27
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub type Handler<T> = Box<Fn(&Cmd<T>, &[Param])>;
[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] 55 | pub type Handler<T> = Box<dyn Fn(&Cmd<T>, &[Param])>;
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/def/mod.rs:47:38
[INFO] [stdout]    |
[INFO] [stdout] 47 |     fn cause(self: &Self) -> Option<&error::Error> {
[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] 47 |     fn cause(self: &Self) -> Option<&dyn error::Error> {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/cmd.rs:37:33
[INFO] [stdout]    |
[INFO] [stdout] 37 |         write!(f, "{} {}", self.description(), match self {
[INFO] [stdout]    |                                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/level/system/inertia.rs:48:21
[INFO] [stdout]    |
[INFO] [stdout] 48 |                 let mut av_current = (target_angle - old_angle).to_radians();
[INFO] [stdout]    |                     ----^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/level/system/inertia.rs:94:21
[INFO] [stdout]    |
[INFO] [stdout] 94 |                 let mut av_current = (target_angle - old_angle).to_radians();
[INFO] [stdout]    |                     ----^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/level/system/compute.rs:65:17
[INFO] [stdout]    |
[INFO] [stdout] 65 |             let mut a1 = Angle::from(target_pos - spatial.position);
[INFO] [stdout]    |                 ----^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/level/mod.rs:104:17
[INFO] [stdout]     |
[INFO] [stdout] 104 |             let mut layer = Layer::new((info.scale * 1920., info.scale * 1080.)).arc();
[INFO] [stdout]     |                 ----^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `angle` is never read
[INFO] [stdout]   --> src/def/spawner.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct SpawnerParameters {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] 46 |     pub position: Vec2,
[INFO] [stdout] 47 |     pub angle: Angle,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SpawnerParameters` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `dispatch` is never read
[INFO] [stdout]   --> src/def/spawner.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct SpawnerDescriptor {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] 55 |     pub dispatch: SpawnerDispatch,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SpawnerDescriptor` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sprite` is never read
[INFO] [stdout]   --> src/level/mod.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct Infrastructure {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     sprite      : Repository<Arc<Sprite>>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `spawn_lazy` is never used
[INFO] [stdout]   --> src/level/mod.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl WorldState {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 36 |     // TODO: not really nice to have these on worldstate. they are only here because they require "age", which is available on world...
[INFO] [stdout] 37 |     pub fn spawn_lazy(self: &Self, lazy: &LazyUpdate, entities: &EntitiesRes, name: &str, position: Option<Vec2>, angle: Option<Angl...
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/cmd.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     Int(i32),
[INFO] [stdout]    |     --- ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Param` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 17 -     Int(i32),
[INFO] [stdout] 17 +     Int(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/cmd.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 |     Float(f32),
[INFO] [stdout]    |     ----- ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Param` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 18 -     Float(f32),
[INFO] [stdout] 18 +     Float(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/cmd.rs:19:10
[INFO] [stdout]    |
[INFO] [stdout] 19 |     Bool(bool),
[INFO] [stdout]    |     ---- ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Param` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 19 -     Bool(bool),
[INFO] [stdout] 19 +     Bool(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `level` is never read
[INFO] [stdout]   --> src/console/mod.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct CommandContext<'a, 'b> {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 10 |     pub menu            : Rc<Menu>,
[INFO] [stdout] 11 |     pub level           : Rc<RefCell<Level<'a, 'b>>>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/def/layer.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | #[derive(Deserialize, Debug)]
[INFO] [stdout]   |          -^^^^^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `LayerDef` is not local
[INFO] [stdout]   |          `Deserialize` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_LayerDef`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/def/layer.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 | #[derive(Deserialize, Debug)]
[INFO] [stdout]    |          -^^^^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `LayerCreate` is not local
[INFO] [stdout]    |          `Deserialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_LayerCreate`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/def/layer.rs:24:10
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[derive(Deserialize, Debug)]
[INFO] [stdout]    |          -^^^^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `LayerRender` is not local
[INFO] [stdout]    |          `Deserialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_LayerRender`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/def/entity.rs:37:10
[INFO] [stdout]    |
[INFO] [stdout] 37 | #[derive(Deserialize, Debug)]
[INFO] [stdout]    |          -^^^^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `EntityDescriptor` is not local
[INFO] [stdout]    |          `Deserialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_EntityDescriptor`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/def/spawner.rs:31:30
[INFO] [stdout]    |
[INFO] [stdout] 31 | #[derive(Copy, Clone, Debug, Deserialize)]
[INFO] [stdout]    |                              -^^^^^^^^^^
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              `SpawnerDispatch` is not local
[INFO] [stdout]    |                              `Deserialize` is not local
[INFO] [stdout]    |                              move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_SpawnerDispatch`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/def/spawner.rs:44:26
[INFO] [stdout]    |
[INFO] [stdout] 44 | #[derive(Default, Debug, Deserialize)]
[INFO] [stdout]    |                          -^^^^^^^^^^
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          `SpawnerParameters` is not local
[INFO] [stdout]    |                          `Deserialize` is not local
[INFO] [stdout]    |                          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_SpawnerParameters`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/def/spawner.rs:53:26
[INFO] [stdout]    |
[INFO] [stdout] 53 | #[derive(Default, Debug, Deserialize)]
[INFO] [stdout]    |                          -^^^^^^^^^^
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          `SpawnerDescriptor` is not local
[INFO] [stdout]    |                          `Deserialize` is not local
[INFO] [stdout]    |                          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_SpawnerDescriptor`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/def/menu.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | #[derive(Deserialize, Debug)]
[INFO] [stdout]   |          -^^^^^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `MenuDef` is not local
[INFO] [stdout]   |          `Deserialize` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_MenuDef`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/def/menu.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[derive(Deserialize, Debug)]
[INFO] [stdout]    |          -^^^^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `MenuGroup` is not local
[INFO] [stdout]    |          `Deserialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_MenuGroup`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/def/menu.rs:34:10
[INFO] [stdout]    |
[INFO] [stdout] 34 | #[derive(Deserialize, Debug)]
[INFO] [stdout]    |          -^^^^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `MenuItem` is not local
[INFO] [stdout]    |          `Deserialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_MenuItem`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/level/component/visual.rs:9:24
[INFO] [stdout]   |
[INFO] [stdout] 9 | #[derive(Clone, Debug, Deserialize, Component)]
[INFO] [stdout]   |                        -^^^^^^^^^^
[INFO] [stdout]   |                        |
[INFO] [stdout]   |                        `Visual` is not local
[INFO] [stdout]   |                        `Deserialize` is not local
[INFO] [stdout]   |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Visual`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/level/component/spatial.rs:9:24
[INFO] [stdout]   |
[INFO] [stdout] 9 | #[derive(Clone, Debug, Deserialize, Default, Component)]
[INFO] [stdout]   |                        -^^^^^^^^^^
[INFO] [stdout]   |                        |
[INFO] [stdout]   |                        `Spatial` is not local
[INFO] [stdout]   |                        `Deserialize` is not local
[INFO] [stdout]   |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Spatial`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/level/component/inertial.rs:4:35
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[derive(Clone, Debug, PartialEq, Deserialize)]
[INFO] [stdout]   |                                   -^^^^^^^^^^
[INFO] [stdout]   |                                   |
[INFO] [stdout]   |                                   `InertialMotionType` is not local
[INFO] [stdout]   |                                   `Deserialize` is not local
[INFO] [stdout]   |                                   move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_InertialMotionType`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/level/component/inertial.rs:23:24
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Clone, Debug, Deserialize, Default, Component)]
[INFO] [stdout]    |                        -^^^^^^^^^^
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Inertial` is not local
[INFO] [stdout]    |                        `Deserialize` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Inertial`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/level/component/controlled.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 | #[derive(Clone, Debug, Deserialize, Default, Component)]
[INFO] [stdout]   |                        -^^^^^^^^^^
[INFO] [stdout]   |                        |
[INFO] [stdout]   |                        `Controlled` is not local
[INFO] [stdout]   |                        `Deserialize` is not local
[INFO] [stdout]   |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Controlled`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/level/component/computed.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 | #[derive(Clone, Debug, Deserialize, Default, Component)]
[INFO] [stdout]   |                        -^^^^^^^^^^
[INFO] [stdout]   |                        |
[INFO] [stdout]   |                        `Computed` is not local
[INFO] [stdout]   |                        `Deserialize` is not local
[INFO] [stdout]   |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Computed`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/level/component/lifetime.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 | #[derive(Clone, Debug, Deserialize, Default, Component)]
[INFO] [stdout]   |                        -^^^^^^^^^^
[INFO] [stdout]   |                        |
[INFO] [stdout]   |                        `Lifetime` is not local
[INFO] [stdout]   |                        `Deserialize` is not local
[INFO] [stdout]   |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Lifetime`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/level/component/shooter.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 | #[derive(Clone, Debug, Deserialize, Component)]
[INFO] [stdout]   |                        -^^^^^^^^^^
[INFO] [stdout]   |                        |
[INFO] [stdout]   |                        `Shooter` is not local
[INFO] [stdout]   |                        `Deserialize` is not local
[INFO] [stdout]   |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Shooter`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/level/component/fading.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 | #[derive(Clone, Debug, Deserialize, Default, Component)]
[INFO] [stdout]   |                        -^^^^^^^^^^
[INFO] [stdout]   |                        |
[INFO] [stdout]   |                        `Fading` is not local
[INFO] [stdout]   |                        `Deserialize` is not local
[INFO] [stdout]   |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Fading`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/level/component/bounding.rs:9:24
[INFO] [stdout]   |
[INFO] [stdout] 9 | #[derive(Clone, Debug, Deserialize, Default, Component)]
[INFO] [stdout]   |                        -^^^^^^^^^^
[INFO] [stdout]   |                        |
[INFO] [stdout]   |                        `Bounding` is not local
[INFO] [stdout]   |                        `Deserialize` is not local
[INFO] [stdout]   |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Bounding`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/level/component/explodes.rs:7:24
[INFO] [stdout]   |
[INFO] [stdout] 7 | #[derive(Clone, Debug, Deserialize, Default, Component)]
[INFO] [stdout]   |                        -^^^^^^^^^^
[INFO] [stdout]   |                        |
[INFO] [stdout]   |                        `Explodes` is not local
[INFO] [stdout]   |                        `Deserialize` is not local
[INFO] [stdout]   |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Explodes`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/level/component/hitpoints.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 | #[derive(Clone, Debug, Deserialize, Default, Component)]
[INFO] [stdout]   |                        -^^^^^^^^^^
[INFO] [stdout]   |                        |
[INFO] [stdout]   |                        `Hitpoints` is not local
[INFO] [stdout]   |                        `Deserialize` is not local
[INFO] [stdout]   |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Hitpoints`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/level/component/powerup.rs:10:24
[INFO] [stdout]    |
[INFO] [stdout] 10 | #[derive(Clone, Debug, Deserialize, Default, Component)]
[INFO] [stdout]    |                        -^^^^^^^^^^
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Powerup` is not local
[INFO] [stdout]    |                        `Deserialize` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Powerup`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/cmd.rs:77:26
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub fn context(self: &Self) -> ::std::cell::Ref<T> {
[INFO] [stdout]    |                          ^^^^^     ^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub fn context(self: &Self) -> ::std::cell::Ref<'_, T> {
[INFO] [stdout]    |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/cmd.rs:84:30
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn context_mut(self: &Self) -> ::std::cell::RefMut<T> {
[INFO] [stdout]    |                              ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn context_mut(self: &Self) -> ::std::cell::RefMut<'_, T> {
[INFO] [stdout]    |                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/repository.rs:49:23
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub fn values_mut(&mut self) -> IterMut<V> {
[INFO] [stdout]    |                       ^^^^^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub fn values_mut(&mut self) -> IterMut<'_, V> {
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [optimized + debuginfo] target(s) in 2.30s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: glutin v0.14.0, syn v0.10.8, syn v0.12.15, syn v0.14.2, winit v0.12.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] running `Command { std: "docker" "inspect" "20859f7f9f6c5233126ca7b2e45fc59d86f9ca540f3995d2e245819f9d1db878", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "20859f7f9f6c5233126ca7b2e45fc59d86f9ca540f3995d2e245819f9d1db878", kill_on_drop: false }`
[INFO] [stdout] 20859f7f9f6c5233126ca7b2e45fc59d86f9ca540f3995d2e245819f9d1db878
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 67dc6562eca2f9560d56c09305dc17924df76920849af38e8ab4276e5e70a7c6
[INFO] running `Command { std: "docker" "start" "-a" "67dc6562eca2f9560d56c09305dc17924df76920849af38e8ab4276e5e70a7c6", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: unused imports: `cmp`, `collections`, and `process`
[INFO] [stderr]  --> src/prelude.rs:1:19
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub use std::{fs, cmp, path, collections, io, process, fmt, error};
[INFO] [stderr]   |                   ^^^        ^^^^^^^^^^^      ^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `radiant_utils::maths as rm`
[INFO] [stderr]   --> src/prelude.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub use radiant_utils::maths as rm;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `radiant_utils::util as ru`
[INFO] [stderr]   --> src/prelude.rs:12:9
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub use radiant_utils::util as ru;
[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/def/mod.rs:21:1
[INFO] [stderr]    |
[INFO] [stderr] 21 | / lazy_static! {
[INFO] [stderr] 22 | |     static ref MERGE_KEY: serde_yaml::Value = serde_yaml::Value::String("<<<".to_string());
[INFO] [stderr] 23 | | }
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr]    = 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] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/def/mod.rs:28:23
[INFO] [stderr]    |
[INFO] [stderr] 28 |     cause: Option<Box<error::Error>>,
[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] 28 |     cause: Option<Box<dyn error::Error>>,
[INFO] [stderr]    |                       +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/cmd.rs:55:27
[INFO] [stderr]    |
[INFO] [stderr] 55 | pub type Handler<T> = Box<Fn(&Cmd<T>, &[Param])>;
[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] 55 | pub type Handler<T> = Box<dyn Fn(&Cmd<T>, &[Param])>;
[INFO] [stderr]    |                           +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/def/mod.rs:47:38
[INFO] [stderr]    |
[INFO] [stderr] 47 |     fn cause(self: &Self) -> Option<&error::Error> {
[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] 47 |     fn cause(self: &Self) -> Option<&dyn error::Error> {
[INFO] [stderr]    |                                      +++
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]   --> src/cmd.rs:37:33
[INFO] [stderr]    |
[INFO] [stderr] 37 |         write!(f, "{} {}", self.description(), match self {
[INFO] [stderr]    |                                 ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/level/system/inertia.rs:48:21
[INFO] [stderr]    |
[INFO] [stderr] 48 |                 let mut av_current = (target_angle - old_angle).to_radians();
[INFO] [stderr]    |                     ----^^^^^^^^^^
[INFO] [stderr]    |                     |
[INFO] [stderr]    |                     help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/level/system/inertia.rs:94:21
[INFO] [stderr]    |
[INFO] [stderr] 94 |                 let mut av_current = (target_angle - old_angle).to_radians();
[INFO] [stderr]    |                     ----^^^^^^^^^^
[INFO] [stderr]    |                     |
[INFO] [stderr]    |                     help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/level/system/compute.rs:65:17
[INFO] [stderr]    |
[INFO] [stderr] 65 |             let mut a1 = Angle::from(target_pos - spatial.position);
[INFO] [stderr]    |                 ----^^
[INFO] [stderr]    |                 |
[INFO] [stderr]    |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/level/mod.rs:104:17
[INFO] [stderr]     |
[INFO] [stderr] 104 |             let mut layer = Layer::new((info.scale * 1920., info.scale * 1080.)).arc();
[INFO] [stderr]     |                 ----^^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: field `angle` is never read
[INFO] [stderr]   --> src/def/spawner.rs:47:9
[INFO] [stderr]    |
[INFO] [stderr] 45 | pub struct SpawnerParameters {
[INFO] [stderr]    |            ----------------- field in this struct
[INFO] [stderr] 46 |     pub position: Vec2,
[INFO] [stderr] 47 |     pub angle: Angle,
[INFO] [stderr]    |         ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `SpawnerParameters` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `dispatch` is never read
[INFO] [stderr]   --> src/def/spawner.rs:55:9
[INFO] [stderr]    |
[INFO] [stderr] 54 | pub struct SpawnerDescriptor {
[INFO] [stderr]    |            ----------------- field in this struct
[INFO] [stderr] 55 |     pub dispatch: SpawnerDispatch,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `SpawnerDescriptor` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `sprite` is never read
[INFO] [stderr]   --> src/level/mod.rs:19:5
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub struct Infrastructure {
[INFO] [stderr]    |            -------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 19 |     sprite      : Repository<Arc<Sprite>>,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `spawn_lazy` is never used
[INFO] [stderr]   --> src/level/mod.rs:37:12
[INFO] [stderr]    |
[INFO] [stderr] 35 | impl WorldState {
[INFO] [stderr]    | --------------- method in this implementation
[INFO] [stderr] 36 |     // TODO: not really nice to have these on worldstate. they are only here because they require "age", which is available on world...
[INFO] [stderr] 37 |     pub fn spawn_lazy(self: &Self, lazy: &LazyUpdate, entities: &EntitiesRes, name: &str, position: Option<Vec2>, angle: Option<Angl...
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/cmd.rs:17:9
[INFO] [stderr]    |
[INFO] [stderr] 17 |     Int(i32),
[INFO] [stderr]    |     --- ^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Param` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[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] 17 -     Int(i32),
[INFO] [stderr] 17 +     Int(()),
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/cmd.rs:18:11
[INFO] [stderr]    |
[INFO] [stderr] 18 |     Float(f32),
[INFO] [stderr]    |     ----- ^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Param` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[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] 18 -     Float(f32),
[INFO] [stderr] 18 +     Float(()),
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/cmd.rs:19:10
[INFO] [stderr]    |
[INFO] [stderr] 19 |     Bool(bool),
[INFO] [stderr]    |     ---- ^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Param` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[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] 19 -     Bool(bool),
[INFO] [stderr] 19 +     Bool(()),
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: field `level` is never read
[INFO] [stderr]   --> src/console/mod.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr]  9 | pub struct CommandContext<'a, 'b> {
[INFO] [stderr]    |            -------------- field in this struct
[INFO] [stderr] 10 |     pub menu            : Rc<Menu>,
[INFO] [stderr] 11 |     pub level           : Rc<RefCell<Level<'a, 'b>>>,
[INFO] [stderr]    |         ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]  --> src/def/layer.rs:8:10
[INFO] [stderr]   |
[INFO] [stderr] 8 | #[derive(Deserialize, Debug)]
[INFO] [stderr]   |          -^^^^^^^^^^
[INFO] [stderr]   |          |
[INFO] [stderr]   |          `LayerDef` is not local
[INFO] [stderr]   |          `Deserialize` is not local
[INFO] [stderr]   |          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_LayerDef`
[INFO] [stderr]   |
[INFO] [stderr]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stderr]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stderr]   = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stderr]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]   --> src/def/layer.rs:14:10
[INFO] [stderr]    |
[INFO] [stderr] 14 | #[derive(Deserialize, Debug)]
[INFO] [stderr]    |          -^^^^^^^^^^
[INFO] [stderr]    |          |
[INFO] [stderr]    |          `LayerCreate` is not local
[INFO] [stderr]    |          `Deserialize` is not local
[INFO] [stderr]    |          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_LayerCreate`
[INFO] [stderr]    |
[INFO] [stderr]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stderr]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stderr]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]   --> src/def/layer.rs:24:10
[INFO] [stderr]    |
[INFO] [stderr] 24 | #[derive(Deserialize, Debug)]
[INFO] [stderr]    |          -^^^^^^^^^^
[INFO] [stderr]    |          |
[INFO] [stderr]    |          `LayerRender` is not local
[INFO] [stderr]    |          `Deserialize` is not local
[INFO] [stderr]    |          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_LayerRender`
[INFO] [stderr]    |
[INFO] [stderr]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stderr]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stderr]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]   --> src/def/entity.rs:37:10
[INFO] [stderr]    |
[INFO] [stderr] 37 | #[derive(Deserialize, Debug)]
[INFO] [stderr]    |          -^^^^^^^^^^
[INFO] [stderr]    |          |
[INFO] [stderr]    |          `EntityDescriptor` is not local
[INFO] [stderr]    |          `Deserialize` is not local
[INFO] [stderr]    |          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_EntityDescriptor`
[INFO] [stderr]    |
[INFO] [stderr]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stderr]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stderr]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]   --> src/def/spawner.rs:31:30
[INFO] [stderr]    |
[INFO] [stderr] 31 | #[derive(Copy, Clone, Debug, Deserialize)]
[INFO] [stderr]    |                              -^^^^^^^^^^
[INFO] [stderr]    |                              |
[INFO] [stderr]    |                              `SpawnerDispatch` is not local
[INFO] [stderr]    |                              `Deserialize` is not local
[INFO] [stderr]    |                              move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_SpawnerDispatch`
[INFO] [stderr]    |
[INFO] [stderr]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stderr]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stderr]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]   --> src/def/spawner.rs:44:26
[INFO] [stderr]    |
[INFO] [stderr] 44 | #[derive(Default, Debug, Deserialize)]
[INFO] [stderr]    |                          -^^^^^^^^^^
[INFO] [stderr]    |                          |
[INFO] [stderr]    |                          `SpawnerParameters` is not local
[INFO] [stderr]    |                          `Deserialize` is not local
[INFO] [stderr]    |                          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_SpawnerParameters`
[INFO] [stderr]    |
[INFO] [stderr]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stderr]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stderr]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]   --> src/def/spawner.rs:53:26
[INFO] [stderr]    |
[INFO] [stderr] 53 | #[derive(Default, Debug, Deserialize)]
[INFO] [stderr]    |                          -^^^^^^^^^^
[INFO] [stderr]    |                          |
[INFO] [stderr]    |                          `SpawnerDescriptor` is not local
[INFO] [stderr]    |                          `Deserialize` is not local
[INFO] [stderr]    |                          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_SpawnerDescriptor`
[INFO] [stderr]    |
[INFO] [stderr]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stderr]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stderr]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]  --> src/def/menu.rs:9:10
[INFO] [stderr]   |
[INFO] [stderr] 9 | #[derive(Deserialize, Debug)]
[INFO] [stderr]   |          -^^^^^^^^^^
[INFO] [stderr]   |          |
[INFO] [stderr]   |          `MenuDef` is not local
[INFO] [stderr]   |          `Deserialize` is not local
[INFO] [stderr]   |          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_MenuDef`
[INFO] [stderr]   |
[INFO] [stderr]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stderr]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stderr]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]   --> src/def/menu.rs:12:10
[INFO] [stderr]    |
[INFO] [stderr] 12 | #[derive(Deserialize, Debug)]
[INFO] [stderr]    |          -^^^^^^^^^^
[INFO] [stderr]    |          |
[INFO] [stderr]    |          `MenuGroup` is not local
[INFO] [stderr]    |          `Deserialize` is not local
[INFO] [stderr]    |          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_MenuGroup`
[INFO] [stderr]    |
[INFO] [stderr]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stderr]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stderr]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]   --> src/def/menu.rs:34:10
[INFO] [stderr]    |
[INFO] [stderr] 34 | #[derive(Deserialize, Debug)]
[INFO] [stderr]    |          -^^^^^^^^^^
[INFO] [stderr]    |          |
[INFO] [stderr]    |          `MenuItem` is not local
[INFO] [stderr]    |          `Deserialize` is not local
[INFO] [stderr]    |          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_MenuItem`
[INFO] [stderr]    |
[INFO] [stderr]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stderr]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stderr]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]  --> src/level/component/visual.rs:9:24
[INFO] [stderr]   |
[INFO] [stderr] 9 | #[derive(Clone, Debug, Deserialize, Component)]
[INFO] [stderr]   |                        -^^^^^^^^^^
[INFO] [stderr]   |                        |
[INFO] [stderr]   |                        `Visual` is not local
[INFO] [stderr]   |                        `Deserialize` is not local
[INFO] [stderr]   |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Visual`
[INFO] [stderr]   |
[INFO] [stderr]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stderr]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stderr]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]  --> src/level/component/spatial.rs:9:24
[INFO] [stderr]   |
[INFO] [stderr] 9 | #[derive(Clone, Debug, Deserialize, Default, Component)]
[INFO] [stderr]   |                        -^^^^^^^^^^
[INFO] [stderr]   |                        |
[INFO] [stderr]   |                        `Spatial` is not local
[INFO] [stderr]   |                        `Deserialize` is not local
[INFO] [stderr]   |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Spatial`
[INFO] [stderr]   |
[INFO] [stderr]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stderr]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stderr]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]  --> src/level/component/inertial.rs:4:35
[INFO] [stderr]   |
[INFO] [stderr] 4 | #[derive(Clone, Debug, PartialEq, Deserialize)]
[INFO] [stderr]   |                                   -^^^^^^^^^^
[INFO] [stderr]   |                                   |
[INFO] [stderr]   |                                   `InertialMotionType` is not local
[INFO] [stderr]   |                                   `Deserialize` is not local
[INFO] [stderr]   |                                   move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_InertialMotionType`
[INFO] [stderr]   |
[INFO] [stderr]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stderr]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stderr]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]   --> src/level/component/inertial.rs:23:24
[INFO] [stderr]    |
[INFO] [stderr] 23 | #[derive(Clone, Debug, Deserialize, Default, Component)]
[INFO] [stderr]    |                        -^^^^^^^^^^
[INFO] [stderr]    |                        |
[INFO] [stderr]    |                        `Inertial` is not local
[INFO] [stderr]    |                        `Deserialize` is not local
[INFO] [stderr]    |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Inertial`
[INFO] [stderr]    |
[INFO] [stderr]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stderr]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stderr]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]  --> src/level/component/controlled.rs:8:24
[INFO] [stderr]   |
[INFO] [stderr] 8 | #[derive(Clone, Debug, Deserialize, Default, Component)]
[INFO] [stderr]   |                        -^^^^^^^^^^
[INFO] [stderr]   |                        |
[INFO] [stderr]   |                        `Controlled` is not local
[INFO] [stderr]   |                        `Deserialize` is not local
[INFO] [stderr]   |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Controlled`
[INFO] [stderr]   |
[INFO] [stderr]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stderr]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stderr]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]  --> src/level/component/computed.rs:8:24
[INFO] [stderr]   |
[INFO] [stderr] 8 | #[derive(Clone, Debug, Deserialize, Default, Component)]
[INFO] [stderr]   |                        -^^^^^^^^^^
[INFO] [stderr]   |                        |
[INFO] [stderr]   |                        `Computed` is not local
[INFO] [stderr]   |                        `Deserialize` is not local
[INFO] [stderr]   |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Computed`
[INFO] [stderr]   |
[INFO] [stderr]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stderr]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stderr]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]  --> src/level/component/lifetime.rs:8:24
[INFO] [stderr]   |
[INFO] [stderr] 8 | #[derive(Clone, Debug, Deserialize, Default, Component)]
[INFO] [stderr]   |                        -^^^^^^^^^^
[INFO] [stderr]   |                        |
[INFO] [stderr]   |                        `Lifetime` is not local
[INFO] [stderr]   |                        `Deserialize` is not local
[INFO] [stderr]   |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Lifetime`
[INFO] [stderr]   |
[INFO] [stderr]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stderr]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stderr]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]  --> src/level/component/shooter.rs:8:24
[INFO] [stderr]   |
[INFO] [stderr] 8 | #[derive(Clone, Debug, Deserialize, Component)]
[INFO] [stderr]   |                        -^^^^^^^^^^
[INFO] [stderr]   |                        |
[INFO] [stderr]   |                        `Shooter` is not local
[INFO] [stderr]   |                        `Deserialize` is not local
[INFO] [stderr]   |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Shooter`
[INFO] [stderr]   |
[INFO] [stderr]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stderr]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stderr]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]  --> src/level/component/fading.rs:8:24
[INFO] [stderr]   |
[INFO] [stderr] 8 | #[derive(Clone, Debug, Deserialize, Default, Component)]
[INFO] [stderr]   |                        -^^^^^^^^^^
[INFO] [stderr]   |                        |
[INFO] [stderr]   |                        `Fading` is not local
[INFO] [stderr]   |                        `Deserialize` is not local
[INFO] [stderr]   |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Fading`
[INFO] [stderr]   |
[INFO] [stderr]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stderr]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stderr]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]  --> src/level/component/bounding.rs:9:24
[INFO] [stderr]   |
[INFO] [stderr] 9 | #[derive(Clone, Debug, Deserialize, Default, Component)]
[INFO] [stderr]   |                        -^^^^^^^^^^
[INFO] [stderr]   |                        |
[INFO] [stderr]   |                        `Bounding` is not local
[INFO] [stderr]   |                        `Deserialize` is not local
[INFO] [stderr]   |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Bounding`
[INFO] [stderr]   |
[INFO] [stderr]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stderr]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stderr]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]  --> src/level/component/explodes.rs:7:24
[INFO] [stderr]   |
[INFO] [stderr] 7 | #[derive(Clone, Debug, Deserialize, Default, Component)]
[INFO] [stderr]   |                        -^^^^^^^^^^
[INFO] [stderr]   |                        |
[INFO] [stderr]   |                        `Explodes` is not local
[INFO] [stderr]   |                        `Deserialize` is not local
[INFO] [stderr]   |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Explodes`
[INFO] [stderr]   |
[INFO] [stderr]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stderr]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stderr]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]  --> src/level/component/hitpoints.rs:8:24
[INFO] [stderr]   |
[INFO] [stderr] 8 | #[derive(Clone, Debug, Deserialize, Default, Component)]
[INFO] [stderr]   |                        -^^^^^^^^^^
[INFO] [stderr]   |                        |
[INFO] [stderr]   |                        `Hitpoints` is not local
[INFO] [stderr]   |                        `Deserialize` is not local
[INFO] [stderr]   |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Hitpoints`
[INFO] [stderr]   |
[INFO] [stderr]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stderr]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stderr]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]   --> src/level/component/powerup.rs:10:24
[INFO] [stderr]    |
[INFO] [stderr] 10 | #[derive(Clone, Debug, Deserialize, Default, Component)]
[INFO] [stderr]    |                        -^^^^^^^^^^
[INFO] [stderr]    |                        |
[INFO] [stderr]    |                        `Powerup` is not local
[INFO] [stderr]    |                        `Deserialize` is not local
[INFO] [stderr]    |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Powerup`
[INFO] [stderr]    |
[INFO] [stderr]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stderr]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stderr]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/cmd.rs:77:26
[INFO] [stderr]    |
[INFO] [stderr] 77 |     pub fn context(self: &Self) -> ::std::cell::Ref<T> {
[INFO] [stderr]    |                          ^^^^^     ^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                          |
[INFO] [stderr]    |                          the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 77 |     pub fn context(self: &Self) -> ::std::cell::Ref<'_, T> {
[INFO] [stderr]    |                                                     +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/cmd.rs:84:30
[INFO] [stderr]    |
[INFO] [stderr] 84 |     pub fn context_mut(self: &Self) -> ::std::cell::RefMut<T> {
[INFO] [stderr]    |                              ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                              |
[INFO] [stderr]    |                              the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 84 |     pub fn context_mut(self: &Self) -> ::std::cell::RefMut<'_, T> {
[INFO] [stderr]    |                                                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/repository.rs:49:23
[INFO] [stderr]    |
[INFO] [stderr] 49 |     pub fn values_mut(&mut self) -> IterMut<V> {
[INFO] [stderr]    |                       ^^^^^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                       |
[INFO] [stderr]    |                       the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 49 |     pub fn values_mut(&mut self) -> IterMut<'_, V> {
[INFO] [stderr]    |                                             +++
[INFO] [stderr] 
[INFO] [stderr] warning: `spacegame` (bin "spacegame" test) generated 46 warnings (run `cargo fix --bin "spacegame" -p spacegame --tests` to apply 13 suggestions)
[INFO] [stderr]     Finished `test` profile [optimized + debuginfo] target(s) in 0.25s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: glutin v0.14.0, syn v0.10.8, syn v0.12.15, syn v0.14.2, winit v0.12.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/spacegame-3154cef366ddd112)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "67dc6562eca2f9560d56c09305dc17924df76920849af38e8ab4276e5e70a7c6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "67dc6562eca2f9560d56c09305dc17924df76920849af38e8ab4276e5e70a7c6", kill_on_drop: false }`
[INFO] [stdout] 67dc6562eca2f9560d56c09305dc17924df76920849af38e8ab4276e5e70a7c6
