[INFO] fetching crate legion 0.4.0...
[INFO] testing legion-0.4.0 against 1.90.0 for beta-1.91-3
[INFO] extracting crate legion 0.4.0 into /workspace/builds/worker-4-tc1/source
[INFO] started tweaking crates.io crate legion 0.4.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate legion 0.4.0
[INFO] tweaked toml for crates.io crate legion 0.4.0 written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate legion 0.4.0 on toolchain 1.90.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.90.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.90.0" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[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]      Locking 102 packages to latest compatible versions
[INFO] [stderr]       Adding bincode v1.3.3 (available: v2.0.1)
[INFO] [stderr]       Adding bit-set v0.5.3 (available: v0.8.0)
[INFO] [stderr]       Adding criterion v0.3.6 (available: v0.7.0)
[INFO] [stderr]       Adding downcast-rs v1.2.1 (available: v2.0.2)
[INFO] [stderr]       Adding erased-serde v0.3.31 (available: v0.4.8)
[INFO] [stderr]       Adding itertools v0.10.5 (available: v0.14.0)
[INFO] [stderr]       Adding parking_lot v0.11.2 (available: v0.12.4)
[INFO] [stderr]       Adding thiserror v1.0.69 (available: v2.0.17)
[INFO] [stderr]       Adding uuid v0.8.2 (available: v1.18.1)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.90.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded legion_codegen v0.4.0
[INFO] [stderr]   Downloaded atomic_refcell v0.1.13
[INFO] [stderr]   Downloaded cgmath v0.18.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+1.90.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e05c2e418490fd1e12a7a310c3ed32b9a9c0282de7912c5e73639acf9055a3a5
[INFO] running `Command { std: "docker" "start" "-a" "e05c2e418490fd1e12a7a310c3ed32b9a9c0282de7912c5e73639acf9055a3a5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e05c2e418490fd1e12a7a310c3ed32b9a9c0282de7912c5e73639acf9055a3a5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e05c2e418490fd1e12a7a310c3ed32b9a9c0282de7912c5e73639acf9055a3a5", kill_on_drop: false }`
[INFO] [stdout] e05c2e418490fd1e12a7a310c3ed32b9a9c0282de7912c5e73639acf9055a3a5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+1.90.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] fcdfd7b1a934a826d45a7455bbf46e7eaecab41748a6746b3e9137004e765cd3
[INFO] running `Command { std: "docker" "start" "-a" "fcdfd7b1a934a826d45a7455bbf46e7eaecab41748a6746b3e9137004e765cd3", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling parking_lot_core v0.8.6
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling libc v0.2.176
[INFO] [stderr]    Compiling instant v0.1.13
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling downcast-rs v1.2.1
[INFO] [stderr]    Compiling scoped-tls-hkt v0.1.5
[INFO] [stderr]    Compiling atomic_refcell v0.1.13
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling parking_lot v0.11.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling legion_codegen v0.4.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling erased-serde v0.3.31
[INFO] [stderr]    Compiling uuid v0.8.2
[INFO] [stderr]    Compiling legion v0.4.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unexpected `cfg` condition value: `type-uuid`
[INFO] [stdout]   --> src/serialize.rs:42:7
[INFO] [stdout]    |
[INFO] [stdout] 42 | #[cfg(feature = "type-uuid")]
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `codegen`, `crossbeam-channel`, `crossbeam-events`, `default`, `erased-serde`, `extended-tuple-impls`, `legion_codegen`, `parallel`, `rayon`, `scoped-tls-hkt`, `serde`, `serialize`, `stdweb`, and `wasm-bindgen`
[INFO] [stdout]    = help: consider adding `type-uuid` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `itertools::Itertools::fold1`: Use `Iterator::reduce` instead
[INFO] [stdout]    --> src/internals/permissions.rs:272:18
[INFO] [stdout]     |
[INFO] [stdout] 272 |                 .fold1(|x, y| format!("{}, {}", x, y))
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `itertools::Itertools::fold1`: Use `Iterator::reduce` instead
[INFO] [stdout]    --> src/internals/permissions.rs:292:18
[INFO] [stdout]     |
[INFO] [stdout] 292 |                 .fold1(|x, y| format!("{}, {}", x, y))
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/internals/serialize/id.rs:126:36
[INFO] [stdout]     |
[INFO] [stdout] 126 |             let mut deserializer = erased_serde::Deserializer::erase(deserializer);
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) 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)]` on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 126 |             let mut deserializer = <dyn erased_serde::Deserializer>::erase(deserializer);
[INFO] [stdout]     |                                    ++++                           +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/internals/serialize/mod.rs:308:36
[INFO] [stdout]     |
[INFO] [stdout] 308 |             let mut deserializer = erased_serde::Deserializer::erase(deserializer);
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) 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] 308 |             let mut deserializer = <dyn erased_serde::Deserializer>::erase(deserializer);
[INFO] [stdout]     |                                    ++++                           +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/internals/serialize/mod.rs:323:36
[INFO] [stdout]     |
[INFO] [stdout] 323 |             let mut deserializer = erased_serde::Deserializer::erase(deserializer);
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) 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] 323 |             let mut deserializer = <dyn erased_serde::Deserializer>::erase(deserializer);
[INFO] [stdout]     |                                    ++++                           +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ConsPrepend` is never used
[INFO] [stdout]   --> src/internals/cons.rs:30:11
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub trait ConsPrepend<T> {
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Into` is never used
[INFO] [stdout]   --> src/internals/iter/map.rs:16:11
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub trait Into<T> {
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InsertCommand` is never constructed
[INFO] [stdout]    --> src/internals/systems/command.rs:138:8
[INFO] [stdout]     |
[INFO] [stdout] 138 | struct InsertCommand<T> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/internals/query/mod.rs:181:10
[INFO] [stdout]     |
[INFO] [stdout] 181 |         &'a mut self,
[INFO] [stdout]     |          ^^ the lifetime is named here
[INFO] [stdout] 182 |         world: &StorageAccessor<'a>,
[INFO] [stdout]     |                                 ^^ the lifetime is named here
[INFO] [stdout] 183 |     ) -> (&mut Mutex<F>, QueryResult<'a>) {
[INFO] [stdout]     |           -------------              -- the same lifetime is named here
[INFO] [stdout]     |           |
[INFO] [stdout]     |           the same 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: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 183 |     ) -> (&'a mut Mutex<F>, QueryResult<'a>) {
[INFO] [stdout]     |            ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/internals/storage/mod.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | #[derive(Copy, Clone, PartialEq)]
[INFO] [stdout]    |                       --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 26 |     drop_fn: Option<fn(*mut u8)>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]    = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/storage/mod.rs:334:26
[INFO] [stdout]     |
[INFO] [stdout] 334 |     pub fn get_multi_mut(&mut self) -> MultiMut {
[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] 334 |     pub fn get_multi_mut(&mut self) -> MultiMut<'_> {
[INFO] [stdout]     |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/internals/storage/slicevec.rs:38:22
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn iter_from(&self, start: usize) -> SliceVecIter<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] 38 |     pub fn iter_from(&self, start: usize) -> SliceVecIter<'_, T> {
[INFO] [stdout]    |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/subworld.rs:233:9
[INFO] [stdout]     |
[INFO] [stdout] 233 |         &mut self,
[INFO] [stdout]     |         ^^^^^^^^^ the lifetime is elided here
[INFO] [stdout] 234 |         _: &'q Query<V, F>,
[INFO] [stdout] 235 |     ) -> (SubWorld, SubWorld) {
[INFO] [stdout]     |           --------  -------- the same lifetime is hidden here
[INFO] [stdout]     |           |
[INFO] [stdout]     |           the same lifetime is hidden 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] 235 |     ) -> (SubWorld<'_>, SubWorld<'_>) {
[INFO] [stdout]     |                   ++++          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/subworld.rs:250:9
[INFO] [stdout]     |
[INFO] [stdout] 250 |         &self,
[INFO] [stdout]     |         ^^^^^ the lifetime is elided here
[INFO] [stdout] 251 |     ) -> Result<StorageAccessor, EntityAccessError> {
[INFO] [stdout]     |                 --------------- the same lifetime is hidden 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] 251 |     ) -> Result<StorageAccessor<'_>, EntityAccessError> {
[INFO] [stdout]     |                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/subworld.rs:263:18
[INFO] [stdout]     |
[INFO] [stdout] 263 |     fn entry_ref(&self, entity: Entity) -> Result<EntryRef, EntityAccessError> {
[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] 263 |     fn entry_ref(&self, entity: Entity) -> Result<EntryRef<'_>, EntityAccessError> {
[INFO] [stdout]     |                                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/subworld.rs:276:18
[INFO] [stdout]     |
[INFO] [stdout] 276 |     fn entry_mut(&mut self, entity: Entity) -> Result<EntryMut, EntityAccessError> {
[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] 276 |     fn entry_mut(&mut self, entity: Entity) -> Result<EntryMut<'_>, EntityAccessError> {
[INFO] [stdout]     |                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/systems/resources.rs:205:29
[INFO] [stdout]     |
[INFO] [stdout] 205 |     pub fn get<T: Resource>(&self) -> AtomicRef<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] 205 |     pub fn get<T: Resource>(&self) -> AtomicRef<'_, T> {
[INFO] [stdout]     |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/systems/resources.rs:213:33
[INFO] [stdout]     |
[INFO] [stdout] 213 |     pub fn get_mut<T: Resource>(&self) -> AtomicRefMut<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] 213 |     pub fn get_mut<T: Resource>(&self) -> AtomicRefMut<'_, T> {
[INFO] [stdout]     |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/systems/resources.rs:237:21
[INFO] [stdout]     |
[INFO] [stdout] 237 |     unsafe fn entry(&mut self, type_id: ResourceTypeId) -> Entry<ResourceTypeId, ResourceCell> {
[INFO] [stdout]     |                     ^^^^^^^^^ the lifetime is elided here  ----------------------------------- the same lifetime is hidden 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] 237 |     unsafe fn entry(&mut self, type_id: ResourceTypeId) -> Entry<'_, ResourceTypeId, ResourceCell> {
[INFO] [stdout]     |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/systems/resources.rs:285:17
[INFO] [stdout]     |
[INFO] [stdout] 285 |     pub fn sync(&mut self) -> SyncResources {
[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] 285 |     pub fn sync(&mut self) -> SyncResources<'_> {
[INFO] [stdout]     |                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/systems/resources.rs:330:29
[INFO] [stdout]     |
[INFO] [stdout] 330 |     pub fn get<T: Resource>(&self) -> Option<AtomicRef<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] 330 |     pub fn get<T: Resource>(&self) -> Option<AtomicRef<'_, T>> {
[INFO] [stdout]     |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/systems/resources.rs:339:33
[INFO] [stdout]     |
[INFO] [stdout] 339 |     pub fn get_mut<T: Resource>(&self) -> Option<AtomicRefMut<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] 339 |     pub fn get_mut<T: Resource>(&self) -> Option<AtomicRefMut<'_, T>> {
[INFO] [stdout]     |                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/systems/resources.rs:349:62
[INFO] [stdout]     |
[INFO] [stdout] 349 |     pub fn get_or_insert_with<T: Resource, F: FnOnce() -> T>(&mut self, f: F) -> AtomicRef<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] 349 |     pub fn get_or_insert_with<T: Resource, F: FnOnce() -> T>(&mut self, f: F) -> AtomicRef<'_, T> {
[INFO] [stdout]     |                                                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/systems/resources.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 365 |         &mut self,
[INFO] [stdout]     |         ^^^^^^^^^ the lifetime is elided here
[INFO] [stdout] 366 |         f: F,
[INFO] [stdout] 367 |     ) -> AtomicRefMut<T> {
[INFO] [stdout]     |          --------------- the same lifetime is hidden 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] 367 |     ) -> AtomicRefMut<'_, T> {
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/systems/resources.rs:382:39
[INFO] [stdout]     |
[INFO] [stdout] 382 |     pub fn get_or_insert<T: Resource>(&mut self, value: T) -> AtomicRef<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] 382 |     pub fn get_or_insert<T: Resource>(&mut self, value: T) -> AtomicRef<'_, T> {
[INFO] [stdout]     |                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/systems/resources.rs:388:43
[INFO] [stdout]     |
[INFO] [stdout] 388 |     pub fn get_mut_or_insert<T: Resource>(&mut self, value: T) -> AtomicRefMut<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] 388 |     pub fn get_mut_or_insert<T: Resource>(&mut self, value: T) -> AtomicRefMut<'_, T> {
[INFO] [stdout]     |                                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/systems/resources.rs:396:50
[INFO] [stdout]     |
[INFO] [stdout] 396 |     pub fn get_or_default<T: Resource + Default>(&mut self) -> AtomicRef<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] 396 |     pub fn get_or_default<T: Resource + Default>(&mut self) -> AtomicRef<'_, T> {
[INFO] [stdout]     |                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/systems/resources.rs:404:54
[INFO] [stdout]     |
[INFO] [stdout] 404 |     pub fn get_mut_or_default<T: Resource + Default>(&mut self) -> AtomicRefMut<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] 404 |     pub fn get_mut_or_default<T: Resource + Default>(&mut self) -> AtomicRefMut<'_, T> {
[INFO] [stdout]     |                                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/systems/resources.rs:432:36
[INFO] [stdout]     |
[INFO] [stdout] 432 |     pub fn get<T: Resource + Sync>(&self) -> Option<AtomicRef<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] 432 |     pub fn get<T: Resource + Sync>(&self) -> Option<AtomicRef<'_, T>> {
[INFO] [stdout]     |                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/systems/resources.rs:438:40
[INFO] [stdout]     |
[INFO] [stdout] 438 |     pub fn get_mut<T: Resource + Send>(&self) -> Option<AtomicRefMut<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] 438 |     pub fn get_mut<T: Resource + Send>(&self) -> Option<AtomicRefMut<'_, T>> {
[INFO] [stdout]     |                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/internals/world.rs:52:18
[INFO] [stdout]    |
[INFO] [stdout] 52 |     fn entry_ref(&self, entity: Entity) -> Result<EntryRef, EntityAccessError>;
[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] 52 |     fn entry_ref(&self, entity: Entity) -> Result<EntryRef<'_>, EntityAccessError>;
[INFO] [stdout]    |                                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/internals/world.rs:55:18
[INFO] [stdout]    |
[INFO] [stdout] 55 |     fn entry_mut(&mut self, entity: Entity) -> Result<EntryMut, EntityAccessError>;
[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] 55 |     fn entry_mut(&mut self, entity: Entity) -> Result<EntryMut<'_>, EntityAccessError>;
[INFO] [stdout]    |                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/internals/world.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |         &self,
[INFO] [stdout]    |         ^^^^^ the lifetime is elided here
[INFO] [stdout] 60 |     ) -> Result<StorageAccessor, EntityAccessError>;
[INFO] [stdout]    |                 --------------- the same lifetime is hidden 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] 60 |     ) -> Result<StorageAccessor<'_>, EntityAccessError>;
[INFO] [stdout]    |                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/world.rs:307:18
[INFO] [stdout]     |
[INFO] [stdout] 307 |     pub fn entry(&mut self, entity: Entity) -> Option<Entry> {
[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] 307 |     pub fn entry(&mut self, entity: Entity) -> Option<Entry<'_>> {
[INFO] [stdout]     |                                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/world.rs:314:9
[INFO] [stdout]     |
[INFO] [stdout] 314 |         &self,
[INFO] [stdout]     |         ^^^^^ the lifetime is elided here
[INFO] [stdout] 315 |         entity: Entity,
[INFO] [stdout] 316 |     ) -> Result<EntryMut, EntityAccessError> {
[INFO] [stdout]     |                 -------- the same lifetime is hidden 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] 316 |     ) -> Result<EntryMut<'_>, EntityAccessError> {
[INFO] [stdout]     |                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/world.rs:510:31
[INFO] [stdout]     |
[INFO] [stdout] 510 |     pub fn split<T: IntoView>(&mut self) -> (SubWorld, SubWorld) {
[INFO] [stdout]     |                               ^^^^^^^^^      --------  -------- the same lifetime is hidden here
[INFO] [stdout]     |                               |              |
[INFO] [stdout]     |                               |              the same lifetime is hidden here
[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] 510 |     pub fn split<T: IntoView>(&mut self) -> (SubWorld<'_>, SubWorld<'_>) {
[INFO] [stdout]     |                                                      ++++          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/world.rs:526:9
[INFO] [stdout]     |
[INFO] [stdout] 526 |         &mut self,
[INFO] [stdout]     |         ^^^^^^^^^ the lifetime is elided here
[INFO] [stdout] 527 |         _: &'q Query<V, F>,
[INFO] [stdout] 528 |     ) -> (SubWorld, SubWorld) {
[INFO] [stdout]     |           --------  -------- the same lifetime is hidden here
[INFO] [stdout]     |           |
[INFO] [stdout]     |           the same lifetime is hidden 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] 528 |     ) -> (SubWorld<'_>, SubWorld<'_>) {
[INFO] [stdout]     |                   ++++          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/world.rs:846:18
[INFO] [stdout]     |
[INFO] [stdout] 846 |     fn entry_ref(&self, entity: Entity) -> Result<EntryRef, EntityAccessError> {
[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] 846 |     fn entry_ref(&self, entity: Entity) -> Result<EntryRef<'_>, EntityAccessError> {
[INFO] [stdout]     |                                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/world.rs:860:18
[INFO] [stdout]     |
[INFO] [stdout] 860 |     fn entry_mut(&mut self, entity: Entity) -> Result<EntryMut, EntityAccessError> {
[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] 860 |     fn entry_mut(&mut self, entity: Entity) -> Result<EntryMut<'_>, EntityAccessError> {
[INFO] [stdout]     |                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/world.rs:866:9
[INFO] [stdout]     |
[INFO] [stdout] 866 |         &self,
[INFO] [stdout]     |         ^^^^^ the lifetime is elided here
[INFO] [stdout] 867 |     ) -> Result<StorageAccessor, EntityAccessError> {
[INFO] [stdout]     |                 --------------- the same lifetime is hidden 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] 867 |     ) -> Result<StorageAccessor<'_>, EntityAccessError> {
[INFO] [stdout]     |                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 23.60s
[INFO] running `Command { std: "docker" "inspect" "fcdfd7b1a934a826d45a7455bbf46e7eaecab41748a6746b3e9137004e765cd3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fcdfd7b1a934a826d45a7455bbf46e7eaecab41748a6746b3e9137004e765cd3", kill_on_drop: false }`
[INFO] [stdout] fcdfd7b1a934a826d45a7455bbf46e7eaecab41748a6746b3e9137004e765cd3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+1.90.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 758bb434c08f2e57ca1624a2d81a4984f951b621575a374080cb7b158419c2a6
[INFO] running `Command { std: "docker" "start" "-a" "758bb434c08f2e57ca1624a2d81a4984f951b621575a374080cb7b158419c2a6", kill_on_drop: false }`
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling regex-syntax v0.8.6
[INFO] [stderr]    Compiling target-triple v0.1.4
[INFO] [stderr]    Compiling winnow v0.7.13
[INFO] [stderr]    Compiling plotters-backend v0.3.7
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]    Compiling textwrap v0.11.0
[INFO] [stderr]    Compiling toml_datetime v0.7.2
[INFO] [stderr]    Compiling serde_spanned v1.0.2
[INFO] [stderr]    Compiling csv-core v0.1.12
[INFO] [stderr]    Compiling cgmath v0.18.0
[INFO] [stderr]    Compiling toml_writer v1.0.3
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling serde_cbor v0.11.2
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling termcolor v1.4.1
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling bincode v1.3.3
[INFO] [stderr]    Compiling clap v2.34.0
[INFO] [stderr]    Compiling csv v1.3.1
[INFO] [stderr]    Compiling plotters-svg v0.3.7
[INFO] [stdout] warning: unexpected `cfg` condition value: `type-uuid`
[INFO] [stdout]   --> src/serialize.rs:42:7
[INFO] [stdout]    |
[INFO] [stdout] 42 | #[cfg(feature = "type-uuid")]
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `codegen`, `crossbeam-channel`, `crossbeam-events`, `default`, `erased-serde`, `extended-tuple-impls`, `legion_codegen`, `parallel`, `rayon`, `scoped-tls-hkt`, `serde`, `serialize`, `stdweb`, and `wasm-bindgen`
[INFO] [stdout]    = help: consider adding `type-uuid` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `itertools::Itertools::fold1`: Use `Iterator::reduce` instead
[INFO] [stdout]    --> src/internals/permissions.rs:272:18
[INFO] [stdout]     |
[INFO] [stdout] 272 |                 .fold1(|x, y| format!("{}, {}", x, y))
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `itertools::Itertools::fold1`: Use `Iterator::reduce` instead
[INFO] [stdout]    --> src/internals/permissions.rs:292:18
[INFO] [stdout]     |
[INFO] [stdout] 292 |                 .fold1(|x, y| format!("{}, {}", x, y))
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/internals/serialize/id.rs:126:36
[INFO] [stdout]     |
[INFO] [stdout] 126 |             let mut deserializer = erased_serde::Deserializer::erase(deserializer);
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) 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)]` on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 126 |             let mut deserializer = <dyn erased_serde::Deserializer>::erase(deserializer);
[INFO] [stdout]     |                                    ++++                           +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/internals/serialize/mod.rs:308:36
[INFO] [stdout]     |
[INFO] [stdout] 308 |             let mut deserializer = erased_serde::Deserializer::erase(deserializer);
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) 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] 308 |             let mut deserializer = <dyn erased_serde::Deserializer>::erase(deserializer);
[INFO] [stdout]     |                                    ++++                           +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/internals/serialize/mod.rs:323:36
[INFO] [stdout]     |
[INFO] [stdout] 323 |             let mut deserializer = erased_serde::Deserializer::erase(deserializer);
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) 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] 323 |             let mut deserializer = <dyn erased_serde::Deserializer>::erase(deserializer);
[INFO] [stdout]     |                                    ++++                           +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ConsPrepend` is never used
[INFO] [stdout]   --> src/internals/cons.rs:30:11
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub trait ConsPrepend<T> {
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Into` is never used
[INFO] [stdout]   --> src/internals/iter/map.rs:16:11
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub trait Into<T> {
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InsertCommand` is never constructed
[INFO] [stdout]    --> src/internals/systems/command.rs:138:8
[INFO] [stdout]     |
[INFO] [stdout] 138 | struct InsertCommand<T> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/internals/query/mod.rs:181:10
[INFO] [stdout]     |
[INFO] [stdout] 181 |         &'a mut self,
[INFO] [stdout]     |          ^^ the lifetime is named here
[INFO] [stdout] 182 |         world: &StorageAccessor<'a>,
[INFO] [stdout]     |                                 ^^ the lifetime is named here
[INFO] [stdout] 183 |     ) -> (&mut Mutex<F>, QueryResult<'a>) {
[INFO] [stdout]     |           -------------              -- the same lifetime is named here
[INFO] [stdout]     |           |
[INFO] [stdout]     |           the same 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: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 183 |     ) -> (&'a mut Mutex<F>, QueryResult<'a>) {
[INFO] [stdout]     |            ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/internals/storage/mod.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | #[derive(Copy, Clone, PartialEq)]
[INFO] [stdout]    |                       --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 26 |     drop_fn: Option<fn(*mut u8)>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]    = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/storage/mod.rs:334:26
[INFO] [stdout]     |
[INFO] [stdout] 334 |     pub fn get_multi_mut(&mut self) -> MultiMut {
[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] 334 |     pub fn get_multi_mut(&mut self) -> MultiMut<'_> {
[INFO] [stdout]     |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/internals/storage/slicevec.rs:38:22
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn iter_from(&self, start: usize) -> SliceVecIter<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] 38 |     pub fn iter_from(&self, start: usize) -> SliceVecIter<'_, T> {
[INFO] [stdout]    |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/subworld.rs:233:9
[INFO] [stdout]     |
[INFO] [stdout] 233 |         &mut self,
[INFO] [stdout]     |         ^^^^^^^^^ the lifetime is elided here
[INFO] [stdout] 234 |         _: &'q Query<V, F>,
[INFO] [stdout] 235 |     ) -> (SubWorld, SubWorld) {
[INFO] [stdout]     |           --------  -------- the same lifetime is hidden here
[INFO] [stdout]     |           |
[INFO] [stdout]     |           the same lifetime is hidden 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] 235 |     ) -> (SubWorld<'_>, SubWorld<'_>) {
[INFO] [stdout]     |                   ++++          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/subworld.rs:250:9
[INFO] [stdout]     |
[INFO] [stdout] 250 |         &self,
[INFO] [stdout]     |         ^^^^^ the lifetime is elided here
[INFO] [stdout] 251 |     ) -> Result<StorageAccessor, EntityAccessError> {
[INFO] [stdout]     |                 --------------- the same lifetime is hidden 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] 251 |     ) -> Result<StorageAccessor<'_>, EntityAccessError> {
[INFO] [stdout]     |                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/subworld.rs:263:18
[INFO] [stdout]     |
[INFO] [stdout] 263 |     fn entry_ref(&self, entity: Entity) -> Result<EntryRef, EntityAccessError> {
[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] 263 |     fn entry_ref(&self, entity: Entity) -> Result<EntryRef<'_>, EntityAccessError> {
[INFO] [stdout]     |                                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/subworld.rs:276:18
[INFO] [stdout]     |
[INFO] [stdout] 276 |     fn entry_mut(&mut self, entity: Entity) -> Result<EntryMut, EntityAccessError> {
[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] 276 |     fn entry_mut(&mut self, entity: Entity) -> Result<EntryMut<'_>, EntityAccessError> {
[INFO] [stdout]     |                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/systems/resources.rs:205:29
[INFO] [stdout]     |
[INFO] [stdout] 205 |     pub fn get<T: Resource>(&self) -> AtomicRef<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] 205 |     pub fn get<T: Resource>(&self) -> AtomicRef<'_, T> {
[INFO] [stdout]     |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/systems/resources.rs:213:33
[INFO] [stdout]     |
[INFO] [stdout] 213 |     pub fn get_mut<T: Resource>(&self) -> AtomicRefMut<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] 213 |     pub fn get_mut<T: Resource>(&self) -> AtomicRefMut<'_, T> {
[INFO] [stdout]     |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/systems/resources.rs:237:21
[INFO] [stdout]     |
[INFO] [stdout] 237 |     unsafe fn entry(&mut self, type_id: ResourceTypeId) -> Entry<ResourceTypeId, ResourceCell> {
[INFO] [stdout]     |                     ^^^^^^^^^ the lifetime is elided here  ----------------------------------- the same lifetime is hidden 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] 237 |     unsafe fn entry(&mut self, type_id: ResourceTypeId) -> Entry<'_, ResourceTypeId, ResourceCell> {
[INFO] [stdout]     |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/systems/resources.rs:285:17
[INFO] [stdout]     |
[INFO] [stdout] 285 |     pub fn sync(&mut self) -> SyncResources {
[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] 285 |     pub fn sync(&mut self) -> SyncResources<'_> {
[INFO] [stdout]     |                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/systems/resources.rs:330:29
[INFO] [stdout]     |
[INFO] [stdout] 330 |     pub fn get<T: Resource>(&self) -> Option<AtomicRef<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] 330 |     pub fn get<T: Resource>(&self) -> Option<AtomicRef<'_, T>> {
[INFO] [stdout]     |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/systems/resources.rs:339:33
[INFO] [stdout]     |
[INFO] [stdout] 339 |     pub fn get_mut<T: Resource>(&self) -> Option<AtomicRefMut<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] 339 |     pub fn get_mut<T: Resource>(&self) -> Option<AtomicRefMut<'_, T>> {
[INFO] [stdout]     |                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/systems/resources.rs:349:62
[INFO] [stdout]     |
[INFO] [stdout] 349 |     pub fn get_or_insert_with<T: Resource, F: FnOnce() -> T>(&mut self, f: F) -> AtomicRef<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] 349 |     pub fn get_or_insert_with<T: Resource, F: FnOnce() -> T>(&mut self, f: F) -> AtomicRef<'_, T> {
[INFO] [stdout]     |                                                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/systems/resources.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 365 |         &mut self,
[INFO] [stdout]     |         ^^^^^^^^^ the lifetime is elided here
[INFO] [stdout] 366 |         f: F,
[INFO] [stdout] 367 |     ) -> AtomicRefMut<T> {
[INFO] [stdout]     |          --------------- the same lifetime is hidden 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] 367 |     ) -> AtomicRefMut<'_, T> {
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/systems/resources.rs:382:39
[INFO] [stdout]     |
[INFO] [stdout] 382 |     pub fn get_or_insert<T: Resource>(&mut self, value: T) -> AtomicRef<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] 382 |     pub fn get_or_insert<T: Resource>(&mut self, value: T) -> AtomicRef<'_, T> {
[INFO] [stdout]     |                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/systems/resources.rs:388:43
[INFO] [stdout]     |
[INFO] [stdout] 388 |     pub fn get_mut_or_insert<T: Resource>(&mut self, value: T) -> AtomicRefMut<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] 388 |     pub fn get_mut_or_insert<T: Resource>(&mut self, value: T) -> AtomicRefMut<'_, T> {
[INFO] [stdout]     |                                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/systems/resources.rs:396:50
[INFO] [stdout]     |
[INFO] [stdout] 396 |     pub fn get_or_default<T: Resource + Default>(&mut self) -> AtomicRef<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] 396 |     pub fn get_or_default<T: Resource + Default>(&mut self) -> AtomicRef<'_, T> {
[INFO] [stdout]     |                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/systems/resources.rs:404:54
[INFO] [stdout]     |
[INFO] [stdout] 404 |     pub fn get_mut_or_default<T: Resource + Default>(&mut self) -> AtomicRefMut<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] 404 |     pub fn get_mut_or_default<T: Resource + Default>(&mut self) -> AtomicRefMut<'_, T> {
[INFO] [stdout]     |                                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/systems/resources.rs:432:36
[INFO] [stdout]     |
[INFO] [stdout] 432 |     pub fn get<T: Resource + Sync>(&self) -> Option<AtomicRef<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] 432 |     pub fn get<T: Resource + Sync>(&self) -> Option<AtomicRef<'_, T>> {
[INFO] [stdout]     |                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/systems/resources.rs:438:40
[INFO] [stdout]     |
[INFO] [stdout] 438 |     pub fn get_mut<T: Resource + Send>(&self) -> Option<AtomicRefMut<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] 438 |     pub fn get_mut<T: Resource + Send>(&self) -> Option<AtomicRefMut<'_, T>> {
[INFO] [stdout]     |                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/internals/world.rs:52:18
[INFO] [stdout]    |
[INFO] [stdout] 52 |     fn entry_ref(&self, entity: Entity) -> Result<EntryRef, EntityAccessError>;
[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] 52 |     fn entry_ref(&self, entity: Entity) -> Result<EntryRef<'_>, EntityAccessError>;
[INFO] [stdout]    |                                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/internals/world.rs:55:18
[INFO] [stdout]    |
[INFO] [stdout] 55 |     fn entry_mut(&mut self, entity: Entity) -> Result<EntryMut, EntityAccessError>;
[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] 55 |     fn entry_mut(&mut self, entity: Entity) -> Result<EntryMut<'_>, EntityAccessError>;
[INFO] [stdout]    |                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/internals/world.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |         &self,
[INFO] [stdout]    |         ^^^^^ the lifetime is elided here
[INFO] [stdout] 60 |     ) -> Result<StorageAccessor, EntityAccessError>;
[INFO] [stdout]    |                 --------------- the same lifetime is hidden 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] 60 |     ) -> Result<StorageAccessor<'_>, EntityAccessError>;
[INFO] [stdout]    |                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/world.rs:307:18
[INFO] [stdout]     |
[INFO] [stdout] 307 |     pub fn entry(&mut self, entity: Entity) -> Option<Entry> {
[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] 307 |     pub fn entry(&mut self, entity: Entity) -> Option<Entry<'_>> {
[INFO] [stdout]     |                                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/world.rs:314:9
[INFO] [stdout]     |
[INFO] [stdout] 314 |         &self,
[INFO] [stdout]     |         ^^^^^ the lifetime is elided here
[INFO] [stdout] 315 |         entity: Entity,
[INFO] [stdout] 316 |     ) -> Result<EntryMut, EntityAccessError> {
[INFO] [stdout]     |                 -------- the same lifetime is hidden 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] 316 |     ) -> Result<EntryMut<'_>, EntityAccessError> {
[INFO] [stdout]     |                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/world.rs:510:31
[INFO] [stdout]     |
[INFO] [stdout] 510 |     pub fn split<T: IntoView>(&mut self) -> (SubWorld, SubWorld) {
[INFO] [stdout]     |                               ^^^^^^^^^      --------  -------- the same lifetime is hidden here
[INFO] [stdout]     |                               |              |
[INFO] [stdout]     |                               |              the same lifetime is hidden here
[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] 510 |     pub fn split<T: IntoView>(&mut self) -> (SubWorld<'_>, SubWorld<'_>) {
[INFO] [stdout]     |                                                      ++++          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/world.rs:526:9
[INFO] [stdout]     |
[INFO] [stdout] 526 |         &mut self,
[INFO] [stdout]     |         ^^^^^^^^^ the lifetime is elided here
[INFO] [stdout] 527 |         _: &'q Query<V, F>,
[INFO] [stdout] 528 |     ) -> (SubWorld, SubWorld) {
[INFO] [stdout]     |           --------  -------- the same lifetime is hidden here
[INFO] [stdout]     |           |
[INFO] [stdout]     |           the same lifetime is hidden 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] 528 |     ) -> (SubWorld<'_>, SubWorld<'_>) {
[INFO] [stdout]     |                   ++++          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/world.rs:846:18
[INFO] [stdout]     |
[INFO] [stdout] 846 |     fn entry_ref(&self, entity: Entity) -> Result<EntryRef, EntityAccessError> {
[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] 846 |     fn entry_ref(&self, entity: Entity) -> Result<EntryRef<'_>, EntityAccessError> {
[INFO] [stdout]     |                                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/world.rs:860:18
[INFO] [stdout]     |
[INFO] [stdout] 860 |     fn entry_mut(&mut self, entity: Entity) -> Result<EntryMut, EntityAccessError> {
[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] 860 |     fn entry_mut(&mut self, entity: Entity) -> Result<EntryMut<'_>, EntityAccessError> {
[INFO] [stdout]     |                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/internals/world.rs:866:9
[INFO] [stdout]     |
[INFO] [stdout] 866 |         &self,
[INFO] [stdout]     |         ^^^^^ the lifetime is elided here
[INFO] [stdout] 867 |     ) -> Result<StorageAccessor, EntityAccessError> {
[INFO] [stdout]     |                 --------------- the same lifetime is hidden 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] 867 |     ) -> Result<StorageAccessor<'_>, EntityAccessError> {
[INFO] [stdout]     |                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling criterion-plot v0.4.5
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling approx v0.4.0
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling regex-automata v0.4.11
[INFO] [stderr]    Compiling toml_parser v1.0.3
[INFO] [stderr]    Compiling toml v0.9.7
[INFO] [stderr]    Compiling regex v1.11.3
[INFO] [stderr]    Compiling trybuild v1.0.111
[INFO] [stderr]    Compiling criterion v0.3.6
[INFO] [stderr]    Compiling legion v0.4.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> tests/systems_basic.rs:42:24
[INFO] [stdout]    |
[INFO] [stdout] 42 |         struct NotSync(*const usize);
[INFO] [stdout]    |                ------- ^^^^^^^^^^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> tests/systems_basic.rs:52:24
[INFO] [stdout]    |
[INFO] [stdout] 52 |         struct NotSync(*const usize);
[INFO] [stdout]    |                ------- ^^^^^^^^^^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Vel` is never constructed
[INFO] [stdout]   --> tests/world_api.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | struct Vel(f32, f32, f32);
[INFO] [stdout]    |        ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Accel` is never constructed
[INFO] [stdout]   --> tests/world_api.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct Accel(f32, f32, f32);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Model` is never constructed
[INFO] [stdout]   --> tests/world_api.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | struct Model(u32);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Static` is never constructed
[INFO] [stdout]   --> tests/world_api.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | struct Static;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Scale` is never constructed
[INFO] [stdout]   --> tests/query_api.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | struct Scale(f32, f32, f32);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Vel` is never constructed
[INFO] [stdout]   --> tests/query_api.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | struct Vel(f32, f32, f32);
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Accel` is never constructed
[INFO] [stdout]   --> tests/query_api.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | struct Accel(f32, f32, f32);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Model` is never constructed
[INFO] [stdout]   --> tests/query_api.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | struct Model(u32);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Static` is never constructed
[INFO] [stdout]   --> tests/query_api.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | struct Static;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `type-uuid`
[INFO] [stdout]   --> src/serialize.rs:42:7
[INFO] [stdout]    |
[INFO] [stdout] 42 | #[cfg(feature = "type-uuid")]
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `codegen`, `crossbeam-channel`, `crossbeam-events`, `default`, `erased-serde`, `extended-tuple-impls`, `legion_codegen`, `parallel`, `rayon`, `scoped-tls-hkt`, `serde`, `serialize`, `stdweb`, and `wasm-bindgen`
[INFO] [stdout]    = help: consider adding `type-uuid` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0512]: cannot transmute between types of different sizes, or dependently-sized types
[INFO] [stdout]   --> src/internals/hash.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |             core::mem::transmute::<TypeId, u64>(type_id)
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: source type: `TypeId` (128 bits)
[INFO] [stdout]    = note: target type: `u64` (64 bits)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `itertools::Itertools::fold1`: Use `Iterator::reduce` instead
[INFO] [stdout]    --> src/internals/permissions.rs:272:18
[INFO] [stdout]     |
[INFO] [stdout] 272 |                 .fold1(|x, y| format!("{}, {}", x, y))
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `itertools::Itertools::fold1`: Use `Iterator::reduce` instead
[INFO] [stdout]    --> src/internals/permissions.rs:292:18
[INFO] [stdout]     |
[INFO] [stdout] 292 |                 .fold1(|x, y| format!("{}, {}", x, y))
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/internals/serialize/id.rs:126:36
[INFO] [stdout]     |
[INFO] [stdout] 126 |             let mut deserializer = erased_serde::Deserializer::erase(deserializer);
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) 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)]` on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 126 |             let mut deserializer = <dyn erased_serde::Deserializer>::erase(deserializer);
[INFO] [stdout]     |                                    ++++                           +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/internals/serialize/mod.rs:308:36
[INFO] [stdout]     |
[INFO] [stdout] 308 |             let mut deserializer = erased_serde::Deserializer::erase(deserializer);
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) 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] 308 |             let mut deserializer = <dyn erased_serde::Deserializer>::erase(deserializer);
[INFO] [stdout]     |                                    ++++                           +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/internals/serialize/mod.rs:323:36
[INFO] [stdout]     |
[INFO] [stdout] 323 |             let mut deserializer = erased_serde::Deserializer::erase(deserializer);
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) 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] 323 |             let mut deserializer = <dyn erased_serde::Deserializer>::erase(deserializer);
[INFO] [stdout]     |                                    ++++                           +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0512`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `legion` (lib test) due to 1 previous error; 6 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "758bb434c08f2e57ca1624a2d81a4984f951b621575a374080cb7b158419c2a6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "758bb434c08f2e57ca1624a2d81a4984f951b621575a374080cb7b158419c2a6", kill_on_drop: false }`
[INFO] [stdout] 758bb434c08f2e57ca1624a2d81a4984f951b621575a374080cb7b158419c2a6
