[INFO] cloning repository https://github.com/raniejade/yahmc
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/raniejade/yahmc" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Franiejade%2Fyahmc", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Franiejade%2Fyahmc'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 3db12f9634869d4b6d83e845b7c48d9a8d649b83
[INFO] checking raniejade/yahmc against try#0bdee9e879c87b7211d316e9152109cfd46c576b for pr-150097
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Franiejade%2Fyahmc" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/raniejade/yahmc
[INFO] finished tweaking git repo https://github.com/raniejade/yahmc
[INFO] tweaked toml for git repo https://github.com/raniejade/yahmc written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/raniejade/yahmc on toolchain 0bdee9e879c87b7211d316e9152109cfd46c576b
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0bdee9e879c87b7211d316e9152109cfd46c576b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/raniejade/yahmc 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" "+0bdee9e879c87b7211d316e9152109cfd46c576b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: /workspace/builds/worker-5-tc2/source/engine/Cargo.toml: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr] warning: /workspace/builds/worker-5-tc2/source/Cargo.toml: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr] warning: /workspace/builds/worker-5-tc2/source/ecs2/Cargo.toml: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr] warning: /workspace/builds/worker-5-tc2/source/ecs/Cargo.toml: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr] warning: /workspace/builds/worker-5-tc2/source/ecs_derive/Cargo.toml: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded bit-set v0.5.0
[INFO] [stderr]   Downloaded quote v0.5.1
[INFO] [stderr]   Downloaded itertools v0.5.10
[INFO] [stderr]   Downloaded proc-macro2 v0.3.5
[INFO] [stderr]   Downloaded simple_logger v0.5.0
[INFO] [stderr]   Downloaded bit-vec v0.5.0
[INFO] [stderr]   Downloaded byteorder v1.2.2
[INFO] [stderr]   Downloaded derivative v1.0.0
[INFO] [stderr]   Downloaded syn v0.10.8
[INFO] [stderr]   Downloaded syn v0.13.1
[INFO] [stderr]   Downloaded rlua v0.13.0
[INFO] [stderr]   Downloaded libc v0.2.40
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0bdee9e879c87b7211d316e9152109cfd46c576b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] b5a3869dea7e945d1909000f20e246012c4faed7f4890e6ad3f0f5b87c6a00a1
[INFO] running `Command { std: "docker" "start" "-a" "b5a3869dea7e945d1909000f20e246012c4faed7f4890e6ad3f0f5b87c6a00a1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b5a3869dea7e945d1909000f20e246012c4faed7f4890e6ad3f0f5b87c6a00a1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b5a3869dea7e945d1909000f20e246012c4faed7f4890e6ad3f0f5b87c6a00a1", kill_on_drop: false }`
[INFO] [stdout] b5a3869dea7e945d1909000f20e246012c4faed7f4890e6ad3f0f5b87c6a00a1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0bdee9e879c87b7211d316e9152109cfd46c576b" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 894528a674734afed9e2b35d3af8bd256cefc88a19c5a3a9c876c22d7ccd222c
[INFO] running `Command { std: "docker" "start" "-a" "894528a674734afed9e2b35d3af8bd256cefc88a19c5a3a9c876c22d7ccd222c", kill_on_drop: false }`
[INFO] [stderr] warning: /opt/rustwide/workdir/Cargo.toml: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr] warning: /opt/rustwide/workdir/ecs/Cargo.toml: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr] warning: /opt/rustwide/workdir/ecs2/Cargo.toml: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr] warning: /opt/rustwide/workdir/ecs_derive/Cargo.toml: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr] warning: /opt/rustwide/workdir/engine/Cargo.toml: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]     Checking cfg-if v0.1.2
[INFO] [stderr]    Compiling cc v1.0.9
[INFO] [stderr]     Checking libc v0.2.40
[INFO] [stderr]     Checking byteorder v1.2.2
[INFO] [stderr]     Checking bit-vec v0.5.0
[INFO] [stderr]     Checking mopa v0.2.2
[INFO] [stderr]    Compiling either v1.5.0
[INFO] [stderr]     Checking rustc-demangle v0.1.7
[INFO] [stderr]     Checking unicode-xid v0.1.0
[INFO] [stderr]     Checking num-traits v0.2.2
[INFO] [stderr]    Compiling proc-macro2 v0.3.5
[INFO] [stderr]    Compiling syn v0.11.11
[INFO] [stderr]    Compiling syn v0.10.8
[INFO] [stderr]    Compiling rlua v0.13.0
[INFO] [stderr]     Checking log v0.4.1
[INFO] [stderr]     Checking bit-set v0.5.0
[INFO] [stderr]    Compiling itertools v0.5.10
[INFO] [stderr]     Checking fxhash v0.2.1
[INFO] [stderr]     Checking ecs2 v0.1.0 (/opt/rustwide/workdir/ecs2)
[INFO] [stderr]     Checking quote v0.5.1
[INFO] [stdout] warning: unused import: `Any`
[INFO] [stdout]  --> ecs2/src/component.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::any::{Any, TypeId};
[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 imports: `RefCell` and `RefMut`
[INFO] [stdout]  --> ecs2/src/component.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::cell::{RefCell, RefMut};
[INFO] [stdout]   |                 ^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `component::Component`
[INFO] [stdout]  --> ecs2/src/context.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use component::Component;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]   --> ecs2/src/lib.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::time::Duration;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `aspect::Aspect`
[INFO] [stdout]   --> ecs2/src/lib.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use aspect::Aspect;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> ecs2/src/resource.rs:32:24
[INFO] [stdout]    |
[INFO] [stdout] 32 |     inner: Ref<'a, Box<Resource>>,
[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] 32 |     inner: Ref<'a, Box<dyn Resource>>,
[INFO] [stdout]    |                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> ecs2/src/resource.rs:48:27
[INFO] [stdout]    |
[INFO] [stdout] 48 |     inner: RefMut<'a, Box<Resource>>,
[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] 48 |     inner: RefMut<'a, Box<dyn Resource>>,
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> ecs2/src/resource.rs:74:50
[INFO] [stdout]    |
[INFO] [stdout] 74 |     resources: FxHashMap<ResourceId, RefCell<Box<Resource>>>,
[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] 74 |     resources: FxHashMap<ResourceId, RefCell<Box<dyn Resource>>>,
[INFO] [stdout]    |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> ecs2/src/system.rs:31:22
[INFO] [stdout]    |
[INFO] [stdout] 31 |     systems: Vec<Box<Executor + 'a>>,
[INFO] [stdout]    |                      ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 31 |     systems: Vec<Box<dyn Executor + 'a>>,
[INFO] [stdout]    |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking time v0.1.39
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> ecs2/src/resource.rs:136:69
[INFO] [stdout]     |
[INFO] [stdout] 136 |     fn try_fetch_internal(&self, id: TypeId) -> Option<&RefCell<Box<Resource>>> {
[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] 136 |     fn try_fetch_internal(&self, id: TypeId) -> Option<&RefCell<Box<dyn Resource>>> {
[INFO] [stdout]     |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking syn v0.13.1
[INFO] [stdout] warning: unused import: `Any`
[INFO] [stdout]  --> ecs2/src/component.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::any::{Any, TypeId};
[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 imports: `RefCell` and `RefMut`
[INFO] [stdout]  --> ecs2/src/component.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::cell::{RefCell, RefMut};
[INFO] [stdout]   |                 ^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `component::Component`
[INFO] [stdout]  --> ecs2/src/context.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use component::Component;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]   --> ecs2/src/lib.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::time::Duration;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `aspect::Aspect`
[INFO] [stdout]   --> ecs2/src/lib.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use aspect::Aspect;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> ecs2/src/resource.rs:32:24
[INFO] [stdout]    |
[INFO] [stdout] 32 |     inner: Ref<'a, Box<Resource>>,
[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] 32 |     inner: Ref<'a, Box<dyn Resource>>,
[INFO] [stdout]    |                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> ecs2/src/resource.rs:48:27
[INFO] [stdout]    |
[INFO] [stdout] 48 |     inner: RefMut<'a, Box<Resource>>,
[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] 48 |     inner: RefMut<'a, Box<dyn Resource>>,
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> ecs2/src/resource.rs:74:50
[INFO] [stdout]    |
[INFO] [stdout] 74 |     resources: FxHashMap<ResourceId, RefCell<Box<Resource>>>,
[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] 74 |     resources: FxHashMap<ResourceId, RefCell<Box<dyn Resource>>>,
[INFO] [stdout]    |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> ecs2/src/system.rs:31:22
[INFO] [stdout]    |
[INFO] [stdout] 31 |     systems: Vec<Box<Executor + 'a>>,
[INFO] [stdout]    |                      ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 31 |     systems: Vec<Box<dyn Executor + 'a>>,
[INFO] [stdout]    |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> ecs2/src/resource.rs:136:69
[INFO] [stdout]     |
[INFO] [stdout] 136 |     fn try_fetch_internal(&self, id: TypeId) -> Option<&RefCell<Box<Resource>>> {
[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] 136 |     fn try_fetch_internal(&self, id: TypeId) -> Option<&RefCell<Box<dyn Resource>>> {
[INFO] [stdout]     |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `manager`
[INFO] [stdout]   --> ecs2/src/aspect.rs:53:25
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub fn check(&self, manager: &ComponentManager, bits: &BitSet) -> bool {
[INFO] [stdout]    |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_manager`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `manager`
[INFO] [stdout]   --> ecs2/src/aspect.rs:53:25
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub fn check(&self, manager: &ComponentManager, bits: &BitSet) -> bool {
[INFO] [stdout]    |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_manager`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> ecs2/src/entity.rs:43:20
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub fn destroy(mut self) {
[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]   --> ecs2/src/entity.rs:47:19
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn commit(mut self) {
[INFO] [stdout]    |                   ----^^^^
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]   --> ecs2/src/entity.rs:95:37
[INFO] [stdout]    |
[INFO] [stdout] 95 |     fn add<T: Component>(&mut self, entity: Entity, component: T) {
[INFO] [stdout]    |                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `component`
[INFO] [stdout]   --> ecs2/src/entity.rs:95:53
[INFO] [stdout]    |
[INFO] [stdout] 95 |     fn add<T: Component>(&mut self, entity: Entity, component: T) {
[INFO] [stdout]    |                                                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_component`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]   --> ecs2/src/entity.rs:99:40
[INFO] [stdout]    |
[INFO] [stdout] 99 |     fn remove<T: Component>(&mut self, entity: Entity) -> T {
[INFO] [stdout]    |                                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]    --> ecs2/src/entity.rs:103:38
[INFO] [stdout]     |
[INFO] [stdout] 103 |     fn contains<T: Component>(&self, entity: Entity) -> bool {
[INFO] [stdout]     |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]    --> ecs2/src/entity.rs:107:33
[INFO] [stdout]     |
[INFO] [stdout] 107 |     fn get<T: Component>(&self, entity: Entity) -> Option<&T> {
[INFO] [stdout]     |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]    --> ecs2/src/entity.rs:111:41
[INFO] [stdout]     |
[INFO] [stdout] 111 |     fn get_mut<T: Component>(&mut self, entity: Entity) -> Option<&mut T> {
[INFO] [stdout]     |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `component_manager`
[INFO] [stdout]    --> ecs2/src/entity.rs:179:26
[INFO] [stdout]     |
[INFO] [stdout] 179 |     fn remove(&mut self, component_manager: &ComponentManager, entity: Entity) {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_component_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `entity_manager` and `dispatcher` are never read
[INFO] [stdout]   --> ecs2/src/lib.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct World<'a> {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 24 |     entity_manager: EntityManager,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 25 |     dispatcher: SystemDispatcher<'a>
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RESOURCE_NOT_FOUND` is never used
[INFO] [stdout]   --> ecs2/src/resource.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const RESOURCE_NOT_FOUND: &str = "No resource with the given id";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ResourceId` is never constructed
[INFO] [stdout]   --> ecs2/src/resource.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct ResourceId(pub TypeId);
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> ecs2/src/resource.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl ResourceId {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 26 |     pub fn new<T: Resource>() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Fetch` is never constructed
[INFO] [stdout]   --> ecs2/src/resource.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct Fetch<'a, T: 'a> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FetchMut` is never constructed
[INFO] [stdout]   --> ecs2/src/resource.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct FetchMut<'a, T: 'a> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Resources` is never constructed
[INFO] [stdout]   --> ecs2/src/resource.rs:73:12
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub struct Resources {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> ecs2/src/resource.rs:78:12
[INFO] [stdout]     |
[INFO] [stdout]  77 | impl Resources {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout]  78 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     pub fn add<R>(&mut self, resource: R)
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn has_value(&self, res_id: ResourceId) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn fetch<T>(&self) -> Fetch<T>
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn try_fetch<T>(&self) -> Option<Fetch<T>>
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn fetch_mut<T>(&self) -> FetchMut<T>
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn try_fetch_mut<T>(&self) -> Option<FetchMut<T>>
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     fn try_fetch_internal(&self, id: TypeId) -> Option<&RefCell<Box<Resource>>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> ecs2/src/aspect.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl Matcher {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 46 |     pub fn new<T: Aspect>(manager: &ComponentManager) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InternalContext` is never constructed
[INFO] [stdout]   --> ecs2/src/context.rs:11:19
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(crate) struct InternalContext<'a> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get_entities` are never used
[INFO] [stdout]   --> ecs2/src/context.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl<'a> InternalContext<'a> {
[INFO] [stdout]    | ---------------------------- associated items in this implementation
[INFO] [stdout] 16 |     pub fn new(entity_manager: &'a mut EntityManager) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn get_entities<T: Aspect>(&self) -> Vec<Entity> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> ecs2/src/entity.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl<'a> EntityEditor<'a> {
[INFO] [stdout]    | ------------------------- associated function in this implementation
[INFO] [stdout] 16 |     fn new(entity: Entity, entity_manager: &'a mut EntityManager) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `create`, `editor`, `entities`, `is_alive`, and `register` are never used
[INFO] [stdout]   --> ecs2/src/entity.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | impl EntityManager {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 61 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn create(&mut self) -> EntityEditor {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub fn editor(&mut self, entity: Entity) -> EntityEditor {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn entities<T: Aspect>(&self) -> Vec<Entity> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn is_alive(&self, entity: Entity) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub fn register<T: Aspect>(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> ecs2/src/entity.rs:134:8
[INFO] [stdout]     |
[INFO] [stdout] 133 | impl EntityStates {
[INFO] [stdout]     | ----------------- associated function in this implementation
[INFO] [stdout] 134 |     fn new() -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `register`, and `entities` are never used
[INFO] [stdout]    --> ecs2/src/entity.rs:153:8
[INFO] [stdout]     |
[INFO] [stdout] 152 | impl AspectIndex {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 153 |     fn new() -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     fn register<T: Aspect>(&mut self, component_manager: &ComponentManager) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 185 |     fn entities<T: Aspect>(&self, component_manager: &ComponentManager) -> Vec<Entity> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `next_id` is never read
[INFO] [stdout]    --> ecs2/src/entity.rs:203:5
[INFO] [stdout]     |
[INFO] [stdout] 202 | struct EntityStorage {
[INFO] [stdout]     |        ------------- field in this struct
[INFO] [stdout] 203 |     next_id: usize,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `create`, and `next_id` are never used
[INFO] [stdout]    --> ecs2/src/entity.rs:209:8
[INFO] [stdout]     |
[INFO] [stdout] 208 | impl EntityStorage {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 209 |     fn new() -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     fn create(&mut self) -> Entity {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     fn next_id(&mut self) -> Entity {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ComponentSetter` is never used
[INFO] [stdout]    --> ecs2/src/entity.rs:244:7
[INFO] [stdout]     |
[INFO] [stdout] 244 | trait ComponentSetter {
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> ecs2/src/storage/vec.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout]  9 | / impl<T> VecStorage<T>
[INFO] [stdout] 10 | | where
[INFO] [stdout] 11 | |     T: Component,
[INFO] [stdout]    | |_________________- associated function in this implementation
[INFO] [stdout] 12 |   {
[INFO] [stdout] 13 |       fn new() -> Self {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `execute` is never used
[INFO] [stdout]   --> ecs2/src/system.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | trait Executor {
[INFO] [stdout]    |       -------- method in this trait
[INFO] [stdout] 15 |     fn execute(&mut self, context: &mut InternalContext, duration: Duration);
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `dispatch` are never used
[INFO] [stdout]   --> ecs2/src/system.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl<'a> SystemDispatcher<'a> {
[INFO] [stdout]    | ----------------------------- associated items in this implementation
[INFO] [stdout] 35 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn dispatch(&mut self, context: &mut InternalContext, duration: Duration) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> ecs2/src/resource.rs:101:21
[INFO] [stdout]     |
[INFO] [stdout] 101 |     pub fn fetch<T>(&self) -> Fetch<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] 101 |     pub fn fetch<T>(&self) -> Fetch<'_, T>
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> ecs2/src/resource.rs:108:25
[INFO] [stdout]     |
[INFO] [stdout] 108 |     pub fn try_fetch<T>(&self) -> Option<Fetch<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] 108 |     pub fn try_fetch<T>(&self) -> Option<Fetch<'_, T>>
[INFO] [stdout]     |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> ecs2/src/resource.rs:118:25
[INFO] [stdout]     |
[INFO] [stdout] 118 |     pub fn fetch_mut<T>(&self) -> FetchMut<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] 118 |     pub fn fetch_mut<T>(&self) -> FetchMut<'_, T>
[INFO] [stdout]     |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> ecs2/src/resource.rs:125:29
[INFO] [stdout]     |
[INFO] [stdout] 125 |     pub fn try_fetch_mut<T>(&self) -> Option<FetchMut<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] 125 |     pub fn try_fetch_mut<T>(&self) -> Option<FetchMut<'_, T>>
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]  --> ecs2/src/context.rs:6:15
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn create(&mut self) -> EntityEditor;
[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] 6 |     fn create(&mut self) -> EntityEditor<'_>;
[INFO] [stdout]   |                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]  --> ecs2/src/context.rs:7:15
[INFO] [stdout]   |
[INFO] [stdout] 7 |     fn editor(&mut self, entity: Entity) -> EntityEditor;
[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] 7 |     fn editor(&mut self, entity: Entity) -> EntityEditor<'_>;
[INFO] [stdout]   |                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> ecs2/src/context.rs:28:15
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn create(&mut self) -> EntityEditor {
[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] 28 |     fn create(&mut self) -> EntityEditor<'_> {
[INFO] [stdout]    |                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> ecs2/src/context.rs:32:15
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn editor(&mut self, entity: Entity) -> EntityEditor {
[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] 32 |     fn editor(&mut self, entity: Entity) -> EntityEditor<'_> {
[INFO] [stdout]    |                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> ecs2/src/entity.rs:65:19
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub fn create(&mut self) -> EntityEditor {
[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] 65 |     pub fn create(&mut self) -> EntityEditor<'_> {
[INFO] [stdout]    |                                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> ecs2/src/entity.rs:75:19
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub fn editor(&mut self, entity: Entity) -> EntityEditor {
[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] 75 |     pub fn editor(&mut self, entity: Entity) -> EntityEditor<'_> {
[INFO] [stdout]    |                                                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> ecs2/src/aspect.rs:208:13
[INFO] [stdout]     |
[INFO] [stdout] 208 |         let mut bits = BitSet::new();
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> ecs2/src/entity.rs:43:20
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub fn destroy(mut self) {
[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]   --> ecs2/src/entity.rs:47:19
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn commit(mut self) {
[INFO] [stdout]    |                   ----^^^^
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]   --> ecs2/src/entity.rs:95:37
[INFO] [stdout]    |
[INFO] [stdout] 95 |     fn add<T: Component>(&mut self, entity: Entity, component: T) {
[INFO] [stdout]    |                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `component`
[INFO] [stdout]   --> ecs2/src/entity.rs:95:53
[INFO] [stdout]    |
[INFO] [stdout] 95 |     fn add<T: Component>(&mut self, entity: Entity, component: T) {
[INFO] [stdout]    |                                                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_component`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]   --> ecs2/src/entity.rs:99:40
[INFO] [stdout]    |
[INFO] [stdout] 99 |     fn remove<T: Component>(&mut self, entity: Entity) -> T {
[INFO] [stdout]    |                                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]    --> ecs2/src/entity.rs:103:38
[INFO] [stdout]     |
[INFO] [stdout] 103 |     fn contains<T: Component>(&self, entity: Entity) -> bool {
[INFO] [stdout]     |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]    --> ecs2/src/entity.rs:107:33
[INFO] [stdout]     |
[INFO] [stdout] 107 |     fn get<T: Component>(&self, entity: Entity) -> Option<&T> {
[INFO] [stdout]     |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]    --> ecs2/src/entity.rs:111:41
[INFO] [stdout]     |
[INFO] [stdout] 111 |     fn get_mut<T: Component>(&mut self, entity: Entity) -> Option<&mut T> {
[INFO] [stdout]     |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]   --> ecs2/src/storage/vec.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |         mem::replace(&mut self.components[index], component);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let _ = mem::replace(&mut self.components[index], component);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `component_manager`
[INFO] [stdout]    --> ecs2/src/entity.rs:179:26
[INFO] [stdout]     |
[INFO] [stdout] 179 |     fn remove(&mut self, component_manager: &ComponentManager, entity: Entity) {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_component_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> ecs2/src/entity.rs:358:13
[INFO] [stdout]     |
[INFO] [stdout] 358 |         let mut index = AspectIndex::new();
[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]   --> ecs2/src/storage/vec.rs:90:13
[INFO] [stdout]    |
[INFO] [stdout] 90 |         let mut storage: VecStorage<MyComponent> = VecStorage::new();
[INFO] [stdout]    |             ----^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `duration`
[INFO] [stdout]   --> ecs2/src/system.rs:74:59
[INFO] [stdout]    |
[INFO] [stdout] 74 |         fn process(&mut self, context: &mut impl Context, duration: Duration, entities: Vec<Entity>) {
[INFO] [stdout]    |                                                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_duration`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]   --> ecs2/src/system.rs:88:31
[INFO] [stdout]    |
[INFO] [stdout] 88 |         fn process(&mut self, context: &mut impl Context, duration: Duration, entities: Vec<Entity>) {
[INFO] [stdout]    |                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `duration`
[INFO] [stdout]   --> ecs2/src/system.rs:88:59
[INFO] [stdout]    |
[INFO] [stdout] 88 |         fn process(&mut self, context: &mut impl Context, duration: Duration, entities: Vec<Entity>) {
[INFO] [stdout]    |                                                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_duration`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entities`
[INFO] [stdout]   --> ecs2/src/system.rs:88:79
[INFO] [stdout]    |
[INFO] [stdout] 88 |         fn process(&mut self, context: &mut impl Context, duration: Duration, entities: Vec<Entity>) {
[INFO] [stdout]    |                                                                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_entities`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `entity_manager` and `dispatcher` are never read
[INFO] [stdout]   --> ecs2/src/lib.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct World<'a> {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 24 |     entity_manager: EntityManager,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 25 |     dispatcher: SystemDispatcher<'a>
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `register` is never used
[INFO] [stdout]   --> ecs2/src/entity.rs:90:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | impl EntityManager {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub fn register<T: Aspect>(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> ecs2/src/resource.rs:101:21
[INFO] [stdout]     |
[INFO] [stdout] 101 |     pub fn fetch<T>(&self) -> Fetch<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] 101 |     pub fn fetch<T>(&self) -> Fetch<'_, T>
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> ecs2/src/resource.rs:108:25
[INFO] [stdout]     |
[INFO] [stdout] 108 |     pub fn try_fetch<T>(&self) -> Option<Fetch<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] 108 |     pub fn try_fetch<T>(&self) -> Option<Fetch<'_, T>>
[INFO] [stdout]     |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> ecs2/src/resource.rs:118:25
[INFO] [stdout]     |
[INFO] [stdout] 118 |     pub fn fetch_mut<T>(&self) -> FetchMut<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] 118 |     pub fn fetch_mut<T>(&self) -> FetchMut<'_, T>
[INFO] [stdout]     |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> ecs2/src/resource.rs:125:29
[INFO] [stdout]     |
[INFO] [stdout] 125 |     pub fn try_fetch_mut<T>(&self) -> Option<FetchMut<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] 125 |     pub fn try_fetch_mut<T>(&self) -> Option<FetchMut<'_, T>>
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]  --> ecs2/src/context.rs:6:15
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn create(&mut self) -> EntityEditor;
[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] 6 |     fn create(&mut self) -> EntityEditor<'_>;
[INFO] [stdout]   |                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]  --> ecs2/src/context.rs:7:15
[INFO] [stdout]   |
[INFO] [stdout] 7 |     fn editor(&mut self, entity: Entity) -> EntityEditor;
[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] 7 |     fn editor(&mut self, entity: Entity) -> EntityEditor<'_>;
[INFO] [stdout]   |                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> ecs2/src/context.rs:28:15
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn create(&mut self) -> EntityEditor {
[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] 28 |     fn create(&mut self) -> EntityEditor<'_> {
[INFO] [stdout]    |                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> ecs2/src/context.rs:32:15
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn editor(&mut self, entity: Entity) -> EntityEditor {
[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] 32 |     fn editor(&mut self, entity: Entity) -> EntityEditor<'_> {
[INFO] [stdout]    |                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> ecs2/src/entity.rs:65:19
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub fn create(&mut self) -> EntityEditor {
[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] 65 |     pub fn create(&mut self) -> EntityEditor<'_> {
[INFO] [stdout]    |                                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> ecs2/src/entity.rs:75:19
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub fn editor(&mut self, entity: Entity) -> EntityEditor {
[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] 75 |     pub fn editor(&mut self, entity: Entity) -> EntityEditor<'_> {
[INFO] [stdout]    |                                                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]   --> ecs2/src/storage/vec.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |         mem::replace(&mut self.components[index], component);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let _ = mem::replace(&mut self.components[index], component);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking simple_logger v0.5.0
[INFO] [stderr]     Checking float-cmp v0.4.0
[INFO] [stderr]    Compiling backtrace-sys v0.1.16
[INFO] [stderr]    Compiling synstructure v0.6.1
[INFO] [stderr]    Compiling failure_derive v0.1.1
[INFO] [stderr]     Checking ecs_derive v0.1.0 (/opt/rustwide/workdir/ecs_derive)
[INFO] [stderr]    Compiling derivative v1.0.0
[INFO] [stderr]     Checking ecs v0.1.0 (/opt/rustwide/workdir/ecs)
[INFO] [stdout] error[E0557]: feature has been removed
[INFO] [stdout]  --> ecs/src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(concat_idents)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^ feature has been removed
[INFO] [stdout]   |
[INFO] [stdout]   = note: removed in 1.90.0; see <https://github.com/rust-lang/rust/pull/142704> for more information
[INFO] [stdout]   = note: use the `${concat(..)}` metavariable expression instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]  --> ecs/src/lib.rs:3:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[macro_use]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around function argument
[INFO] [stdout]   --> ecs/src/component/storage/mod.rs:58:39
[INFO] [stdout]    |
[INFO] [stdout] 58 |             mem::swap(&mut component, { self.1.get_mut(index) })
[INFO] [stdout]    |                                       ^^                     ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_braces)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these braces
[INFO] [stdout]    |
[INFO] [stdout] 58 -             mem::swap(&mut component, { self.1.get_mut(index) })
[INFO] [stdout] 58 +             mem::swap(&mut component, self.1.get_mut(index) )
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::join::Join`
[INFO] [stdout]  --> ecs/src/entity.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::join::Join;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0557]: feature has been removed
[INFO] [stdout]  --> ecs/src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(concat_idents)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^ feature has been removed
[INFO] [stdout]   |
[INFO] [stdout]   = note: removed in 1.90.0; see <https://github.com/rust-lang/rust/pull/142704> for more information
[INFO] [stdout]   = note: use the `${concat(..)}` metavariable expression instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> ecs/src/resource.rs:32:24
[INFO] [stdout]    |
[INFO] [stdout] 32 |     inner: Ref<'a, Box<Resource>>,
[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] 32 |     inner: Ref<'a, Box<dyn Resource>>,
[INFO] [stdout]    |                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> ecs/src/resource.rs:48:27
[INFO] [stdout]    |
[INFO] [stdout] 48 |     inner: RefMut<'a, Box<Resource>>,
[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] 48 |     inner: RefMut<'a, Box<dyn Resource>>,
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> ecs/src/resource.rs:74:50
[INFO] [stdout]    |
[INFO] [stdout] 74 |     resources: FxHashMap<ResourceId, RefCell<Box<Resource>>>,
[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] 74 |     resources: FxHashMap<ResourceId, RefCell<Box<dyn Resource>>>,
[INFO] [stdout]    |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> ecs/src/lib.rs:64:22
[INFO] [stdout]    |
[INFO] [stdout] 64 |     systems: Vec<Box<SystemRunner<'a> + 'a>>,
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 64 |     systems: Vec<Box<dyn SystemRunner<'a> + 'a>>,
[INFO] [stdout]    |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around function argument
[INFO] [stdout]   --> ecs/src/component/storage/mod.rs:58:39
[INFO] [stdout]    |
[INFO] [stdout] 58 |             mem::swap(&mut component, { self.1.get_mut(index) })
[INFO] [stdout]    |                                       ^^                     ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_braces)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these braces
[INFO] [stdout]    |
[INFO] [stdout] 58 -             mem::swap(&mut component, { self.1.get_mut(index) })
[INFO] [stdout] 58 +             mem::swap(&mut component, self.1.get_mut(index) )
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::join::Join`
[INFO] [stdout]  --> ecs/src/entity.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::join::Join;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> ecs/src/resource.rs:136:69
[INFO] [stdout]     |
[INFO] [stdout] 136 |     fn try_fetch_internal(&self, id: TypeId) -> Option<&RefCell<Box<Resource>>> {
[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] 136 |     fn try_fetch_internal(&self, id: TypeId) -> Option<&RefCell<Box<dyn Resource>>> {
[INFO] [stdout]     |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> ecs/src/resource.rs:32:24
[INFO] [stdout]    |
[INFO] [stdout] 32 |     inner: Ref<'a, Box<Resource>>,
[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] 32 |     inner: Ref<'a, Box<dyn Resource>>,
[INFO] [stdout]    |                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> ecs/src/resource.rs:48:27
[INFO] [stdout]    |
[INFO] [stdout] 48 |     inner: RefMut<'a, Box<Resource>>,
[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] 48 |     inner: RefMut<'a, Box<dyn Resource>>,
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> ecs/src/resource.rs:74:50
[INFO] [stdout]    |
[INFO] [stdout] 74 |     resources: FxHashMap<ResourceId, RefCell<Box<Resource>>>,
[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] 74 |     resources: FxHashMap<ResourceId, RefCell<Box<dyn Resource>>>,
[INFO] [stdout]    |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> ecs/src/lib.rs:64:22
[INFO] [stdout]    |
[INFO] [stdout] 64 |     systems: Vec<Box<SystemRunner<'a> + 'a>>,
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 64 |     systems: Vec<Box<dyn SystemRunner<'a> + 'a>>,
[INFO] [stdout]    |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::super::join::Join`
[INFO] [stdout]  --> ecs/src/component/storage/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use super::super::join::Join;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> ecs/src/resource.rs:136:69
[INFO] [stdout]     |
[INFO] [stdout] 136 |     fn try_fetch_internal(&self, id: TypeId) -> Option<&RefCell<Box<Resource>>> {
[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] 136 |     fn try_fetch_internal(&self, id: TypeId) -> Option<&RefCell<Box<dyn Resource>>> {
[INFO] [stdout]     |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::super::join::Join`
[INFO] [stdout]  --> ecs/src/component/storage/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use super::super::join::Join;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> ecs/src/component/storage/builtin/vec.rs:84:13
[INFO] [stdout]    |
[INFO] [stdout] 84 |         let mut storage: VecStorage<MyComponent> = VecStorage::new();
[INFO] [stdout]    |             ----^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0557`.
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> ecs/src/entity.rs:84:13
[INFO] [stdout]    |
[INFO] [stdout] 84 |         let mut entity_storage = EntityStorage::new();
[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]   --> ecs/src/entity.rs:91:13
[INFO] [stdout]    |
[INFO] [stdout] 91 |         let mut entity_storage = EntityStorage::new();
[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]    --> ecs/src/entity.rs:100:13
[INFO] [stdout]     |
[INFO] [stdout] 100 |         let mut entity_storage = EntityStorage::new();
[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]    --> ecs/src/entity.rs:109:13
[INFO] [stdout]     |
[INFO] [stdout] 109 |         let mut entity_storage = EntityStorage::new();
[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]    --> ecs/src/entity.rs:119:13
[INFO] [stdout]     |
[INFO] [stdout] 119 |         let mut entity_storage = EntityStorage::new();
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ecs` (lib) due to 1 previous error; 9 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] For more information about this error, try `rustc --explain E0557`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ecs` (lib test) due to 1 previous error; 14 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "894528a674734afed9e2b35d3af8bd256cefc88a19c5a3a9c876c22d7ccd222c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "894528a674734afed9e2b35d3af8bd256cefc88a19c5a3a9c876c22d7ccd222c", kill_on_drop: false }`
[INFO] [stdout] 894528a674734afed9e2b35d3af8bd256cefc88a19c5a3a9c876c22d7ccd222c
