[INFO] cloning repository https://github.com/KristonCosta/verbose-adventure
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/KristonCosta/verbose-adventure" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKristonCosta%2Fverbose-adventure", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKristonCosta%2Fverbose-adventure'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] d1dab3731911f50c23089c0eac7b7cb5de6e60fb
[INFO] checking KristonCosta/verbose-adventure against master#ab26b175979ee7b2cb3302dce204b99df96f7efb for pr-157696
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKristonCosta%2Fverbose-adventure" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/KristonCosta/verbose-adventure
[INFO] finished tweaking git repo https://github.com/KristonCosta/verbose-adventure
[INFO] tweaked toml for git repo https://github.com/KristonCosta/verbose-adventure written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/KristonCosta/verbose-adventure on toolchain ab26b175979ee7b2cb3302dce204b99df96f7efb
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ab26b175979ee7b2cb3302dce204b99df96f7efb" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/KristonCosta/verbose-adventure 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" "+ab26b175979ee7b2cb3302dce204b99df96f7efb" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded typenum v1.10.0
[INFO] [stderr]   Downloaded tobj v0.1.8
[INFO] [stderr]   Downloaded dispatch v0.1.4
[INFO] [stderr]   Downloaded gl_generator_profiling_struct v0.1.2
[INFO] [stderr]   Downloaded wayland-sys v0.23.5
[INFO] [stderr]   Downloaded wayland-scanner v0.23.5
[INFO] [stderr]   Downloaded wayland-commons v0.23.5
[INFO] [stderr]   Downloaded smallvec v1.1.0
[INFO] [stderr]   Downloaded nalgebra-glm v0.4.0
[INFO] [stderr]   Downloaded cc v1.0.38
[INFO] [stderr]   Downloaded glutin v0.22.0-alpha1
[INFO] [stderr]   Downloaded wayland-client v0.23.5
[INFO] [stderr]   Downloaded smithay-client-toolkit v0.6.3
[INFO] [stderr]   Downloaded unicode-normalization v0.1.11
[INFO] [stderr]   Downloaded nalgebra v0.18.0
[INFO] [stderr]   Downloaded image v0.22.0
[INFO] [stderr]   Downloaded wayland-protocols v0.23.5
[INFO] [stderr]   Downloaded winit v0.20.0-alpha2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/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] 367edf87e6a7d83e440e5cc108a6eee1da453cf9c093545c3684f68e2c12601f
[INFO] running `Command { std: "docker" "start" "367edf87e6a7d83e440e5cc108a6eee1da453cf9c093545c3684f68e2c12601f", 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" "367edf87e6a7d83e440e5cc108a6eee1da453cf9c093545c3684f68e2c12601f" "/opt/rustwide/cargo-home/bin/cargo" "+ab26b175979ee7b2cb3302dce204b99df96f7efb" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "367edf87e6a7d83e440e5cc108a6eee1da453cf9c093545c3684f68e2c12601f", 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" "367edf87e6a7d83e440e5cc108a6eee1da453cf9c093545c3684f68e2c12601f" "/opt/rustwide/cargo-home/bin/cargo" "+ab26b175979ee7b2cb3302dce204b99df96f7efb" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling cc v1.0.38
[INFO] [stderr]     Checking crossbeam-utils v0.6.6
[INFO] [stderr]     Checking net2 v0.2.33
[INFO] [stderr]     Checking iovec v0.1.2
[INFO] [stderr]    Compiling wayland-scanner v0.23.5
[INFO] [stderr]     Checking rustc-hash v1.0.1
[INFO] [stderr]    Compiling num-complex v0.2.3
[INFO] [stderr]     Checking linked-hash-map v0.5.2
[INFO] [stderr]    Compiling num-bigint v0.2.2
[INFO] [stderr]    Compiling pkg-config v0.3.14
[INFO] [stderr]    Compiling num-rational v0.2.2
[INFO] [stderr]    Compiling libm v0.1.4
[INFO] [stderr]    Compiling typenum v1.10.0
[INFO] [stderr]    Compiling gl_generator v0.9.0
[INFO] [stderr]     Checking rawpointer v0.1.0
[INFO] [stderr]    Compiling synstructure v0.10.2
[INFO] [stderr]     Checking matrixmultiply v0.2.2
[INFO] [stderr]     Checking shared_library v0.1.9
[INFO] [stderr]     Checking smallvec v1.1.0
[INFO] [stderr]     Checking mio v0.6.19
[INFO] [stderr]    Compiling same-file v1.0.5
[INFO] [stderr]     Checking osmesa-sys v0.1.2
[INFO] [stderr]    Compiling walkdir v2.2.9
[INFO] [stderr]     Checking rand_chacha v0.2.1
[INFO] [stderr]     Checking rand v0.7.0
[INFO] [stderr]    Compiling x11-dl v2.18.3
[INFO] [stderr]    Compiling render_gl_derive v0.1.0 (/opt/rustwide/workdir/render_gl_derive)
[INFO] [stderr]     Checking tobj v0.1.8
[INFO] [stderr]     Checking unicode-normalization v0.1.11
[INFO] [stdout] warning: panic message contains an unused formatting placeholder
[INFO] [stdout]   --> render_gl_derive/src/lib.rs:66:32
[INFO] [stdout]    |
[INFO] [stdout] 66 |             _ => panic!("Field {} location should have the structure #[location = ?]")
[INFO] [stdout]    |                                ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this message is not used as a format string when given without arguments, but will be in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: add the missing argument
[INFO] [stdout]    |
[INFO] [stdout] 66 |             _ => panic!("Field {} location should have the structure #[location = ?]", ...)
[INFO] [stdout]    |                                                                                      +++++
[INFO] [stdout] help: or add a "{}" format string to use the message literally
[INFO] [stdout]    |
[INFO] [stdout] 66 |             _ => panic!("{}", "Field {} location should have the structure #[location = ?]")
[INFO] [stdout]    |                         +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking crossbeam-epoch v0.7.2
[INFO] [stderr]     Checking crossbeam-queue v0.1.2
[INFO] [stderr]    Compiling gl_generator_profiling_struct v0.1.2
[INFO] [stderr]    Compiling console-emu v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking crossbeam-deque v0.7.1
[INFO] [stderr]     Checking crossbeam-deque v0.6.3
[INFO] [stderr]     Checking generic-array v0.12.3
[INFO] [stderr]    Compiling gl v0.1.0 (/opt/rustwide/workdir/lib/gl)
[INFO] [stderr]     Checking alga v0.9.1
[INFO] [stderr]    Compiling libloading v0.5.2
[INFO] [stderr]    Compiling backtrace-sys v0.1.31
[INFO] [stderr]     Checking rusttype v0.7.7
[INFO] [stderr]    Compiling failure_derive v0.1.5
[INFO] [stderr]     Checking rayon-core v1.5.0
[INFO] [stderr]     Checking mio-extras v2.0.5
[INFO] [stderr]     Checking andrew v0.2.1
[INFO] [stderr]     Checking num v0.2.0
[INFO] [stderr]     Checking calloop v0.4.4
[INFO] [stderr]     Checking dlib v0.4.1
[INFO] [stderr]     Checking wayland-sys v0.23.5
[INFO] [stderr]     Checking wayland-commons v0.23.5
[INFO] [stderr]     Checking rayon v1.1.0
[INFO] [stderr]     Checking nalgebra v0.18.0
[INFO] [stderr]    Compiling wayland-client v0.23.5
[INFO] [stderr]    Compiling wayland-protocols v0.23.5
[INFO] [stderr]     Checking backtrace v0.3.33
[INFO] [stderr]     Checking failure v0.1.5
[INFO] [stderr]     Checking glutin_glx_sys v0.1.5
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> lib/gl/src/./bindings.rs:2673:47
[INFO] [stdout]      |
[INFO] [stdout] 2673 |                 fn do_metaloadfn(loadfn: &mut FnMut(&'static str) -> *const __gl_imports::raw::c_void,
[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] 2673 |                 fn do_metaloadfn(loadfn: &mut dyn FnMut(&'static str) -> *const __gl_imports::raw::c_void,
[INFO] [stdout]      |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking jpeg-decoder v0.1.15
[INFO] [stderr]     Checking image v0.22.0
[INFO] [stderr]     Checking font_renderer v0.1.0 (/opt/rustwide/workdir/font_renderer)
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> font_renderer/src/lib.rs:3:33
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{HashMap, HashSet};
[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: `unicode_normalization::UnicodeNormalization`
[INFO] [stdout]  --> font_renderer/src/lib.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use unicode_normalization::UnicodeNormalization;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]   --> font_renderer/src/lib.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     (x as f32 / y as f32)
[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] 15 -     (x as f32 / y as f32)
[INFO] [stdout] 15 +     x as f32 / y as f32 
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `glyphs_height`
[INFO] [stdout]    --> font_renderer/src/lib.rs:100:40
[INFO] [stdout]     |
[INFO] [stdout] 100 |     let (image, glyphs, (glyphs_width, glyphs_height)) = prepare_glyphs(data, text, height);
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_glyphs_height`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> font_renderer/src/lib.rs:45:39
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn prepare_glyphs(data:Vec<u8>, text: &str, height: f32) -> (DynamicImage, Vec<PositionedGlyph>, (u32, u32)) {
[INFO] [stdout]    |                                       ^^^^ the lifetime is elided here         ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn prepare_glyphs(data:Vec<u8>, text: &str, height: f32) -> (DynamicImage, Vec<PositionedGlyph<'_>>, (u32, u32)) {
[INFO] [stdout]    |                                                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking nalgebra-glm v0.4.0
[INFO] [stderr]     Checking smithay-client-toolkit v0.6.3
[INFO] [stderr]     Checking winit v0.20.0-alpha2
[INFO] [stderr]     Checking glutin v0.22.0-alpha1
[INFO] [stderr]     Checking console_backend v0.1.0 (/opt/rustwide/workdir/console_backend)
[INFO] [stdout] warning: unused import: `DynamicImage`
[INFO] [stdout]  --> console_backend/src/console.rs:4:31
[INFO] [stdout]   |
[INFO] [stdout] 4 | use image::{GenericImageView, DynamicImage};
[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: `dpi::LogicalSize`
[INFO] [stdout]   --> console_backend/src/console.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     dpi::LogicalSize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nalgebra_glm::scale`
[INFO] [stdout]   --> console_backend/src/console.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use nalgebra_glm::scale;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Shader`
[INFO] [stdout]  --> console_backend/src/render_gl/mod.rs:2:24
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub use self::shader::{Shader, Program};
[INFO] [stdout]   |                        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]    --> console_backend/src/console.rs:341:13
[INFO] [stdout]     |
[INFO] [stdout] 341 |         let start = std::time::Instant::now();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]    --> console_backend/src/console.rs:403:13
[INFO] [stdout]     |
[INFO] [stdout] 403 |         let start = std::time::Instant::now();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Renderable` is never used
[INFO] [stdout]  --> console_backend/src/renderable.rs:2:7
[INFO] [stdout]   |
[INFO] [stdout] 2 | trait Renderable {
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> console_backend/src/console.rs:258:17
[INFO] [stdout]     |
[INFO] [stdout] 258 |                 font_img.save("321.png");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[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] 258 |                 let _ = font_img.save("321.png");
[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]  --> console_backend/src/resources.rs:6:17
[INFO] [stdout]   |
[INFO] [stdout] 6 | #[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] 7 | 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]  --> console_backend/src/resources.rs:6:17
[INFO] [stdout]   |
[INFO] [stdout] 6 | #[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] 7 | 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: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> console_backend/src/render_gl/errors.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[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] 4 | 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: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> console_backend/src/render_gl/errors.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[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] 4 | 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: unused imports: `Color` and `data`
[INFO] [stdout]   --> src/game.rs:11:75
[INFO] [stdout]    |
[INFO] [stdout] 11 | use console_backend::{ColorBuffer, Camera, resources::Resources, Console, data, Color, colors, ConsoleBuilder, Transformer};
[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: `HashSet`
[INFO] [stdout]   --> src/game.rs:14:33
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]    |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `failure::_core::time::Duration`
[INFO] [stdout]   --> src/game.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use failure::_core::time::Duration;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp`
[INFO] [stdout]   --> src/game.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::cmp;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Add`
[INFO] [stdout]   --> src/game_handler.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::ops::Add;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nalgebra::max`
[INFO] [stdout]   --> src/game_handler.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use nalgebra::max;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `console_backend::Color`
[INFO] [stdout]  --> src/map.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use console_backend::Color;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Color` and `data`
[INFO] [stdout]   --> src/game.rs:11:75
[INFO] [stdout]    |
[INFO] [stdout] 11 | use console_backend::{ColorBuffer, Camera, resources::Resources, Console, data, Color, colors, ConsoleBuilder, Transformer};
[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: `HashSet`
[INFO] [stdout]   --> src/game.rs:14:33
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]    |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `failure::_core::time::Duration`
[INFO] [stdout]   --> src/game.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use failure::_core::time::Duration;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp`
[INFO] [stdout]   --> src/game.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::cmp;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Add`
[INFO] [stdout]   --> src/game_handler.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::ops::Add;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nalgebra::max`
[INFO] [stdout]   --> src/game_handler.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use nalgebra::max;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `console_backend::Color`
[INFO] [stdout]  --> src/map.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use console_backend::Color;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `clear`
[INFO] [stdout]   --> src/widgets/scrolling_message_console.rs:38:13
[INFO] [stdout]    |
[INFO] [stdout] 38 |         let clear: Color = Color::from_int(0, 0, 0, 0.0);
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_clear`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/widgets/scrolling_message_console.rs:40:13
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let x = "║═╔╗╚╝";
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]   --> src/widgets/scrolling_message_console.rs:41:21
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let (width, height) = self.console.dimensions();
[INFO] [stdout]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scroll`
[INFO] [stdout]    --> src/game_handler.rs:180:25
[INFO] [stdout]     |
[INFO] [stdout] 180 |                     let scroll =  match delta {
[INFO] [stdout]     |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_scroll`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fov_map`
[INFO] [stdout]    --> src/object.rs:114:79
[INFO] [stdout]     |
[INFO] [stdout] 114 | ... objects: &mut [Object], fov_map: bool, messages: &mut ScrollingMessageConsole) -> bool {
[INFO] [stdout]     |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fov_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/object.rs:115:10
[INFO] [stdout]     |
[INFO] [stdout] 115 |     let (x, y) = objects[monster_id].position;
[INFO] [stdout]     |          ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/object.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 115 |     let (x, y) = objects[monster_id].position;
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `clear`
[INFO] [stdout]   --> src/widgets/scrolling_message_console.rs:38:13
[INFO] [stdout]    |
[INFO] [stdout] 38 |         let clear: Color = Color::from_int(0, 0, 0, 0.0);
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_clear`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/widgets/scrolling_message_console.rs:40:13
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let x = "║═╔╗╚╝";
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]   --> src/widgets/scrolling_message_console.rs:41:21
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let (width, height) = self.console.dimensions();
[INFO] [stdout]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/fov.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     for i in 0..radius {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Exit` is never constructed
[INFO] [stdout]   --> src/game.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | enum PlayerAction {
[INFO] [stdout]    |      ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 37 |     Exit,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `camera`, `keyboard`, and `input_limiter` are never read
[INFO] [stdout]   --> src/game.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct GameImpl {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 49 |     camera: Camera,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     keyboard: HashMap<VirtualKeyCode, bool>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 56 |     input_limiter: Instant,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/game_handler.rs:47:17
[INFO] [stdout]    |
[INFO] [stdout] 47 |     KeyReleased(InputEventData<VirtualKeyCode>),
[INFO] [stdout]    |     ----------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `InputEvent` 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] 47 -     KeyReleased(InputEventData<VirtualKeyCode>),
[INFO] [stdout] 47 +     KeyReleased(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/game_handler.rs:48:16
[INFO] [stdout]    |
[INFO] [stdout] 48 |     MouseMoved(f32, f32),
[INFO] [stdout]    |     ---------- ^^^  ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `InputEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 48 -     MouseMoved(f32, f32),
[INFO] [stdout] 48 +     MouseMoved((), ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `dt` is never read
[INFO] [stdout]   --> src/game_handler.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct InputEventData<T> {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 52 |     pub data: T,
[INFO] [stdout] 53 |     pub dt: f64,
[INFO] [stdout]    |         ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `InputEventData` 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: unused variable: `scroll`
[INFO] [stdout]    --> src/game_handler.rs:180:25
[INFO] [stdout]     |
[INFO] [stdout] 180 |                     let scroll =  match delta {
[INFO] [stdout]     |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_scroll`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fov_map`
[INFO] [stdout]    --> src/object.rs:114:79
[INFO] [stdout]     |
[INFO] [stdout] 114 | ... objects: &mut [Object], fov_map: bool, messages: &mut ScrollingMessageConsole) -> bool {
[INFO] [stdout]     |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fov_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/object.rs:115:10
[INFO] [stdout]     |
[INFO] [stdout] 115 |     let (x, y) = objects[monster_id].position;
[INFO] [stdout]     |          ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/object.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 115 |     let (x, y) = objects[monster_id].position;
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/fov.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     for i in 0..radius {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Exit` is never constructed
[INFO] [stdout]   --> src/game.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | enum PlayerAction {
[INFO] [stdout]    |      ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 37 |     Exit,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `camera`, `keyboard`, and `input_limiter` are never read
[INFO] [stdout]   --> src/game.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct GameImpl {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 49 |     camera: Camera,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     keyboard: HashMap<VirtualKeyCode, bool>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 56 |     input_limiter: Instant,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/game_handler.rs:47:17
[INFO] [stdout]    |
[INFO] [stdout] 47 |     KeyReleased(InputEventData<VirtualKeyCode>),
[INFO] [stdout]    |     ----------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `InputEvent` 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] 47 -     KeyReleased(InputEventData<VirtualKeyCode>),
[INFO] [stdout] 47 +     KeyReleased(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/game_handler.rs:48:16
[INFO] [stdout]    |
[INFO] [stdout] 48 |     MouseMoved(f32, f32),
[INFO] [stdout]    |     ---------- ^^^  ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `InputEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 48 -     MouseMoved(f32, f32),
[INFO] [stdout] 48 +     MouseMoved((), ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `dt` is never read
[INFO] [stdout]   --> src/game_handler.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct InputEventData<T> {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 52 |     pub data: T,
[INFO] [stdout] 53 |     pub dt: f64,
[INFO] [stdout]    |         ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `InputEventData` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 37.17s
[INFO] running `Command { std: "docker" "inspect" "367edf87e6a7d83e440e5cc108a6eee1da453cf9c093545c3684f68e2c12601f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "367edf87e6a7d83e440e5cc108a6eee1da453cf9c093545c3684f68e2c12601f", kill_on_drop: false }`
[INFO] [stdout] 367edf87e6a7d83e440e5cc108a6eee1da453cf9c093545c3684f68e2c12601f
