[INFO] fetching crate crayon 0.7.1...
[INFO] checking crayon-0.7.1 against try#09eeb2bacb9b40b2ed1d47f03177442c0632cda1 for pr-157710
[INFO] extracting crate crayon 0.7.1 into /workspace/builds/worker-0-tc2/source
[INFO] started tweaking crates.io crate crayon 0.7.1
[INFO] finished tweaking crates.io crate crayon 0.7.1
[INFO] tweaked toml for crates.io crate crayon 0.7.1 written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate crayon 0.7.1 on toolchain 09eeb2bacb9b40b2ed1d47f03177442c0632cda1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+09eeb2bacb9b40b2ed1d47f03177442c0632cda1" "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" "+09eeb2bacb9b40b2ed1d47f03177442c0632cda1" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 134 packages to latest compatible versions
[INFO] [stderr]       Adding bincode v1.3.3 (available: v3.0.0)
[INFO] [stderr]       Adding cgmath v0.16.1 (available: v0.18.0)
[INFO] [stderr]       Adding crossbeam-deque v0.5.2 (available: v0.8.6)
[INFO] [stderr]       Adding env_logger v0.6.2 (available: v0.11.10)
[INFO] [stderr]       Adding gl v0.10.0 (available: v0.14.0)
[INFO] [stderr]       Adding glutin v0.18.0 (available: v0.32.3)
[INFO] [stderr]       Adding rand v0.5.6 (available: v0.10.1)
[INFO] [stderr]       Adding smallvec v0.6.14 (available: v1.15.2)
[INFO] [stderr]       Adding uuid v0.7.4 (available: v1.23.3)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+09eeb2bacb9b40b2ed1d47f03177442c0632cda1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 24d9ab1ffd8a7ba4729560387632bf1ee186b6c069f50377954f4d75ba807f6c
[INFO] running `Command { std: "docker" "start" "24d9ab1ffd8a7ba4729560387632bf1ee186b6c069f50377954f4d75ba807f6c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "24d9ab1ffd8a7ba4729560387632bf1ee186b6c069f50377954f4d75ba807f6c" "/opt/rustwide/cargo-home/bin/cargo" "+09eeb2bacb9b40b2ed1d47f03177442c0632cda1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "24d9ab1ffd8a7ba4729560387632bf1ee186b6c069f50377954f4d75ba807f6c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "24d9ab1ffd8a7ba4729560387632bf1ee186b6c069f50377954f4d75ba807f6c" "/opt/rustwide/cargo-home/bin/cargo" "+09eeb2bacb9b40b2ed1d47f03177442c0632cda1" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.118
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling wayland-scanner v0.20.12
[INFO] [stderr]    Compiling log v0.4.32
[INFO] [stderr]     Checking libloading v0.6.7
[INFO] [stderr]     Checking stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking rand v0.5.6
[INFO] [stderr]    Compiling parking_lot_core v0.3.1
[INFO] [stderr]     Checking nix v0.11.1
[INFO] [stderr]     Checking memmap v0.6.2
[INFO] [stderr]     Checking x11-dl v2.21.0
[INFO] [stderr]     Checking shared_library v0.1.9
[INFO] [stderr]     Checking crossbeam-utils v0.5.0
[INFO] [stderr]    Compiling cgmath v0.16.1
[INFO] [stderr]     Checking backtrace v0.3.76
[INFO] [stderr]     Checking owning_ref v0.4.1
[INFO] [stderr]     Checking osmesa-sys v0.1.2
[INFO] [stderr]     Checking dlib v0.4.2
[INFO] [stderr]    Compiling gl_generator v0.9.0
[INFO] [stderr]     Checking wayland-sys v0.20.12
[INFO] [stderr]     Checking rand v0.4.6
[INFO] [stderr]     Checking crossbeam-epoch v0.5.2
[INFO] [stderr]     Checking wayland-commons v0.20.12
[INFO] [stderr]     Checking lock_api v0.1.5
[INFO] [stderr]    Compiling wayland-client v0.20.12
[INFO] [stderr]    Compiling wayland-protocols v0.20.12
[INFO] [stderr]     Checking crossbeam-deque v0.5.2
[INFO] [stderr]     Checking failure v0.1.8
[INFO] [stderr]    Compiling gl v0.10.0
[INFO] [stderr]    Compiling glutin v0.18.0
[INFO] [stderr]     Checking num-traits v0.1.43
[INFO] [stderr]     Checking smithay-client-toolkit v0.3.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]     Checking smallvec v0.6.14
[INFO] [stderr]     Checking uuid v0.7.4
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking inlinable_string v0.1.15
[INFO] [stderr]     Checking parking_lot v0.6.4
[INFO] [stderr]     Checking winit v0.17.2
[INFO] [stderr]     Checking crayon v0.7.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]   --> src/utils/object_pool.rs:80:41
[INFO] [stdout]    |
[INFO] [stdout] 80 |                 let mut v = ::std::mem::uninitialized();
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/utils/object_pool.rs:103:55
[INFO] [stdout]     |
[INFO] [stdout] 103 |                 std::mem::swap(&mut v, &mut std::mem::uninitialized());
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/video/backends/gl/capabilities.rs:236:32
[INFO] [stdout]     |
[INFO] [stdout] 236 |             let mut val = mem::uninitialized();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/video/backends/gl/capabilities.rs:296:32
[INFO] [stdout]     |
[INFO] [stdout] 296 |             let mut val = mem::uninitialized();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/video/backends/gl/capabilities.rs:321:32
[INFO] [stdout]     |
[INFO] [stdout] 321 |             let mut val = mem::uninitialized();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_USIZE_INIT`: the `new` function is now preferred
[INFO] [stdout]  --> src/sched/scheduler.rs:2:48
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::sync::atomic::{AtomicUsize, Ordering, ATOMIC_USIZE_INIT};
[INFO] [stdout]   |                                                ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_USIZE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/sched/scheduler.rs:353:43
[INFO] [stdout]     |
[INFO] [stdout] 353 |             static COUNTER: AtomicUsize = ATOMIC_USIZE_INIT;
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 353 -             static COUNTER: AtomicUsize = ATOMIC_USIZE_INIT;
[INFO] [stdout] 353 +             static COUNTER: AtomicUsize = AtomicUsize::new(0);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/application/ins.rs:19:30
[INFO] [stdout]    |
[INFO] [stdout] 19 |     ins: HashMap<String, Arc<Inspectable>>,
[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)]` (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] 19 |     ins: HashMap<String, Arc<dyn Inspectable>>,
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/application/lifecycle.rs:30:48
[INFO] [stdout]    |
[INFO] [stdout] 30 |     last_frame_lifecycles: Mutex<Vec<Arc<Mutex<LifecycleListener>>>>,
[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] 30 |     last_frame_lifecycles: Mutex<Vec<Arc<Mutex<dyn LifecycleListener>>>>,
[INFO] [stdout]    |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/application/lifecycle.rs:31:69
[INFO] [stdout]    |
[INFO] [stdout] 31 |     lifecycles: Mutex<ObjectPool<LifecycleListenerHandle, Arc<Mutex<LifecycleListener>>>>,
[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] 31 |     lifecycles: Mutex<ObjectPool<LifecycleListenerHandle, Arc<Mutex<dyn LifecycleListener>>>>,
[INFO] [stdout]    |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/res/vfs/mod.rs:20:38
[INFO] [stdout]    |
[INFO] [stdout] 20 |     schemas: FastHashMap<String, Arc<VFS>>,
[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] 20 |     schemas: FastHashMap<String, Arc<dyn VFS>>,
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/sched/scope.rs:16:29
[INFO] [stdout]    |
[INFO] [stdout] 16 |     marker: PhantomData<Box<FnOnce(&Scope<'s>) + Send + Sync + 's>>,
[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] 16 |     marker: PhantomData<Box<dyn FnOnce(&Scope<'s>) + Send + Sync + 's>>,
[INFO] [stdout]    |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/sched/scope.rs:19:26
[INFO] [stdout]    |
[INFO] [stdout] 19 |     panic: AtomicPtr<Box<Any + Send + 'static>>,
[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] 19 |     panic: AtomicPtr<Box<dyn Any + Send + 'static>>,
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/sched/job.rs:11:15
[INFO] [stdout]    |
[INFO] [stdout] 11 |     Panic(Box<Any + Send>),
[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] 11 |     Panic(Box<dyn Any + Send>),
[INFO] [stdout]    |               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/sched/system.rs:14:25
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub type PanicHandler = Fn(Box<::std::any::Any + Send>) + Send + Sync;
[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] 14 | pub type PanicHandler = dyn Fn(Box<::std::any::Any + Send>) + Send + Sync;
[INFO] [stdout]    |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/sched/system.rs:14:32
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub type PanicHandler = Fn(Box<::std::any::Any + Send>) + Send + Sync;
[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] 14 | pub type PanicHandler = Fn(Box<dyn (::std::any::Any + Send)>) + Send + Sync;
[INFO] [stdout]    |                                +++++                      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]   --> src/utils/object_pool.rs:80:41
[INFO] [stdout]    |
[INFO] [stdout] 80 |                 let mut v = ::std::mem::uninitialized();
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/utils/object_pool.rs:103:55
[INFO] [stdout]     |
[INFO] [stdout] 103 |                 std::mem::swap(&mut v, &mut std::mem::uninitialized());
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/video/backends/gl/capabilities.rs:236:32
[INFO] [stdout]     |
[INFO] [stdout] 236 |             let mut val = mem::uninitialized();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/video/backends/gl/capabilities.rs:296:32
[INFO] [stdout]     |
[INFO] [stdout] 296 |             let mut val = mem::uninitialized();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/video/backends/gl/capabilities.rs:321:32
[INFO] [stdout]     |
[INFO] [stdout] 321 |             let mut val = mem::uninitialized();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_USIZE_INIT`: the `new` function is now preferred
[INFO] [stdout]  --> src/sched/scheduler.rs:2:48
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::sync::atomic::{AtomicUsize, Ordering, ATOMIC_USIZE_INIT};
[INFO] [stdout]   |                                                ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_USIZE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/sched/scheduler.rs:353:43
[INFO] [stdout]     |
[INFO] [stdout] 353 |             static COUNTER: AtomicUsize = ATOMIC_USIZE_INIT;
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 353 -             static COUNTER: AtomicUsize = ATOMIC_USIZE_INIT;
[INFO] [stdout] 353 +             static COUNTER: AtomicUsize = AtomicUsize::new(0);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/application/ins.rs:19:30
[INFO] [stdout]    |
[INFO] [stdout] 19 |     ins: HashMap<String, Arc<Inspectable>>,
[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)]` (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] 19 |     ins: HashMap<String, Arc<dyn Inspectable>>,
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/application/lifecycle.rs:30:48
[INFO] [stdout]    |
[INFO] [stdout] 30 |     last_frame_lifecycles: Mutex<Vec<Arc<Mutex<LifecycleListener>>>>,
[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] 30 |     last_frame_lifecycles: Mutex<Vec<Arc<Mutex<dyn LifecycleListener>>>>,
[INFO] [stdout]    |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/application/lifecycle.rs:31:69
[INFO] [stdout]    |
[INFO] [stdout] 31 |     lifecycles: Mutex<ObjectPool<LifecycleListenerHandle, Arc<Mutex<LifecycleListener>>>>,
[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] 31 |     lifecycles: Mutex<ObjectPool<LifecycleListenerHandle, Arc<Mutex<dyn LifecycleListener>>>>,
[INFO] [stdout]    |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/res/vfs/mod.rs:20:38
[INFO] [stdout]    |
[INFO] [stdout] 20 |     schemas: FastHashMap<String, Arc<VFS>>,
[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] 20 |     schemas: FastHashMap<String, Arc<dyn VFS>>,
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/sched/scope.rs:16:29
[INFO] [stdout]    |
[INFO] [stdout] 16 |     marker: PhantomData<Box<FnOnce(&Scope<'s>) + Send + Sync + 's>>,
[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] 16 |     marker: PhantomData<Box<dyn FnOnce(&Scope<'s>) + Send + Sync + 's>>,
[INFO] [stdout]    |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/sched/scope.rs:19:26
[INFO] [stdout]    |
[INFO] [stdout] 19 |     panic: AtomicPtr<Box<Any + Send + 'static>>,
[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] 19 |     panic: AtomicPtr<Box<dyn Any + Send + 'static>>,
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/sched/job.rs:11:15
[INFO] [stdout]    |
[INFO] [stdout] 11 |     Panic(Box<Any + Send>),
[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] 11 |     Panic(Box<dyn Any + Send>),
[INFO] [stdout]    |               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/sched/system.rs:14:25
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub type PanicHandler = Fn(Box<::std::any::Any + Send>) + Send + Sync;
[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] 14 | pub type PanicHandler = dyn Fn(Box<::std::any::Any + Send>) + Send + Sync;
[INFO] [stdout]    |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/sched/system.rs:14:32
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub type PanicHandler = Fn(Box<::std::any::Any + Send>) + Send + Sync;
[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] 14 | pub type PanicHandler = Fn(Box<dyn (::std::any::Any + Send)>) + Send + Sync;
[INFO] [stdout]    |                                +++++                      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/res/vfs/mod.rs:36:68
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn locate<T1: AsRef<str>>(&self, schema: T1) -> Result<Arc<VFS>, failure::Error> {
[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] 36 |     pub fn locate<T1: AsRef<str>>(&self, schema: T1) -> Result<Arc<dyn VFS>, failure::Error> {
[INFO] [stdout]    |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/res/vfs/mod.rs:36:68
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn locate<T1: AsRef<str>>(&self, schema: T1) -> Result<Arc<VFS>, failure::Error> {
[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] 36 |     pub fn locate<T1: AsRef<str>>(&self, schema: T1) -> Result<Arc<dyn VFS>, failure::Error> {
[INFO] [stdout]    |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/video/backends/mod.rs:105:28
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn new() -> Result<Box<Visitor>> {
[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] 105 | pub fn new() -> Result<Box<dyn Visitor>> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/video/backends/mod.rs:119:30
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub fn new_headless() -> Box<Visitor> {
[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] 119 | pub fn new_headless() -> Box<dyn Visitor> {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/sched/unwind.rs:19:38
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn resume_unwinding(payload: Box<Any + Send>) -> ! {
[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] 19 | pub fn resume_unwinding(payload: Box<dyn Any + Send>) -> ! {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/video/backends/mod.rs:105:28
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn new() -> Result<Box<Visitor>> {
[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] 105 | pub fn new() -> Result<Box<dyn Visitor>> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/video/backends/mod.rs:119:30
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub fn new_headless() -> Box<Visitor> {
[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] 119 | pub fn new_headless() -> Box<dyn Visitor> {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/window/backends/mod.rs:21:30
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn new_headless() -> Box<Visitor> {
[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] 21 | pub fn new_headless() -> Box<dyn Visitor> {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/window/backends/glutin/mod.rs:9:48
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn new(params: WindowParams) -> Result<Box<Visitor>> {
[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] 9 | pub fn new(params: WindowParams) -> Result<Box<dyn Visitor>> {
[INFO] [stdout]   |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/video/backends/frame.rs:64:23
[INFO] [stdout]    |
[INFO] [stdout] 64 |         visitor: &mut Visitor,
[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] 64 |         visitor: &mut dyn Visitor,
[INFO] [stdout]    |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/sched/unwind.rs:19:38
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn resume_unwinding(payload: Box<Any + Send>) -> ! {
[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] 19 | pub fn resume_unwinding(payload: Box<dyn Any + Send>) -> ! {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/window/backends/mod.rs:21:30
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn new_headless() -> Box<Visitor> {
[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] 21 | pub fn new_headless() -> Box<dyn Visitor> {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/window/backends/glutin/mod.rs:9:48
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn new(params: WindowParams) -> Result<Box<Visitor>> {
[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] 9 | pub fn new(params: WindowParams) -> Result<Box<dyn Visitor>> {
[INFO] [stdout]   |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/sched/scheduler.rs:150:41
[INFO] [stdout]     |
[INFO] [stdout] 150 |     pub fn handle_panic(&self, err: Box<::std::any::Any + Send>) {
[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] 150 |     pub fn handle_panic(&self, err: Box<dyn (::std::any::Any + Send)>) {
[INFO] [stdout]     |                                         +++++                      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/video/backends/frame.rs:64:23
[INFO] [stdout]    |
[INFO] [stdout] 64 |         visitor: &mut Visitor,
[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] 64 |         visitor: &mut dyn Visitor,
[INFO] [stdout]    |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/sched/scheduler.rs:150:41
[INFO] [stdout]     |
[INFO] [stdout] 150 |     pub fn handle_panic(&self, err: Box<::std::any::Any + Send>) {
[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] 150 |     pub fn handle_panic(&self, err: Box<dyn (::std::any::Any + Send)>) {
[INFO] [stdout]     |                                         +++++                      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/sched/scope.rs:95:32
[INFO] [stdout]    |
[INFO] [stdout] 95 |             let value: Box<Box<Any + Send + 'static>> = mem::transmute(panic);
[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] 95 |             let value: Box<Box<dyn Any + Send + 'static>> = mem::transmute(panic);
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/sched/scope.rs:95:32
[INFO] [stdout]    |
[INFO] [stdout] 95 |             let value: Box<Box<Any + Send + 'static>> = mem::transmute(panic);
[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] 95 |             let value: Box<Box<dyn Any + Send + 'static>> = mem::transmute(panic);
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `handle` is never read
[INFO] [stdout]   --> src/video/backends/gl/visitor.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | struct GLSurfaceData {
[INFO] [stdout]    |        ------------- field in this struct
[INFO] [stdout] 20 |     handle: SurfaceHandle,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GLSurfaceData` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `handle` is never read
[INFO] [stdout]   --> src/video/backends/gl/visitor.rs:83:5
[INFO] [stdout]    |
[INFO] [stdout] 82 | struct GLTextureData {
[INFO] [stdout]    |        ------------- field in this struct
[INFO] [stdout] 83 |     handle: TextureHandle,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GLTextureData` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `handle` is never read
[INFO] [stdout]   --> src/video/backends/gl/visitor.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 90 | struct GLRenderTextureData {
[INFO] [stdout]    |        ------------------- field in this struct
[INFO] [stdout] 91 |     handle: RenderTextureHandle,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GLRenderTextureData` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/utils/double_buf.rs:27:18
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn write(&self) -> RwLockWriteGuard<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] 27 |     pub fn write(&self) -> RwLockWriteGuard<'_, T> {
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/utils/double_buf.rs:32:27
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn write_back_buf(&self) -> RwLockWriteGuard<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] 32 |     pub fn write_back_buf(&self) -> RwLockWriteGuard<'_, T> {
[INFO] [stdout]    |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/utils/double_buf.rs:37:26
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn read_back_buf(&self) -> RwLockReadGuard<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] 37 |     pub fn read_back_buf(&self) -> RwLockReadGuard<'_, T> {
[INFO] [stdout]    |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/utils/handle_pool.rs:135:17
[INFO] [stdout]     |
[INFO] [stdout] 135 |     pub fn iter(&self) -> Iter<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] 135 |     pub fn iter(&self) -> Iter<'_, T> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `&mut T` does not permit being left uninitialized
[INFO] [stdout]    --> src/utils/object_pool.rs:103:45
[INFO] [stdout]     |
[INFO] [stdout] 103 |                 std::mem::swap(&mut v, &mut std::mem::uninitialized());
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             this code causes undefined behavior when executed
[INFO] [stdout]     |                                             help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout]     = note: references must be non-null
[INFO] [stdout]     = note: `#[warn(invalid_value)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/utils/object_pool.rs:123:70
[INFO] [stdout]     |
[INFO] [stdout] 123 |     pub fn iter<'a>(&'a self) -> impl DoubleEndedIterator<Item = (H, &T)> + 'a {
[INFO] [stdout]     |                      --                                              ^^     -- the same lifetime is named here
[INFO] [stdout]     |                      |                                               |
[INFO] [stdout]     |                      the lifetime is named here                      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] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 123 |     pub fn iter<'a>(&'a self) -> impl DoubleEndedIterator<Item = (H, &'a T)> + 'a {
[INFO] [stdout]     |                                                                       ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/utils/object_pool.rs:147:68
[INFO] [stdout]     |
[INFO] [stdout] 147 |     pub fn values<'a>(&'a self) -> impl DoubleEndedIterator<Item = &T> + 'a {
[INFO] [stdout]     |                        --                                          ^^    -- the same lifetime is named here
[INFO] [stdout]     |                        |                                           |
[INFO] [stdout]     |                        the lifetime is named here                  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] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 147 |     pub fn values<'a>(&'a self) -> impl DoubleEndedIterator<Item = &'a T> + 'a {
[INFO] [stdout]     |                                                                     ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/utils/object_pool.rs:155:76
[INFO] [stdout]     |
[INFO] [stdout] 155 |     pub fn values_mut<'a>(&'a mut self) -> impl DoubleEndedIterator<Item = &mut T> + 'a {
[INFO] [stdout]     |                            --                                              ^^^^^^    -- the same lifetime is named here
[INFO] [stdout]     |                            |                                               |
[INFO] [stdout]     |                            the lifetime is named here                      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] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 155 |     pub fn values_mut<'a>(&'a mut self) -> impl DoubleEndedIterator<Item = &'a mut T> + 'a {
[INFO] [stdout]     |                                                                             ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/video/assets/shader.rs:129:17
[INFO] [stdout]     |
[INFO] [stdout] 129 |     pub fn iter(&self) -> AttributeLayoutIter {
[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] 129 |     pub fn iter(&self) -> AttributeLayoutIter<'_> {
[INFO] [stdout]     |                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/video/assets/shader.rs:463:17
[INFO] [stdout]     |
[INFO] [stdout] 463 |     pub fn iter(&self) -> Values<HashValue<str>, (String, UniformVariableType)> {
[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] 463 |     pub fn iter(&self) -> Values<'_, HashValue<str>, (String, UniformVariableType)> {
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/video/errors.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[derive(Debug, Fail)]
[INFO] [stdout]   |                 ^---
[INFO] [stdout]   |                 |
[INFO] [stdout]   |                 `Fail` is not local
[INFO] [stdout]   |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_Error`
[INFO] [stdout] 2 | pub enum Error {
[INFO] [stdout]   |          ----- `Error` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]   = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/video/errors.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[derive(Debug, Fail)]
[INFO] [stdout]   |                 ^---
[INFO] [stdout]   |                 |
[INFO] [stdout]   |                 `Display` is not local
[INFO] [stdout]   |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_Error`
[INFO] [stdout] 2 | pub enum Error {
[INFO] [stdout]   |          ----- `Error` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `i32` does not permit being left uninitialized
[INFO] [stdout]    --> src/video/backends/gl/capabilities.rs:236:27
[INFO] [stdout]     |
[INFO] [stdout] 236 |             let mut val = mem::uninitialized();
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this code causes undefined behavior when executed
[INFO] [stdout]     |                           help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout]     = note: integers must be initialized
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `i32` does not permit being left uninitialized
[INFO] [stdout]    --> src/video/backends/gl/capabilities.rs:296:27
[INFO] [stdout]     |
[INFO] [stdout] 296 |             let mut val = mem::uninitialized();
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this code causes undefined behavior when executed
[INFO] [stdout]     |                           help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout]     = note: integers must be initialized
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `i32` does not permit being left uninitialized
[INFO] [stdout]    --> src/video/backends/gl/capabilities.rs:321:27
[INFO] [stdout]     |
[INFO] [stdout] 321 |             let mut val = mem::uninitialized();
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this code causes undefined behavior when executed
[INFO] [stdout]     |                           help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout]     = note: integers must be initialized
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/res/manifest.rs:112:25
[INFO] [stdout]     |
[INFO] [stdout] 112 |     pub fn dependencies(&self, uuid: Uuid) -> Option<Dependencies> {
[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] 112 |     pub fn dependencies(&self, uuid: Uuid) -> Option<Dependencies<'_>> {
[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/sched/job.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | #[derive(Copy, Clone, Debug, PartialEq, Eq)]
[INFO] [stdout]    |                              --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 48 |     execute_fn: unsafe fn(*const ()),
[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: field `handle` is never read
[INFO] [stdout]   --> src/video/backends/gl/visitor.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | struct GLSurfaceData {
[INFO] [stdout]    |        ------------- field in this struct
[INFO] [stdout] 20 |     handle: SurfaceHandle,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GLSurfaceData` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `handle` is never read
[INFO] [stdout]   --> src/video/backends/gl/visitor.rs:83:5
[INFO] [stdout]    |
[INFO] [stdout] 82 | struct GLTextureData {
[INFO] [stdout]    |        ------------- field in this struct
[INFO] [stdout] 83 |     handle: TextureHandle,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GLTextureData` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `handle` is never read
[INFO] [stdout]   --> src/video/backends/gl/visitor.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 90 | struct GLRenderTextureData {
[INFO] [stdout]    |        ------------------- field in this struct
[INFO] [stdout] 91 |     handle: RenderTextureHandle,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GLRenderTextureData` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/utils/double_buf.rs:27:18
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn write(&self) -> RwLockWriteGuard<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] 27 |     pub fn write(&self) -> RwLockWriteGuard<'_, T> {
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/utils/double_buf.rs:32:27
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn write_back_buf(&self) -> RwLockWriteGuard<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] 32 |     pub fn write_back_buf(&self) -> RwLockWriteGuard<'_, T> {
[INFO] [stdout]    |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/utils/double_buf.rs:37:26
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn read_back_buf(&self) -> RwLockReadGuard<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] 37 |     pub fn read_back_buf(&self) -> RwLockReadGuard<'_, T> {
[INFO] [stdout]    |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/utils/handle_pool.rs:135:17
[INFO] [stdout]     |
[INFO] [stdout] 135 |     pub fn iter(&self) -> Iter<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] 135 |     pub fn iter(&self) -> Iter<'_, T> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `&mut T` does not permit being left uninitialized
[INFO] [stdout]    --> src/utils/object_pool.rs:103:45
[INFO] [stdout]     |
[INFO] [stdout] 103 |                 std::mem::swap(&mut v, &mut std::mem::uninitialized());
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             this code causes undefined behavior when executed
[INFO] [stdout]     |                                             help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout]     = note: references must be non-null
[INFO] [stdout]     = note: `#[warn(invalid_value)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/utils/object_pool.rs:123:70
[INFO] [stdout]     |
[INFO] [stdout] 123 |     pub fn iter<'a>(&'a self) -> impl DoubleEndedIterator<Item = (H, &T)> + 'a {
[INFO] [stdout]     |                      --                                              ^^     -- the same lifetime is named here
[INFO] [stdout]     |                      |                                               |
[INFO] [stdout]     |                      the lifetime is named here                      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] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 123 |     pub fn iter<'a>(&'a self) -> impl DoubleEndedIterator<Item = (H, &'a T)> + 'a {
[INFO] [stdout]     |                                                                       ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/utils/object_pool.rs:147:68
[INFO] [stdout]     |
[INFO] [stdout] 147 |     pub fn values<'a>(&'a self) -> impl DoubleEndedIterator<Item = &T> + 'a {
[INFO] [stdout]     |                        --                                          ^^    -- the same lifetime is named here
[INFO] [stdout]     |                        |                                           |
[INFO] [stdout]     |                        the lifetime is named here                  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] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 147 |     pub fn values<'a>(&'a self) -> impl DoubleEndedIterator<Item = &'a T> + 'a {
[INFO] [stdout]     |                                                                     ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/utils/object_pool.rs:155:76
[INFO] [stdout]     |
[INFO] [stdout] 155 |     pub fn values_mut<'a>(&'a mut self) -> impl DoubleEndedIterator<Item = &mut T> + 'a {
[INFO] [stdout]     |                            --                                              ^^^^^^    -- the same lifetime is named here
[INFO] [stdout]     |                            |                                               |
[INFO] [stdout]     |                            the lifetime is named here                      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] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 155 |     pub fn values_mut<'a>(&'a mut self) -> impl DoubleEndedIterator<Item = &'a mut T> + 'a {
[INFO] [stdout]     |                                                                             ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/video/assets/shader.rs:129:17
[INFO] [stdout]     |
[INFO] [stdout] 129 |     pub fn iter(&self) -> AttributeLayoutIter {
[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] 129 |     pub fn iter(&self) -> AttributeLayoutIter<'_> {
[INFO] [stdout]     |                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/video/assets/shader.rs:463:17
[INFO] [stdout]     |
[INFO] [stdout] 463 |     pub fn iter(&self) -> Values<HashValue<str>, (String, UniformVariableType)> {
[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] 463 |     pub fn iter(&self) -> Values<'_, HashValue<str>, (String, UniformVariableType)> {
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/video/errors.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[derive(Debug, Fail)]
[INFO] [stdout]   |                 ^---
[INFO] [stdout]   |                 |
[INFO] [stdout]   |                 `Fail` is not local
[INFO] [stdout]   |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_Error`
[INFO] [stdout] 2 | pub enum Error {
[INFO] [stdout]   |          ----- `Error` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]   = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/video/errors.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[derive(Debug, Fail)]
[INFO] [stdout]   |                 ^---
[INFO] [stdout]   |                 |
[INFO] [stdout]   |                 `Display` is not local
[INFO] [stdout]   |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_Error`
[INFO] [stdout] 2 | pub enum Error {
[INFO] [stdout]   |          ----- `Error` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `i32` does not permit being left uninitialized
[INFO] [stdout]    --> src/video/backends/gl/capabilities.rs:236:27
[INFO] [stdout]     |
[INFO] [stdout] 236 |             let mut val = mem::uninitialized();
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this code causes undefined behavior when executed
[INFO] [stdout]     |                           help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout]     = note: integers must be initialized
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `i32` does not permit being left uninitialized
[INFO] [stdout]    --> src/video/backends/gl/capabilities.rs:296:27
[INFO] [stdout]     |
[INFO] [stdout] 296 |             let mut val = mem::uninitialized();
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this code causes undefined behavior when executed
[INFO] [stdout]     |                           help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout]     = note: integers must be initialized
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `i32` does not permit being left uninitialized
[INFO] [stdout]    --> src/video/backends/gl/capabilities.rs:321:27
[INFO] [stdout]     |
[INFO] [stdout] 321 |             let mut val = mem::uninitialized();
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this code causes undefined behavior when executed
[INFO] [stdout]     |                           help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout]     = note: integers must be initialized
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/res/manifest.rs:112:25
[INFO] [stdout]     |
[INFO] [stdout] 112 |     pub fn dependencies(&self, uuid: Uuid) -> Option<Dependencies> {
[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] 112 |     pub fn dependencies(&self, uuid: Uuid) -> Option<Dependencies<'_>> {
[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/sched/job.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | #[derive(Copy, Clone, Debug, PartialEq, Eq)]
[INFO] [stdout]    |                              --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 48 |     execute_fn: unsafe fn(*const ()),
[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] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 24.98s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: glutin v0.18.0, winit v0.17.2
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 9`
[INFO] running `Command { std: "docker" "inspect" "24d9ab1ffd8a7ba4729560387632bf1ee186b6c069f50377954f4d75ba807f6c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "24d9ab1ffd8a7ba4729560387632bf1ee186b6c069f50377954f4d75ba807f6c", kill_on_drop: false }`
[INFO] [stdout] 24d9ab1ffd8a7ba4729560387632bf1ee186b6c069f50377954f4d75ba807f6c
