[INFO] cloning repository https://github.com/dimitriye98/space3
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dimitriye98/space3" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdimitriye98%2Fspace3", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdimitriye98%2Fspace3'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] f3cad7cf774dcc6fdd5d342dff7fe517ecf4bbb6
[INFO] checking dimitriye98/space3/f3cad7cf774dcc6fdd5d342dff7fe517ecf4bbb6 against master#f5e2df741b4a9820a7579f0c8eccc951706a8782 for pr-147995
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdimitriye98%2Fspace3" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/dimitriye98/space3
[INFO] finished tweaking git repo https://github.com/dimitriye98/space3
[INFO] tweaked toml for git repo https://github.com/dimitriye98/space3 written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/dimitriye98/space3 on toolchain f5e2df741b4a9820a7579f0c8eccc951706a8782
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f5e2df741b4a9820a7579f0c8eccc951706a8782" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/dimitriye98/space3 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f5e2df741b4a9820a7579f0c8eccc951706a8782" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded noise v0.4.1
[INFO] [stderr]   Downloaded gl_generator v0.11.0
[INFO] [stderr]   Downloaded cocoa v0.15.0
[INFO] [stderr]   Downloaded tempfile v3.0.8
[INFO] [stderr]   Downloaded backtrace v0.3.30
[INFO] [stderr]   Downloaded glutin v0.17.0
[INFO] [stderr]   Downloaded alga v0.9.1
[INFO] [stderr]   Downloaded libm v0.1.3
[INFO] [stderr]   Downloaded image v0.21.2
[INFO] [stderr]   Downloaded winit v0.16.2
[INFO] [stderr]   Downloaded rayon v1.0.3
[INFO] [stderr]   Downloaded smithay-client-toolkit v0.2.6
[INFO] [stderr]   Downloaded nalgebra v0.18.0
[INFO] [stderr]   Downloaded gleam v0.6.17
[INFO] [stderr]   Downloaded libloading v0.5.1
[INFO] [stderr]   Downloaded glium v0.22.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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" "+f5e2df741b4a9820a7579f0c8eccc951706a8782" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 9d583d2669145ebb462f33e609f1ecb1400e56405d08487c37becff1d8ef19ed
[INFO] running `Command { std: "docker" "start" "-a" "9d583d2669145ebb462f33e609f1ecb1400e56405d08487c37becff1d8ef19ed", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9d583d2669145ebb462f33e609f1ecb1400e56405d08487c37becff1d8ef19ed", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9d583d2669145ebb462f33e609f1ecb1400e56405d08487c37becff1d8ef19ed", kill_on_drop: false }`
[INFO] [stdout] 9d583d2669145ebb462f33e609f1ecb1400e56405d08487c37becff1d8ef19ed
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+f5e2df741b4a9820a7579f0c8eccc951706a8782" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] bc3d13707cfca1bfe7fa0b4a64598b4392871a57d83d5bdb8d0714e3fe90f502
[INFO] running `Command { std: "docker" "start" "-a" "bc3d13707cfca1bfe7fa0b4a64598b4392871a57d83d5bdb8d0714e3fe90f502", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]    Compiling autocfg v0.1.4
[INFO] [stderr]    Compiling libc v0.2.58
[INFO] [stderr]    Compiling bitflags v1.1.0
[INFO] [stderr]     Checking rand_core v0.4.0
[INFO] [stderr]     Checking lazy_static v1.3.0
[INFO] [stderr]    Compiling cc v1.0.37
[INFO] [stderr]     Checking cfg-if v0.1.9
[INFO] [stderr]    Compiling byteorder v1.3.1
[INFO] [stderr]    Compiling khronos_api v2.2.0
[INFO] [stderr]     Checking downcast-rs v1.0.4
[INFO] [stderr]    Compiling proc-macro2 v0.4.30
[INFO] [stderr]    Compiling parking_lot_core v0.3.1
[INFO] [stderr]    Compiling nix v0.11.0
[INFO] [stderr]    Compiling x11-dl v2.18.3
[INFO] [stderr]     Checking either v1.5.2
[INFO] [stderr]    Compiling log v0.4.6
[INFO] [stderr]     Checking crossbeam-utils v0.2.2
[INFO] [stderr]     Checking smallvec v0.6.9
[INFO] [stderr]     Checking remove_dir_all v0.5.1
[INFO] [stderr]    Compiling syn v0.15.34
[INFO] [stderr]    Compiling num-complex v0.2.1
[INFO] [stderr]    Compiling num-derive v0.2.5
[INFO] [stderr]    Compiling libm v0.1.3
[INFO] [stderr]    Compiling rayon v1.0.3
[INFO] [stderr]     Checking rand_core v0.3.1
[INFO] [stderr]     Checking rand_jitter v0.1.4
[INFO] [stderr]     Checking rand_xorshift v0.1.1
[INFO] [stderr]     Checking rand_isaac v0.1.1
[INFO] [stderr]    Compiling num-traits v0.2.8
[INFO] [stderr]    Compiling rand_chacha v0.1.1
[INFO] [stderr]    Compiling rand_pcg v0.1.2
[INFO] [stderr]    Compiling rand v0.6.5
[INFO] [stderr]     Checking rand_hc v0.1.0
[INFO] [stderr]    Compiling num-integer v0.1.41
[INFO] [stderr]    Compiling xml-rs v0.7.0
[INFO] [stderr]     Checking crossbeam-epoch v0.3.1
[INFO] [stderr]    Compiling num-iter v0.1.39
[INFO] [stderr]     Checking rand_os v0.1.3
[INFO] [stderr]     Checking rand v0.5.6
[INFO] [stderr]     Checking memmap v0.6.2
[INFO] [stderr]     Checking num_cpus v1.10.0
[INFO] [stderr]     Checking shared_library v0.1.9
[INFO] [stderr]    Compiling quote v0.6.12
[INFO] [stderr]    Compiling backtrace v0.3.30
[INFO] [stderr]    Compiling matrixmultiply v0.1.15
[INFO] [stderr]    Compiling num-rational v0.2.1
[INFO] [stderr]     Checking osmesa-sys v0.1.2
[INFO] [stderr]    Compiling libloading v0.5.1
[INFO] [stderr]    Compiling backtrace-sys v0.1.28
[INFO] [stderr]     Checking deflate v0.7.19
[INFO] [stderr]     Checking rand v0.4.6
[INFO] [stderr]     Checking inflate v0.4.5
[INFO] [stderr]    Compiling wayland-scanner v0.20.12
[INFO] [stderr]    Compiling gl_generator v0.9.0
[INFO] [stderr]     Checking crossbeam-deque v0.2.0
[INFO] [stderr]     Checking rayon-core v1.4.1
[INFO] [stderr]     Checking dlib v0.4.1
[INFO] [stderr]     Checking wayland-sys v0.20.12
[INFO] [stderr]     Checking rustc-demangle v0.1.15
[INFO] [stderr]    Compiling ndarray v0.12.1
[INFO] [stderr]     Checking gif v0.10.2
[INFO] [stderr]     Checking rand v0.3.23
[INFO] [stderr]     Checking wayland-commons v0.20.12
[INFO] [stderr]     Checking approx v0.3.2
[INFO] [stderr]     Checking num-traits v0.1.43
[INFO] [stderr]     Checking generic-array v0.12.0
[INFO] [stderr]    Compiling wayland-client v0.20.12
[INFO] [stderr]    Compiling wayland-protocols v0.20.12
[INFO] [stderr]     Checking matrixmultiply v0.2.2
[INFO] [stderr]     Checking itertools v0.7.11
[INFO] [stderr]     Checking noise v0.4.1
[INFO] [stderr]     Checking time v0.1.42
[INFO] [stderr]    Compiling glutin v0.17.0
[INFO] [stderr]     Checking tempfile v3.0.8
[INFO] [stderr]    Compiling glium v0.22.0
[INFO] [stderr]     Checking alga v0.9.1
[INFO] [stderr]     Checking png v0.14.1
[INFO] [stderr]     Checking parking_lot v0.6.4
[INFO] [stderr]     Checking nalgebra v0.18.0
[INFO] [stderr]     Checking jpeg-decoder v0.1.15
[INFO] [stderr]     Checking tiff v0.2.2
[INFO] [stderr]     Checking smithay-client-toolkit v0.2.6
[INFO] [stderr]     Checking image v0.21.2
[INFO] [stderr]     Checking winit v0.16.2
[INFO] [stderr]     Checking space3 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]  --> src/main.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[macro_use]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]  --> src/block.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ops::Deref;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand`
[INFO] [stdout]   --> src/block.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use rand;
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `noise`
[INFO] [stdout]   --> src/block.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use noise;
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::distributions::Standard`
[INFO] [stdout]   --> src/block.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use rand::distributions::Standard;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/block.rs:45:18
[INFO] [stdout]    |
[INFO] [stdout] 45 |                         density += (noise);
[INFO] [stdout]    |                                    ^     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 45 -                         density += (noise);
[INFO] [stdout] 45 +                         density += noise ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Matrix3`
[INFO] [stdout]    --> src/block.rs:270:10
[INFO] [stdout]     |
[INFO] [stdout] 270 | use na::{Matrix3, Matrix4};
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]  --> src/engine.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::ops::Deref;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> src/engine.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IndexBuffer` and `VertexBuffer`
[INFO] [stdout]  --> src/engine.rs:8:47
[INFO] [stdout]   |
[INFO] [stdout] 8 | use glium::{Program, Display, Frame, Surface, VertexBuffer, IndexBuffer};
[INFO] [stdout]   |                                               ^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Window`
[INFO] [stdout]  --> src/engine.rs:9:21
[INFO] [stdout]   |
[INFO] [stdout] 9 | use glium::glutin::{Window, VirtualKeyCode};
[INFO] [stdout]   |                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `glium::uniforms::Uniforms`
[INFO] [stdout]   --> src/engine.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use glium::uniforms::Uniforms;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `glium::draw_parameters::PolygonMode`
[INFO] [stdout]   --> src/engine.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use glium::draw_parameters::PolygonMode;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Matrix3`
[INFO] [stdout]   --> src/engine.rs:18:27
[INFO] [stdout]    |
[INFO] [stdout] 18 | use na::{Point3, Vector3, Matrix3, Matrix4, Perspective3, Rotation3};
[INFO] [stdout]    |                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vertex`
[INFO] [stdout]   --> src/engine.rs:20:23
[INFO] [stdout]    |
[INFO] [stdout] 20 | use gl_util::{Camera, Vertex, SimpleCamera};
[INFO] [stdout]    |                       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CHUNK_SIZE` and `Chunk`
[INFO] [stdout]   --> src/engine.rs:21:30
[INFO] [stdout]    |
[INFO] [stdout] 21 | use block::{BlockRenderData, Chunk, CHUNK_SIZE, CuboidRegion};
[INFO] [stdout]    |                              ^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DrawService`
[INFO] [stdout]   --> src/main.rs:20:35
[INFO] [stdout]    |
[INFO] [stdout] 20 |     use engine::{Game, StatePlaying, DrawService};
[INFO] [stdout]    |                                      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated trait `na::Real`: This has been renamed `RealField`.
[INFO] [stdout]  --> src/gl_util.rs:9:21
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub trait Camera<N: Real> {
[INFO] [stdout]   |                     ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated trait `na::Real`: This has been renamed `RealField`.
[INFO] [stdout]   --> src/gl_util.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | use na::Real;
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated trait `na::Real`: This has been renamed `RealField`.
[INFO] [stdout]   --> src/gl_util.rs:21:10
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl <N: Real> Camera<N> for SimpleCamera<N> {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]   --> src/gl_util.rs:25:1
[INFO] [stdout]    |
[INFO] [stdout] 25 | implement_vertex!(Vertex, position, normal, color);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `implement_vertex` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/engine.rs:24:13
[INFO] [stdout]    |
[INFO] [stdout] 24 |     state: Box<GameState>,
[INFO] [stdout]    |                ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 24 |     state: Box<dyn GameState>,
[INFO] [stdout]    |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/engine.rs:191:18
[INFO] [stdout]     |
[INFO] [stdout] 191 |     ChangeState(Box<GameState>),
[INFO] [stdout]     |                     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 191 |     ChangeState(Box<dyn GameState>),
[INFO] [stdout]     |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/engine.rs:35:30
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn new(start_state: Box<GameState>, display: Display, ev_loop: EventsLoop, shaders: Program)
[INFO] [stdout]    |                                 ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn new(start_state: Box<dyn GameState>, display: Display, ev_loop: EventsLoop, shaders: Program)
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/engine.rs:50:38
[INFO] [stdout]    |
[INFO] [stdout] 50 |     fn swap_state(&mut self, state: Box<GameState>) -> Box<GameState> {
[INFO] [stdout]    |                                         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 50 |     fn swap_state(&mut self, state: Box<dyn GameState>) -> Box<GameState> {
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/engine.rs:50:57
[INFO] [stdout]    |
[INFO] [stdout] 50 |     fn swap_state(&mut self, state: Box<GameState>) -> Box<GameState> {
[INFO] [stdout]    |                                                            ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 50 |     fn swap_state(&mut self, state: Box<GameState>) -> Box<dyn GameState> {
[INFO] [stdout]    |                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]  --> src/main.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[macro_use]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]  --> src/block.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ops::Deref;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand`
[INFO] [stdout]   --> src/block.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use rand;
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `noise`
[INFO] [stdout]   --> src/block.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use noise;
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::distributions::Standard`
[INFO] [stdout]   --> src/block.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use rand::distributions::Standard;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/block.rs:45:18
[INFO] [stdout]    |
[INFO] [stdout] 45 |                         density += (noise);
[INFO] [stdout]    |                                    ^     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 45 -                         density += (noise);
[INFO] [stdout] 45 +                         density += noise ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Matrix3`
[INFO] [stdout]    --> src/block.rs:270:10
[INFO] [stdout]     |
[INFO] [stdout] 270 | use na::{Matrix3, Matrix4};
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]  --> src/engine.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::ops::Deref;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> src/engine.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IndexBuffer` and `VertexBuffer`
[INFO] [stdout]  --> src/engine.rs:8:47
[INFO] [stdout]   |
[INFO] [stdout] 8 | use glium::{Program, Display, Frame, Surface, VertexBuffer, IndexBuffer};
[INFO] [stdout]   |                                               ^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Window`
[INFO] [stdout]  --> src/engine.rs:9:21
[INFO] [stdout]   |
[INFO] [stdout] 9 | use glium::glutin::{Window, VirtualKeyCode};
[INFO] [stdout]   |                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `glium::uniforms::Uniforms`
[INFO] [stdout]   --> src/engine.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use glium::uniforms::Uniforms;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `glium::draw_parameters::PolygonMode`
[INFO] [stdout]   --> src/engine.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use glium::draw_parameters::PolygonMode;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Matrix3`
[INFO] [stdout]   --> src/engine.rs:18:27
[INFO] [stdout]    |
[INFO] [stdout] 18 | use na::{Point3, Vector3, Matrix3, Matrix4, Perspective3, Rotation3};
[INFO] [stdout]    |                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vertex`
[INFO] [stdout]   --> src/engine.rs:20:23
[INFO] [stdout]    |
[INFO] [stdout] 20 | use gl_util::{Camera, Vertex, SimpleCamera};
[INFO] [stdout]    |                       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CHUNK_SIZE` and `Chunk`
[INFO] [stdout]   --> src/engine.rs:21:30
[INFO] [stdout]    |
[INFO] [stdout] 21 | use block::{BlockRenderData, Chunk, CHUNK_SIZE, CuboidRegion};
[INFO] [stdout]    |                              ^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DrawService`
[INFO] [stdout]   --> src/main.rs:20:35
[INFO] [stdout]    |
[INFO] [stdout] 20 |     use engine::{Game, StatePlaying, DrawService};
[INFO] [stdout]    |                                      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated trait `na::Real`: This has been renamed `RealField`.
[INFO] [stdout]  --> src/gl_util.rs:9:21
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub trait Camera<N: Real> {
[INFO] [stdout]   |                     ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated trait `na::Real`: This has been renamed `RealField`.
[INFO] [stdout]   --> src/gl_util.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | use na::Real;
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated trait `na::Real`: This has been renamed `RealField`.
[INFO] [stdout]   --> src/gl_util.rs:21:10
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl <N: Real> Camera<N> for SimpleCamera<N> {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]   --> src/gl_util.rs:25:1
[INFO] [stdout]    |
[INFO] [stdout] 25 | implement_vertex!(Vertex, position, normal, color);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `implement_vertex` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/engine.rs:24:13
[INFO] [stdout]    |
[INFO] [stdout] 24 |     state: Box<GameState>,
[INFO] [stdout]    |                ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 24 |     state: Box<dyn GameState>,
[INFO] [stdout]    |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/engine.rs:191:18
[INFO] [stdout]     |
[INFO] [stdout] 191 |     ChangeState(Box<GameState>),
[INFO] [stdout]     |                     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 191 |     ChangeState(Box<dyn GameState>),
[INFO] [stdout]     |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/engine.rs:35:30
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn new(start_state: Box<GameState>, display: Display, ev_loop: EventsLoop, shaders: Program)
[INFO] [stdout]    |                                 ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn new(start_state: Box<dyn GameState>, display: Display, ev_loop: EventsLoop, shaders: Program)
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/engine.rs:50:38
[INFO] [stdout]    |
[INFO] [stdout] 50 |     fn swap_state(&mut self, state: Box<GameState>) -> Box<GameState> {
[INFO] [stdout]    |                                         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 50 |     fn swap_state(&mut self, state: Box<dyn GameState>) -> Box<GameState> {
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/engine.rs:50:57
[INFO] [stdout]    |
[INFO] [stdout] 50 |     fn swap_state(&mut self, state: Box<GameState>) -> Box<GameState> {
[INFO] [stdout]    |                                                            ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 50 |     fn swap_state(&mut self, state: Box<GameState>) -> Box<dyn GameState> {
[INFO] [stdout]    |                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Region` is never used
[INFO] [stdout]   --> src/block.rs:61:11
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub trait Region {
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_vec3` is never used
[INFO] [stdout]    --> src/block.rs:157:5
[INFO] [stdout]     |
[INFO] [stdout] 142 | impl NormalDirection {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 157 |     fn to_vec3(&self) -> Vector3<f32> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/block.rs:248:29
[INFO] [stdout]     |
[INFO] [stdout] 248 |     VertexBufferCreationFailed(VertexBufferCreationError),
[INFO] [stdout]     |     -------------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MeshCreationError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 248 -     VertexBufferCreationFailed(VertexBufferCreationError),
[INFO] [stdout] 248 +     VertexBufferCreationFailed(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/block.rs:249:28
[INFO] [stdout]     |
[INFO] [stdout] 249 |     IndexBufferCreationFailed(IndexBufferCreationError),
[INFO] [stdout]     |     ------------------------- ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MeshCreationError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 249 -     IndexBufferCreationFailed(IndexBufferCreationError),
[INFO] [stdout] 249 +     IndexBufferCreationFailed(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_perspective` is never used
[INFO] [stdout]    --> src/engine.rs:151:9
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl DrawService {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn update_perspective(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ChangeState` is never constructed
[INFO] [stdout]    --> src/engine.rs:191:2
[INFO] [stdout]     |
[INFO] [stdout] 188 | pub enum UpdateResult {
[INFO] [stdout]     |          ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 191 |     ChangeState(Box<GameState>),
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `world` is never read
[INFO] [stdout]    --> src/engine.rs:203:2
[INFO] [stdout]     |
[INFO] [stdout] 202 | pub struct StatePlaying {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] 203 |     world: World,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stdout]    --> src/block.rs:293:78
[INFO] [stdout]     |
[INFO] [stdout] 293 |         for up_dir in [ND::Up, ND::Down, ND::Left, ND::Right, ND::Front, ND::Back].into_iter() {
[INFO] [stdout]     |                                                                                    ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout]     = note: `#[warn(array_into_iter)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 293 -         for up_dir in [ND::Up, ND::Down, ND::Left, ND::Right, ND::Front, ND::Back].into_iter() {
[INFO] [stdout] 293 +         for up_dir in [ND::Up, ND::Down, ND::Left, ND::Right, ND::Front, ND::Back].iter() {
[INFO] [stdout]     |
[INFO] [stdout] help: or remove `.into_iter()` to iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 293 -         for up_dir in [ND::Up, ND::Down, ND::Left, ND::Right, ND::Front, ND::Back].into_iter() {
[INFO] [stdout] 293 +         for up_dir in [ND::Up, ND::Down, ND::Left, ND::Right, ND::Front, ND::Back] {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]   --> src/engine.rs:94:3
[INFO] [stdout]    |
[INFO] [stdout] 94 |         replace(&mut self.events, new_events);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 94 |         let _ = replace(&mut self.events, new_events);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/engine.rs:97:16
[INFO] [stdout]    |
[INFO] [stdout] 97 |     pub fn events(&self) -> Iter<Event> {
[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] 97 |     pub fn events(&self) -> Iter<'_, Event> {
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/engine.rs:106:3
[INFO] [stdout]     |
[INFO] [stdout] 106 |         self.display.gl_window().set_cursor_position(pos);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 106 |         let _ = self.display.gl_window().set_cursor_position(pos);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/engine.rs:119:3
[INFO] [stdout]     |
[INFO] [stdout] 119 |         self.frame.set_finish();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 119 |         let _ = self.frame.set_finish();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/engine.rs:157:3
[INFO] [stdout]     |
[INFO] [stdout] 157 |         self.frame.set_finish();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 157 |         let _ = self.frame.set_finish();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `input:` in this pattern is redundant
[INFO] [stdout]    --> src/engine.rs:260:7
[INFO] [stdout]     |
[INFO] [stdout] 260 |                         input: input,
[INFO] [stdout]     |                         ^^^^^^^^^^^^ help: use shorthand field pattern: `input`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_shorthand_field_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `state:` in this pattern is redundant
[INFO] [stdout]    --> src/engine.rs:267:7
[INFO] [stdout]     |
[INFO] [stdout] 267 |                         state: state,
[INFO] [stdout]     |                         ^^^^^^^^^^^^ help: use shorthand field pattern: `state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Region` is never used
[INFO] [stdout]   --> src/block.rs:61:11
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub trait Region {
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_vec3` is never used
[INFO] [stdout]    --> src/block.rs:157:5
[INFO] [stdout]     |
[INFO] [stdout] 142 | impl NormalDirection {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 157 |     fn to_vec3(&self) -> Vector3<f32> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/block.rs:248:29
[INFO] [stdout]     |
[INFO] [stdout] 248 |     VertexBufferCreationFailed(VertexBufferCreationError),
[INFO] [stdout]     |     -------------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MeshCreationError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 248 -     VertexBufferCreationFailed(VertexBufferCreationError),
[INFO] [stdout] 248 +     VertexBufferCreationFailed(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/block.rs:249:28
[INFO] [stdout]     |
[INFO] [stdout] 249 |     IndexBufferCreationFailed(IndexBufferCreationError),
[INFO] [stdout]     |     ------------------------- ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MeshCreationError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 249 -     IndexBufferCreationFailed(IndexBufferCreationError),
[INFO] [stdout] 249 +     IndexBufferCreationFailed(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_perspective` is never used
[INFO] [stdout]    --> src/engine.rs:151:9
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl DrawService {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn update_perspective(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ChangeState` is never constructed
[INFO] [stdout]    --> src/engine.rs:191:2
[INFO] [stdout]     |
[INFO] [stdout] 188 | pub enum UpdateResult {
[INFO] [stdout]     |          ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 191 |     ChangeState(Box<GameState>),
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `world` is never read
[INFO] [stdout]    --> src/engine.rs:203:2
[INFO] [stdout]     |
[INFO] [stdout] 202 | pub struct StatePlaying {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] 203 |     world: World,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stdout]    --> src/block.rs:293:78
[INFO] [stdout]     |
[INFO] [stdout] 293 |         for up_dir in [ND::Up, ND::Down, ND::Left, ND::Right, ND::Front, ND::Back].into_iter() {
[INFO] [stdout]     |                                                                                    ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout]     = note: `#[warn(array_into_iter)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 293 -         for up_dir in [ND::Up, ND::Down, ND::Left, ND::Right, ND::Front, ND::Back].into_iter() {
[INFO] [stdout] 293 +         for up_dir in [ND::Up, ND::Down, ND::Left, ND::Right, ND::Front, ND::Back].iter() {
[INFO] [stdout]     |
[INFO] [stdout] help: or remove `.into_iter()` to iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 293 -         for up_dir in [ND::Up, ND::Down, ND::Left, ND::Right, ND::Front, ND::Back].into_iter() {
[INFO] [stdout] 293 +         for up_dir in [ND::Up, ND::Down, ND::Left, ND::Right, ND::Front, ND::Back] {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]   --> src/engine.rs:94:3
[INFO] [stdout]    |
[INFO] [stdout] 94 |         replace(&mut self.events, new_events);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 94 |         let _ = replace(&mut self.events, new_events);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/engine.rs:97:16
[INFO] [stdout]    |
[INFO] [stdout] 97 |     pub fn events(&self) -> Iter<Event> {
[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] 97 |     pub fn events(&self) -> Iter<'_, Event> {
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/engine.rs:106:3
[INFO] [stdout]     |
[INFO] [stdout] 106 |         self.display.gl_window().set_cursor_position(pos);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 106 |         let _ = self.display.gl_window().set_cursor_position(pos);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/engine.rs:119:3
[INFO] [stdout]     |
[INFO] [stdout] 119 |         self.frame.set_finish();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 119 |         let _ = self.frame.set_finish();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/engine.rs:157:3
[INFO] [stdout]     |
[INFO] [stdout] 157 |         self.frame.set_finish();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 157 |         let _ = self.frame.set_finish();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `input:` in this pattern is redundant
[INFO] [stdout]    --> src/engine.rs:260:7
[INFO] [stdout]     |
[INFO] [stdout] 260 |                         input: input,
[INFO] [stdout]     |                         ^^^^^^^^^^^^ help: use shorthand field pattern: `input`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_shorthand_field_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `state:` in this pattern is redundant
[INFO] [stdout]    --> src/engine.rs:267:7
[INFO] [stdout]     |
[INFO] [stdout] 267 |                         state: state,
[INFO] [stdout]     |                         ^^^^^^^^^^^^ help: use shorthand field pattern: `state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 27.85s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: glutin v0.17.0, winit v0.16.2
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2`
[INFO] running `Command { std: "docker" "inspect" "bc3d13707cfca1bfe7fa0b4a64598b4392871a57d83d5bdb8d0714e3fe90f502", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bc3d13707cfca1bfe7fa0b4a64598b4392871a57d83d5bdb8d0714e3fe90f502", kill_on_drop: false }`
[INFO] [stdout] bc3d13707cfca1bfe7fa0b4a64598b4392871a57d83d5bdb8d0714e3fe90f502
