[INFO] cloning repository https://github.com/andreasterrius/Alexyt
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/andreasterrius/Alexyt" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fandreasterrius%2FAlexyt", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fandreasterrius%2FAlexyt'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7c74289ab6c50403b5b70a5beeef7adaddf28969
[INFO] checking andreasterrius/Alexyt against try#48c9d93cf65d550d124c40108859fd993778c157 for pr-153692-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fandreasterrius%2FAlexyt" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/andreasterrius/Alexyt
[INFO] finished tweaking git repo https://github.com/andreasterrius/Alexyt
[INFO] tweaked toml for git repo https://github.com/andreasterrius/Alexyt written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/andreasterrius/Alexyt on toolchain 48c9d93cf65d550d124c40108859fd993778c157
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+48c9d93cf65d550d124c40108859fd993778c157" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/andreasterrius/Alexyt 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" "+48c9d93cf65d550d124c40108859fd993778c157" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr] warning: /workspace/builds/worker-7-tc2/source/crates/ale_data/Cargo.toml: unused manifest key: dependencies.traitcast_core.use_inventory
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+48c9d93cf65d550d124c40108859fd993778c157" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 8096200cefefad1b31771b72c51c723396ca8e1dca6a521026fd8a683ff57b7e
[INFO] running `Command { std: "docker" "start" "-a" "8096200cefefad1b31771b72c51c723396ca8e1dca6a521026fd8a683ff57b7e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8096200cefefad1b31771b72c51c723396ca8e1dca6a521026fd8a683ff57b7e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8096200cefefad1b31771b72c51c723396ca8e1dca6a521026fd8a683ff57b7e", kill_on_drop: false }`
[INFO] [stdout] 8096200cefefad1b31771b72c51c723396ca8e1dca6a521026fd8a683ff57b7e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+48c9d93cf65d550d124c40108859fd993778c157" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1801f77a2fa68e8ed2a89cff55d28e9ba590205e9e401e6c32329d86909079c4
[INFO] running `Command { std: "docker" "start" "-a" "1801f77a2fa68e8ed2a89cff55d28e9ba590205e9e401e6c32329d86909079c4", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr] warning: /opt/rustwide/workdir/crates/ale_data/Cargo.toml: unused manifest key: dependencies.traitcast_core.use_inventory
[INFO] [stderr]    Compiling libc v0.2.125
[INFO] [stderr]    Compiling num-traits v0.2.14
[INFO] [stderr]    Compiling proc-macro2 v1.0.39
[INFO] [stderr]    Compiling autocfg v0.1.8
[INFO] [stderr]     Checking rand_core v0.4.2
[INFO] [stderr]    Compiling unicode-ident v1.0.1
[INFO] [stderr]    Compiling crossbeam-utils v0.8.8
[INFO] [stderr]    Compiling syn v1.0.96
[INFO] [stderr]     Checking scopeguard v1.1.0
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.8
[INFO] [stderr]    Compiling cgmath v0.17.0
[INFO] [stderr]     Checking bytemuck v1.9.1
[INFO] [stderr]    Compiling rayon-core v1.9.2
[INFO] [stderr]     Checking adler32 v1.2.0
[INFO] [stderr]    Compiling rand_pcg v0.1.2
[INFO] [stderr]    Compiling rand_chacha v0.1.1
[INFO] [stderr]    Compiling rand v0.6.5
[INFO] [stderr]    Compiling num-rational v0.3.2
[INFO] [stderr]    Compiling rayon v1.5.2
[INFO] [stderr]     Checking either v1.6.1
[INFO] [stderr]    Compiling log v0.4.17
[INFO] [stderr]    Compiling lock_api v0.4.7
[INFO] [stderr]     Checking rand_core v0.3.1
[INFO] [stderr]     Checking rand_jitter v0.1.4
[INFO] [stderr]    Compiling indexmap v1.9.1
[INFO] [stderr]     Checking rand_isaac v0.1.1
[INFO] [stderr]     Checking rand_xorshift v0.1.1
[INFO] [stderr]     Checking rand_hc v0.1.0
[INFO] [stderr]     Checking smallvec v1.8.0
[INFO] [stderr]    Compiling num-iter v0.1.43
[INFO] [stderr]    Compiling futures-core v0.3.21
[INFO] [stderr]    Compiling serde v1.0.137
[INFO] [stderr]     Checking byteorder v1.4.3
[INFO] [stderr]     Checking itoa v1.0.1
[INFO] [stderr]     Checking anymap v0.12.1
[INFO] [stderr]     Checking hashbrown v0.12.3
[INFO] [stderr]     Checking miniz_oxide v0.5.1
[INFO] [stderr]    Compiling serde_derive v1.0.137
[INFO] [stderr]     Checking crossbeam-channel v0.5.6
[INFO] [stderr]    Compiling serde_json v1.0.80
[INFO] [stderr]     Checking snowflake v1.3.0
[INFO] [stderr]     Checking deflate v0.8.6
[INFO] [stderr]     Checking traitcast_core v0.2.0
[INFO] [stderr]     Checking deflate v1.0.0
[INFO] [stderr]     Checking miniz_oxide v0.3.7
[INFO] [stderr]     Checking spin v0.9.3
[INFO] [stderr]     Checking crossbeam-deque v0.8.1
[INFO] [stderr]    Compiling num-rational v0.4.0
[INFO] [stderr]     Checking futures-sink v0.3.21
[INFO] [stderr]     Checking ryu v1.0.9
[INFO] [stderr]     Checking weezl v0.1.6
[INFO] [stderr]     Checking approx v0.3.2
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]     Checking rand_os v0.1.3
[INFO] [stderr]     Checking num_cpus v1.13.1
[INFO] [stderr]     Checking getrandom v0.2.6
[INFO] [stderr]     Checking flate2 v1.0.23
[INFO] [stderr]     Checking inflate v0.4.5
[INFO] [stderr]     Checking ale_input v0.1.0 (/opt/rustwide/workdir/crates/ale_input)
[INFO] [stderr]     Checking bit_field v0.10.1
[INFO] [stderr]     Checking threadpool v1.8.1
[INFO] [stderr]     Checking nanorand v0.7.0
[INFO] [stderr]     Checking lebe v0.5.1
[INFO] [stderr]     Checking ttf-parser v0.6.2
[INFO] [stderr]     Checking half v1.8.2
[INFO] [stderr]     Checking jpeg-decoder v0.1.22
[INFO] [stderr]     Checking gif v0.11.3
[INFO] [stderr]     Checking base64 v0.12.3
[INFO] [stderr]     Checking scoped_threadpool v0.1.9
[INFO] [stderr]     Checking ab_glyph_rasterizer v0.1.5
[INFO] [stderr]    Compiling quote v1.0.18
[INFO] [stderr]     Checking png v0.17.5
[INFO] [stderr]     Checking hdrldr v0.1.2
[INFO] [stderr]     Checking png v0.16.8
[INFO] [stderr]    Compiling xml-rs v0.8.4
[INFO] [stderr]    Compiling cc v1.0.73
[INFO] [stderr]     Checking cty v0.2.2
[INFO] [stderr]     Checking raw-window-handle v0.4.3
[INFO] [stderr]     Checking safe_arch v0.5.2
[INFO] [stderr]    Compiling typenum v1.15.0
[INFO] [stderr]     Checking num-complex v0.3.1
[INFO] [stderr]     Checking ale_data v0.1.0 (/opt/rustwide/workdir/crates/ale_data)
[INFO] [stderr]     Checking approx v0.4.0
[INFO] [stderr]    Compiling crossbeam-queue v0.3.5
[INFO] [stderr]     Checking image v0.23.14
[INFO] [stdout] warning: unused import: `std::borrow::Borrow`
[INFO] [stdout]  --> crates/ale_data/src/alevec.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::borrow::Borrow;
[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: `Formatter`
[INFO] [stdout]  --> crates/ale_data/src/alevec.rs:3:23
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::fmt::{Debug, Formatter};
[INFO] [stdout]   |                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling anyhow v1.0.59
[INFO] [stderr]    Compiling time-macros v0.2.4
[INFO] [stderr]     Checking rawpointer v0.2.1
[INFO] [stderr]     Checking wide v0.6.5
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/ale_data/src/alevec.rs:164:15
[INFO] [stdout]     |
[INFO] [stdout] 164 |   pub fn iter(&self) -> AleVecIter<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] 164 |   pub fn iter(&self) -> AleVecIter<'_, T> {
[INFO] [stdout]     |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/ale_data/src/alevec.rs:168:19
[INFO] [stdout]     |
[INFO] [stdout] 168 |   pub fn iter_mut(&mut self) -> AleVecIterMut<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] 168 |   pub fn iter_mut(&mut self) -> AleVecIterMut<'_, T> {
[INFO] [stdout]     |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/ale_data/src/alevec.rs:172:20
[INFO] [stdout]     |
[INFO] [stdout] 172 |   pub fn keys_iter(&self) -> AleVecKeyIter<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] 172 |   pub fn keys_iter(&self) -> AleVecKeyIter<'_, T> {
[INFO] [stdout]     |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> crates/ale_data/src/buffer.rs:30:23
[INFO] [stdout]    |
[INFO] [stdout] 30 |   pub fn element_iter(&self, name: &str) -> Option<BufferElementIterator<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] 30 |   pub fn element_iter(&self, name: &str) -> Option<BufferElementIterator<'_, T>> {
[INFO] [stdout]    |                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling paste v1.0.7
[INFO] [stderr]     Checking num_threads v0.1.6
[INFO] [stderr]     Checking matrixmultiply v0.3.2
[INFO] [stderr]     Checking owned_ttf_parser v0.6.0
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]     Checking termcolor v1.1.3
[INFO] [stderr]     Checking rusttype v0.9.2
[INFO] [stderr]    Compiling cmake v0.1.48
[INFO] [stderr]     Checking rand_core v0.6.3
[INFO] [stderr]     Checking ppv-lite86 v0.2.16
[INFO] [stderr]     Checking slab v0.4.6
[INFO] [stderr]     Checking crossbeam v0.8.1
[INFO] [stderr]     Checking instant v0.1.12
[INFO] [stderr]     Checking arrayvec v0.6.1
[INFO] [stderr]     Checking bit-vec v0.6.3
[INFO] [stdout] warning: unused import: `std::borrow::Borrow`
[INFO] [stdout]  --> crates/ale_data/src/alevec.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::borrow::Borrow;
[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: `Formatter`
[INFO] [stdout]  --> crates/ale_data/src/alevec.rs:3:23
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::fmt::{Debug, Formatter};
[INFO] [stdout]   |                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling gl v0.14.0
[INFO] [stderr]     Checking jpeg-decoder v0.2.5
[INFO] [stdout] warning: unused variable: `k3`
[INFO] [stdout]    --> crates/ale_data/src/alevec.rs:295:7
[INFO] [stdout]     |
[INFO] [stdout] 295 |   let k3 = v.push(30);
[INFO] [stdout]     |       ^^ help: if this is intentional, prefix it with an underscore: `_k3`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `ctr` is assigned to, but never used
[INFO] [stdout]    --> crates/ale_data/src/alevec.rs:326:7
[INFO] [stdout]     |
[INFO] [stdout] 326 |   let mut ctr = 0;
[INFO] [stdout]     |       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_ctr` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `ctr` is never read
[INFO] [stdout]    --> crates/ale_data/src/alevec.rs:331:5
[INFO] [stdout]     |
[INFO] [stdout] 331 |     ctr += 1;
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `num` is never read
[INFO] [stdout]    --> crates/ale_data/src/alevec.rs:327:7
[INFO] [stdout]     |
[INFO] [stdout] 327 |   for mut num in v.iter_mut() {
[INFO] [stdout]     |       ^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] 328 |     let mut p = 20;
[INFO] [stdout] 329 |     num = &mut p;
[INFO] [stdout]     |     ------------ `num` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/ale_data/src/alevec.rs:164:15
[INFO] [stdout]     |
[INFO] [stdout] 164 |   pub fn iter(&self) -> AleVecIter<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] 164 |   pub fn iter(&self) -> AleVecIter<'_, T> {
[INFO] [stdout]     |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/ale_data/src/alevec.rs:168:19
[INFO] [stdout]     |
[INFO] [stdout] 168 |   pub fn iter_mut(&mut self) -> AleVecIterMut<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] 168 |   pub fn iter_mut(&mut self) -> AleVecIterMut<'_, T> {
[INFO] [stdout]     |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/ale_data/src/alevec.rs:172:20
[INFO] [stdout]     |
[INFO] [stdout] 172 |   pub fn keys_iter(&self) -> AleVecKeyIter<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] 172 |   pub fn keys_iter(&self) -> AleVecKeyIter<'_, T> {
[INFO] [stdout]     |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> crates/ale_data/src/buffer.rs:30:23
[INFO] [stdout]    |
[INFO] [stdout] 30 |   pub fn element_iter(&self, name: &str) -> Option<BufferElementIterator<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] 30 |   pub fn element_iter(&self, name: &str) -> Option<BufferElementIterator<'_, T>> {
[INFO] [stdout]    |                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Relative::<A, B>::eq` that must be used
[INFO] [stdout]    --> crates/ale_data/src/buffer.rs:240:5
[INFO] [stdout]     |
[INFO] [stdout] 240 |     relative_eq!(vertices[i], vertices_expected[i]);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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] 240 |     let _ = relative_eq!(vertices[i], vertices_expected[i]);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Relative::<A, B>::eq` that must be used
[INFO] [stdout]    --> crates/ale_data/src/buffer.rs:246:5
[INFO] [stdout]     |
[INFO] [stdout] 246 |     relative_eq!(uvs[i], uvs_expected[i]);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 246 |     let _ = relative_eq!(uvs[i], uvs_expected[i]);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Relative::<A, B>::eq` that must be used
[INFO] [stdout]    --> crates/ale_data/src/buffer.rs:252:5
[INFO] [stdout]     |
[INFO] [stdout] 252 |     relative_eq!(normals[i], normals_expected[i]);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 252 |     let _ = relative_eq!(normals[i], normals_expected[i]);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Relative::<A, B>::eq` that must be used
[INFO] [stdout]    --> crates/ale_data/src/buffer.rs:280:5
[INFO] [stdout]     |
[INFO] [stdout] 280 |     relative_eq!(vertices[i], vertices_data[i]);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 280 |     let _ = relative_eq!(vertices[i], vertices_data[i]);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Relative::<A, B>::eq` that must be used
[INFO] [stdout]    --> crates/ale_data/src/buffer.rs:283:5
[INFO] [stdout]     |
[INFO] [stdout] 283 |     relative_eq!(uvs[i], uvs_data[i]);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 283 |     let _ = relative_eq!(uvs[i], uvs_data[i]);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Relative::<A, B>::eq` that must be used
[INFO] [stdout]    --> crates/ale_data/src/buffer.rs:286:5
[INFO] [stdout]     |
[INFO] [stdout] 286 |     relative_eq!(normals[i], normals_data[i]);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 286 |     let _ = relative_eq!(normals[i], normals_data[i]);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling glfw-sys v4.0.0+3.3.5
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking ale_math v0.1.0 (/opt/rustwide/workdir/crates/ale_math)
[INFO] [stderr]     Checking time v0.3.11
[INFO] [stderr]     Checking ale_variable v0.1.0 (/opt/rustwide/workdir/crates/ale_variable)
[INFO] [stderr]     Checking ale_camera v0.1.0 (/opt/rustwide/workdir/crates/ale_camera)
[INFO] [stdout] warning: unused imports: `Hash` and `Hasher`
[INFO] [stdout]  --> crates/ale_variable/src/lib.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::hash::{Hash, Hasher};
[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: `Point3`
[INFO] [stdout]  --> crates/ale_camera/src/lib.rs:4:74
[INFO] [stdout]   |
[INFO] [stdout] 4 | use ale_math::{ale_quaternion_look_at, ortho, perspective, Deg, Matrix4, Point3, Quaternion, Vector2, Vector3};
[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::sync::Arc`
[INFO] [stdout]  --> crates/ale_camera/src/lib.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> crates/ale_variable/src/lib.rs:34:23
[INFO] [stdout]    |
[INFO] [stdout] 34 |       Variable::F32_1(n, v) => v.to_string(),
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> crates/ale_variable/src/lib.rs:35:23
[INFO] [stdout]    |
[INFO] [stdout] 35 |       Variable::F32_3(n, v) => format!("({}, {}, {})", v.x, v.y, v.z),
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> crates/ale_variable/src/lib.rs:36:23
[INFO] [stdout]    |
[INFO] [stdout] 36 |       Variable::F32_4(n, v) => format!("({}, {}, {}, {})", v.x, v.y, v.z, v.w),
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> crates/ale_variable/src/lib.rs:37:22
[INFO] [stdout]    |
[INFO] [stdout] 37 |       Variable::Bool(n, v) => v.to_string(),
[INFO] [stdout]    |                      ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> crates/ale_variable/src/lib.rs:39:25
[INFO] [stdout]    |
[INFO] [stdout] 39 |       Variable::F32_4_4(n, v) => format!("{:?}", v),
[INFO] [stdout]    |                         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `abs_x`
[INFO] [stdout]   --> crates/ale_camera/src/flycamera.rs:89:40
[INFO] [stdout]    |
[INFO] [stdout] 89 |       Input::MouseMotion{rel_x, rel_y, abs_x, abs_y} => {
[INFO] [stdout]    |                                        ^^^^^ help: try ignoring the field: `abs_x: _`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `abs_y`
[INFO] [stdout]   --> crates/ale_camera/src/flycamera.rs:89:47
[INFO] [stdout]    |
[INFO] [stdout] 89 |       Input::MouseMotion{rel_x, rel_y, abs_x, abs_y} => {
[INFO] [stdout]    |                                               ^^^^^ help: try ignoring the field: `abs_y: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Hash` and `Hasher`
[INFO] [stdout]  --> crates/ale_variable/src/lib.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::hash::{Hash, Hasher};
[INFO] [stdout]   |                 ^^^^  ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking ale_console v0.1.0 (/opt/rustwide/workdir/crates/ale_console)
[INFO] [stdout] warning: unused import: `Point3`
[INFO] [stdout]  --> crates/ale_camera/src/lib.rs:4:74
[INFO] [stdout]   |
[INFO] [stdout] 4 | use ale_math::{ale_quaternion_look_at, ortho, perspective, Deg, Matrix4, Point3, Quaternion, Vector2, Vector3};
[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::sync::Arc`
[INFO] [stdout]  --> crates/ale_camera/src/lib.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> crates/ale_variable/src/lib.rs:34:23
[INFO] [stdout]    |
[INFO] [stdout] 34 |       Variable::F32_1(n, v) => v.to_string(),
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> crates/ale_variable/src/lib.rs:35:23
[INFO] [stdout]    |
[INFO] [stdout] 35 |       Variable::F32_3(n, v) => format!("({}, {}, {})", v.x, v.y, v.z),
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> crates/ale_variable/src/lib.rs:36:23
[INFO] [stdout]    |
[INFO] [stdout] 36 |       Variable::F32_4(n, v) => format!("({}, {}, {}, {})", v.x, v.y, v.z, v.w),
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> crates/ale_variable/src/lib.rs:37:22
[INFO] [stdout]    |
[INFO] [stdout] 37 |       Variable::Bool(n, v) => v.to_string(),
[INFO] [stdout]    |                      ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> crates/ale_variable/src/lib.rs:39:25
[INFO] [stdout]    |
[INFO] [stdout] 39 |       Variable::F32_4_4(n, v) => format!("{:?}", v),
[INFO] [stdout]    |                         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scancode`
[INFO] [stdout]   --> crates/ale_console/src/lib.rs:58:21
[INFO] [stdout]    |
[INFO] [stdout] 58 |     Input::Key(key, scancode, action, modifier) => {
[INFO] [stdout]    |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scancode`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `modifier`
[INFO] [stdout]   --> crates/ale_console/src/lib.rs:58:39
[INFO] [stdout]    |
[INFO] [stdout] 58 |     Input::Key(key, scancode, action, modifier) => {
[INFO] [stdout]    |                                       ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_modifier`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> crates/ale_console/src/lib.rs:164:25
[INFO] [stdout]     |
[INFO] [stdout] 164 |         Variable::F32_1(key, v) => {
[INFO] [stdout]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> crates/ale_console/src/lib.rs:171:25
[INFO] [stdout]     |
[INFO] [stdout] 171 |         Variable::F32_3(key, ref mut v) => {
[INFO] [stdout]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> crates/ale_console/src/lib.rs:180:25
[INFO] [stdout]     |
[INFO] [stdout] 180 |         Variable::F32_4(key, ref mut v) => {
[INFO] [stdout]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> crates/ale_console/src/lib.rs:190:24
[INFO] [stdout]     |
[INFO] [stdout] 190 |         Variable::Bool(key, ref mut v) => {
[INFO] [stdout]     |                        ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> crates/ale_console/src/lib.rs:221:11
[INFO] [stdout]     |
[INFO] [stdout] 221 |       Err(err) => return Err(ArgumentsFailToParse(words[0].to_owned(), words[i].to_owned())),
[INFO] [stdout]     |           ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scancode`
[INFO] [stdout]   --> crates/ale_console/src/lib.rs:58:21
[INFO] [stdout]    |
[INFO] [stdout] 58 |     Input::Key(key, scancode, action, modifier) => {
[INFO] [stdout]    |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scancode`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `modifier`
[INFO] [stdout]   --> crates/ale_console/src/lib.rs:58:39
[INFO] [stdout]    |
[INFO] [stdout] 58 |     Input::Key(key, scancode, action, modifier) => {
[INFO] [stdout]    |                                       ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_modifier`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> crates/ale_console/src/lib.rs:164:25
[INFO] [stdout]     |
[INFO] [stdout] 164 |         Variable::F32_1(key, v) => {
[INFO] [stdout]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> crates/ale_console/src/lib.rs:171:25
[INFO] [stdout]     |
[INFO] [stdout] 171 |         Variable::F32_3(key, ref mut v) => {
[INFO] [stdout]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> crates/ale_console/src/lib.rs:180:25
[INFO] [stdout]     |
[INFO] [stdout] 180 |         Variable::F32_4(key, ref mut v) => {
[INFO] [stdout]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> crates/ale_console/src/lib.rs:190:24
[INFO] [stdout]     |
[INFO] [stdout] 190 |         Variable::Bool(key, ref mut v) => {
[INFO] [stdout]     |                        ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> crates/ale_console/src/lib.rs:221:11
[INFO] [stdout]     |
[INFO] [stdout] 221 |       Err(err) => return Err(ArgumentsFailToParse(words[0].to_owned(), words[i].to_owned())),
[INFO] [stdout]     |           ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `abs_x`
[INFO] [stdout]   --> crates/ale_camera/src/flycamera.rs:89:40
[INFO] [stdout]    |
[INFO] [stdout] 89 |       Input::MouseMotion{rel_x, rel_y, abs_x, abs_y} => {
[INFO] [stdout]    |                                        ^^^^^ help: try ignoring the field: `abs_x: _`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `abs_y`
[INFO] [stdout]   --> crates/ale_camera/src/flycamera.rs:89:47
[INFO] [stdout]    |
[INFO] [stdout] 89 |       Input::MouseMotion{rel_x, rel_y, abs_x, abs_y} => {
[INFO] [stdout]    |                                               ^^^^^ help: try ignoring the field: `abs_y: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking simba v0.4.0
[INFO] [stderr]     Checking tiff v0.7.2
[INFO] [stderr]     Checking simplelog v0.12.0
[INFO] [stderr]     Checking glfw v0.45.0 (https://github.com/bjz/glfw-rs.git#3e7598e1)
[INFO] [stderr]    Compiling pin-project-internal v1.0.10
[INFO] [stderr]    Compiling gltf-derive v1.0.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.31
[INFO] [stderr]    Compiling num-derive v0.3.3
[INFO] [stderr]    Compiling enumn v0.1.6
[INFO] [stderr]     Checking thiserror v1.0.31
[INFO] [stderr]     Checking pin-project v1.0.10
[INFO] [stderr]     Checking flume v0.10.12
[INFO] [stderr]     Checking exr v1.4.2
[INFO] [stderr]     Checking nalgebra v0.26.2
[INFO] [stderr]     Checking gltf-json v1.0.0
[INFO] [stderr]     Checking image v0.24.2
[INFO] [stderr]     Checking gltf v1.0.0
[INFO] [stderr]     Checking ale_resources v0.1.0 (/opt/rustwide/workdir/crates/ale_resources)
[INFO] [stdout] warning: unused import: `crate::gltf`
[INFO] [stdout]  --> crates/ale_resources/src/gltf.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::gltf;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `serde_support`
[INFO] [stdout]   --> crates/ale_resources/src/autoid.rs:19:16
[INFO] [stdout]    |
[INFO] [stdout] 19 |     #[cfg_attr(feature = "serde_support", derive(Serialize, Deserialize))]
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]    |
[INFO] [stdout]   ::: crates/ale_resources/src/mesh.rs:42:1
[INFO] [stdout]    |
[INFO] [stdout] 42 | struct_id!(MeshId);
[INFO] [stdout]    | ------------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `serde_support` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `struct_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ale_data::alevec::Key`
[INFO] [stdout]  --> crates/ale_resources/src/mesh.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ale_data::alevec::Key;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Zero`
[INFO] [stdout]  --> crates/ale_resources/src/mesh.rs:5:62
[INFO] [stdout]   |
[INFO] [stdout] 5 | use ale_math::{Array, InnerSpace, Matrix4, Vector2, Vector3, Zero};
[INFO] [stdout]   |                                                              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Stash`
[INFO] [stdout]   --> crates/ale_resources/src/mesh.rs:10:26
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::stash::{Load, Stash};
[INFO] [stdout]    |                          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> crates/ale_resources/src/mesh/sdf.rs:235:14
[INFO] [stdout]     |
[INFO] [stdout] 235 |   let size = (max - min);
[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] 235 -   let size = (max - min);
[INFO] [stdout] 235 +   let size = max - min ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `serde_support`
[INFO] [stdout]   --> crates/ale_resources/src/autoid.rs:19:16
[INFO] [stdout]    |
[INFO] [stdout] 19 |     #[cfg_attr(feature = "serde_support", derive(Serialize, Deserialize))]
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]    |
[INFO] [stdout]   ::: crates/ale_resources/src/texture.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | struct_id!(TextureId);
[INFO] [stdout]    | --------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `serde_support` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the macro `struct_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `flip_vertical_in_place` and `flip_vertical`
[INFO] [stdout]  --> crates/ale_resources/src/texture.rs:3:23
[INFO] [stdout]   |
[INFO] [stdout] 3 | use image::imageops::{flip_vertical, flip_vertical_in_place};
[INFO] [stdout]   |                       ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `serde_support`
[INFO] [stdout]   --> crates/ale_resources/src/autoid.rs:19:16
[INFO] [stdout]    |
[INFO] [stdout] 19 |     #[cfg_attr(feature = "serde_support", derive(Serialize, Deserialize))]
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]    |
[INFO] [stdout]   ::: crates/ale_resources/src/shader.rs:50:1
[INFO] [stdout]    |
[INFO] [stdout] 50 | struct_id!(ShaderId);
[INFO] [stdout]    | -------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `serde_support` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the macro `struct_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> crates/ale_resources/src/shader.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::any::TypeId`
[INFO] [stdout]  --> crates/ale_resources/src/resources.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::any::TypeId;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ale_data::alevec::AleVec`
[INFO] [stdout]  --> crates/ale_resources/src/resources.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ale_data::alevec::AleVec;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Shader`
[INFO] [stdout]  --> crates/ale_resources/src/resources.rs:8:21
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::shader::{Shader, ShaderStash};
[INFO] [stdout]   |                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::gltf`
[INFO] [stdout]  --> crates/ale_resources/src/gltf.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::gltf;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `serde_support`
[INFO] [stdout]   --> crates/ale_resources/src/autoid.rs:19:16
[INFO] [stdout]    |
[INFO] [stdout] 19 |     #[cfg_attr(feature = "serde_support", derive(Serialize, Deserialize))]
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]    |
[INFO] [stdout]   ::: crates/ale_resources/src/mesh.rs:42:1
[INFO] [stdout]    |
[INFO] [stdout] 42 | struct_id!(MeshId);
[INFO] [stdout]    | ------------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `serde_support` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `struct_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ale_data::alevec::Key`
[INFO] [stdout]  --> crates/ale_resources/src/mesh.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ale_data::alevec::Key;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Stash`
[INFO] [stdout]   --> crates/ale_resources/src/mesh.rs:10:26
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::stash::{Load, Stash};
[INFO] [stdout]    |                          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> crates/ale_resources/src/mesh/sdf.rs:235:14
[INFO] [stdout]     |
[INFO] [stdout] 235 |   let size = (max - min);
[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] 235 -   let size = (max - min);
[INFO] [stdout] 235 +   let size = max - min ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `approx::relative_eq`
[INFO] [stdout]    --> crates/ale_resources/src/mesh.rs:306:7
[INFO] [stdout]     |
[INFO] [stdout] 306 |   use approx::relative_eq;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `approx::relative_eq`
[INFO] [stdout]    --> crates/ale_resources/src/mesh.rs:371:7
[INFO] [stdout]     |
[INFO] [stdout] 371 |   use approx::relative_eq;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `approx::relative_eq`
[INFO] [stdout]    --> crates/ale_resources/src/mesh.rs:444:7
[INFO] [stdout]     |
[INFO] [stdout] 444 |   use approx::relative_eq;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `serde_support`
[INFO] [stdout]   --> crates/ale_resources/src/autoid.rs:19:16
[INFO] [stdout]    |
[INFO] [stdout] 19 |     #[cfg_attr(feature = "serde_support", derive(Serialize, Deserialize))]
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]    |
[INFO] [stdout]   ::: crates/ale_resources/src/texture.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | struct_id!(TextureId);
[INFO] [stdout]    | --------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `serde_support` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the macro `struct_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `flip_vertical_in_place` and `flip_vertical`
[INFO] [stdout]  --> crates/ale_resources/src/texture.rs:3:23
[INFO] [stdout]   |
[INFO] [stdout] 3 | use image::imageops::{flip_vertical, flip_vertical_in_place};
[INFO] [stdout]   |                       ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `serde_support`
[INFO] [stdout]   --> crates/ale_resources/src/autoid.rs:19:16
[INFO] [stdout]    |
[INFO] [stdout] 19 |     #[cfg_attr(feature = "serde_support", derive(Serialize, Deserialize))]
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]    |
[INFO] [stdout]   ::: crates/ale_resources/src/shader.rs:50:1
[INFO] [stdout]    |
[INFO] [stdout] 50 | struct_id!(ShaderId);
[INFO] [stdout]    | -------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `serde_support` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the macro `struct_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> crates/ale_resources/src/shader.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::any::TypeId`
[INFO] [stdout]  --> crates/ale_resources/src/resources.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::any::TypeId;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ale_data::alevec::AleVec`
[INFO] [stdout]  --> crates/ale_resources/src/resources.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ale_data::alevec::AleVec;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Shader`
[INFO] [stdout]  --> crates/ale_resources/src/resources.rs:8:21
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::shader::{Shader, ShaderStash};
[INFO] [stdout]   |                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `matrix`
[INFO] [stdout]   --> crates/ale_resources/src/gltf.rs:20:42
[INFO] [stdout]    |
[INFO] [stdout] 20 |       ::gltf::scene::Transform::Matrix { matrix } => {
[INFO] [stdout]    |                                          ^^^^^^ help: try ignoring the field: `matrix: _`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/ale_resources/src/mesh/sdf.rs:48:7
[INFO] [stdout]    |
[INFO] [stdout] 48 |   let mut det = a00 * a11 - a01 * a01;
[INFO] [stdout]    |       ----^^^
[INFO] [stdout]    |       |
[INFO] [stdout]    |       help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/ale_resources/src/mesh/sdf.rs:127:9
[INFO] [stdout]     |
[INFO] [stdout] 127 |     let mut tmp0;
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/ale_resources/src/mesh/sdf.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 128 |     let mut tmp1;
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/ale_resources/src/mesh/sdf.rs:129:9
[INFO] [stdout]     |
[INFO] [stdout] 129 |     let mut numer;
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/ale_resources/src/mesh/sdf.rs:130:9
[INFO] [stdout]     |
[INFO] [stdout] 130 |     let mut denom;
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inner_start_time`
[INFO] [stdout]    --> crates/ale_resources/src/mesh/sdf.rs:243:9
[INFO] [stdout]     |
[INFO] [stdout] 243 |     let inner_start_time = Instant::now();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_inner_start_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> crates/ale_resources/src/shader.rs:95:11
[INFO] [stdout]    |
[INFO] [stdout] 95 |       Err(err) => None,
[INFO] [stdout]    |           ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VERTEX` is never used
[INFO] [stdout]   --> crates/ale_resources/src/mesh.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const VERTEX: &str = "position";
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NORMAL` is never used
[INFO] [stdout]   --> crates/ale_resources/src/mesh.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const NORMAL: &str = "normal";
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV` is never used
[INFO] [stdout]   --> crates/ale_resources/src/mesh.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const UV: &str = "uv";
[INFO] [stdout]    |       ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BARYCENTRIC` is never used
[INFO] [stdout]   --> crates/ale_resources/src/mesh.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const BARYCENTRIC: &str = "barycentric";
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `normal` and `uv` are never read
[INFO] [stdout]   --> crates/ale_resources/src/mesh.rs:37:3
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct Tri {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] 36 |   position: [Vector3<f32>; 3],
[INFO] [stdout] 37 |   normal: [Vector3<f32>; 3],
[INFO] [stdout]    |   ^^^^^^
[INFO] [stdout] 38 |   tri_normal: Vector3<f32>,
[INFO] [stdout] 39 |   uv: [Vector2<f32>; 3],
[INFO] [stdout]    |   ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dot2` is never used
[INFO] [stdout]   --> crates/ale_resources/src/mesh/sdf.rs:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn dot2(a: Vector3<f32>) -> f32 {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cross` is never used
[INFO] [stdout]   --> crates/ale_resources/src/mesh/sdf.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn cross(a: Vector3<f32>, b: Vector3<f32>) -> Vector3<f32> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> crates/ale_resources/src/font.rs:63:7
[INFO] [stdout]    |
[INFO] [stdout] 63 |       font_file.read_to_end(&mut font_data);
[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] 63 |       let _ = font_file.read_to_end(&mut font_data);
[INFO] [stdout]    |       +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> crates/ale_resources/src/mesh/iter.rs:49:41
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub fn ale_mesh_triangle_iter_new(mesh: &Mesh) -> MeshTriangleIterator {
[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] 49 | pub fn ale_mesh_triangle_iter_new(mesh: &Mesh) -> MeshTriangleIterator<'_> {
[INFO] [stdout]    |                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> crates/ale_resources/src/stash.rs:55:17
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub fn iter(&self) -> AleVecIter<Resource> {
[INFO] [stdout]    |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub fn iter(&self) -> AleVecIter<'_, Resource> {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> crates/ale_resources/src/stash.rs:59:21
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub fn iter_mut(&mut self) -> AleVecIterMut<Resource> {
[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] 59 |     pub fn iter_mut(&mut self) -> AleVecIterMut<'_, Resource> {
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking ale_opengl v0.1.0 (/opt/rustwide/workdir/crates/ale_opengl)
[INFO] [stderr]     Checking ale_raymarch v0.1.0 (/opt/rustwide/workdir/crates/ale_raymarch)
[INFO] [stdout] warning: unused import: `clamp_vec3`
[INFO] [stdout]  --> crates/ale_raymarch/src/lib.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | use ale_math::{clamp_vec3, InnerSpace};
[INFO] [stdout]   |                ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> crates/ale_raymarch/src/lib.rs:39:20
[INFO] [stdout]    |
[INFO] [stdout] 39 |   let right_step = (camera.right_dir() / x as f32 * aspect_ratio);
[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] 39 -   let right_step = (camera.right_dir() / x as f32 * aspect_ratio);
[INFO] [stdout] 39 +   let right_step = camera.right_dir() / x as f32 * aspect_ratio ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/ale_raymarch/src/lib.rs:44:7
[INFO] [stdout]    |
[INFO] [stdout] 44 |   let mut debug = vec![];
[INFO] [stdout]    |       ----^^^^^
[INFO] [stdout]    |       |
[INFO] [stdout]    |       help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `iter`
[INFO] [stdout]   --> crates/ale_raymarch/src/lib.rs:51:11
[INFO] [stdout]    |
[INFO] [stdout] 51 |       for iter in 0..5 {
[INFO] [stdout]    |           ^^^^ help: if this is intentional, prefix it with an underscore: `_iter`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `curr_pos` is never read
[INFO] [stdout]   --> crates/ale_raymarch/src/lib.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |         curr_pos = ale_ray_position_get(&ray, min_dist);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `matrix`
[INFO] [stdout]   --> crates/ale_resources/src/gltf.rs:20:42
[INFO] [stdout]    |
[INFO] [stdout] 20 |       ::gltf::scene::Transform::Matrix { matrix } => {
[INFO] [stdout]    |                                          ^^^^^^ help: try ignoring the field: `matrix: _`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> crates/ale_raymarch/src/lib.rs:55:34
[INFO] [stdout]    |
[INFO] [stdout] 55 |           let mut t = **transform.clone();
[INFO] [stdout]    |                                  ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `AleTransform` does not implement `Clone`, so calling `clone` on `&AleTransform` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 55 -           let mut t = **transform.clone();
[INFO] [stdout] 55 +           let mut t = **transform;
[INFO] [stdout]    |
[INFO] [stdout] help: if you meant to clone `AleTransform`, implement `Clone` for it
[INFO] [stdout]   --> crates/ale_math/src/transform.rs:5:1
[INFO] [stdout]    |
[INFO] [stdout]  5 + #[derive(Clone)]
[INFO] [stdout]  6 | pub struct AleTransform {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/ale_resources/src/mesh/sdf.rs:48:7
[INFO] [stdout]    |
[INFO] [stdout] 48 |   let mut det = a00 * a11 - a01 * a01;
[INFO] [stdout]    |       ----^^^
[INFO] [stdout]    |       |
[INFO] [stdout]    |       help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/ale_resources/src/mesh/sdf.rs:127:9
[INFO] [stdout]     |
[INFO] [stdout] 127 |     let mut tmp0;
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/ale_resources/src/mesh/sdf.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 128 |     let mut tmp1;
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/ale_resources/src/mesh/sdf.rs:129:9
[INFO] [stdout]     |
[INFO] [stdout] 129 |     let mut numer;
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/ale_resources/src/mesh/sdf.rs:130:9
[INFO] [stdout]     |
[INFO] [stdout] 130 |     let mut denom;
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `clamp_vec3`
[INFO] [stdout]  --> crates/ale_raymarch/src/lib.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | use ale_math::{clamp_vec3, InnerSpace};
[INFO] [stdout]   |                ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> crates/ale_raymarch/src/lib.rs:39:20
[INFO] [stdout]    |
[INFO] [stdout] 39 |   let right_step = (camera.right_dir() / x as f32 * aspect_ratio);
[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] 39 -   let right_step = (camera.right_dir() / x as f32 * aspect_ratio);
[INFO] [stdout] 39 +   let right_step = camera.right_dir() / x as f32 * aspect_ratio ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inner_start_time`
[INFO] [stdout]    --> crates/ale_resources/src/mesh/sdf.rs:243:9
[INFO] [stdout]     |
[INFO] [stdout] 243 |     let inner_start_time = Instant::now();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_inner_start_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> crates/ale_resources/src/texture.rs:175:7
[INFO] [stdout]     |
[INFO] [stdout] 175 |   let t = Texture::new(TexturePixel::RgbF32(k), 3, 2, 3);
[INFO] [stdout]     |       ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> crates/ale_resources/src/shader.rs:95:11
[INFO] [stdout]    |
[INFO] [stdout] 95 |       Err(err) => None,
[INFO] [stdout]    |           ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VERTEX` is never used
[INFO] [stdout]   --> crates/ale_resources/src/mesh.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const VERTEX: &str = "position";
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NORMAL` is never used
[INFO] [stdout]   --> crates/ale_resources/src/mesh.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const NORMAL: &str = "normal";
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV` is never used
[INFO] [stdout]   --> crates/ale_resources/src/mesh.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const UV: &str = "uv";
[INFO] [stdout]    |       ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BARYCENTRIC` is never used
[INFO] [stdout]   --> crates/ale_resources/src/mesh.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const BARYCENTRIC: &str = "barycentric";
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dot2` is never used
[INFO] [stdout]   --> crates/ale_resources/src/mesh/sdf.rs:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn dot2(a: Vector3<f32>) -> f32 {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cross` is never used
[INFO] [stdout]   --> crates/ale_resources/src/mesh/sdf.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn cross(a: Vector3<f32>, b: Vector3<f32>) -> Vector3<f32> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> crates/ale_resources/src/font.rs:63:7
[INFO] [stdout]    |
[INFO] [stdout] 63 |       font_file.read_to_end(&mut font_data);
[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] 63 |       let _ = font_file.read_to_end(&mut font_data);
[INFO] [stdout]    |       +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> crates/ale_resources/src/mesh/iter.rs:49:41
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub fn ale_mesh_triangle_iter_new(mesh: &Mesh) -> MeshTriangleIterator {
[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] 49 | pub fn ale_mesh_triangle_iter_new(mesh: &Mesh) -> MeshTriangleIterator<'_> {
[INFO] [stdout]    |                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> crates/ale_resources/src/stash.rs:55:17
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub fn iter(&self) -> AleVecIter<Resource> {
[INFO] [stdout]    |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub fn iter(&self) -> AleVecIter<'_, Resource> {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> crates/ale_resources/src/stash.rs:59:21
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub fn iter_mut(&mut self) -> AleVecIterMut<Resource> {
[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] 59 |     pub fn iter_mut(&mut self) -> AleVecIterMut<'_, Resource> {
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/ale_raymarch/src/lib.rs:44:7
[INFO] [stdout]    |
[INFO] [stdout] 44 |   let mut debug = vec![];
[INFO] [stdout]    |       ----^^^^^
[INFO] [stdout]    |       |
[INFO] [stdout]    |       help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `iter`
[INFO] [stdout]   --> crates/ale_raymarch/src/lib.rs:51:11
[INFO] [stdout]    |
[INFO] [stdout] 51 |       for iter in 0..5 {
[INFO] [stdout]    |           ^^^^ help: if this is intentional, prefix it with an underscore: `_iter`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `curr_pos` is never read
[INFO] [stdout]   --> crates/ale_raymarch/src/lib.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |         curr_pos = ale_ray_position_get(&ray, min_dist);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> crates/ale_raymarch/src/lib.rs:55:34
[INFO] [stdout]    |
[INFO] [stdout] 55 |           let mut t = **transform.clone();
[INFO] [stdout]    |                                  ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `AleTransform` does not implement `Clone`, so calling `clone` on `&AleTransform` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 55 -           let mut t = **transform.clone();
[INFO] [stdout] 55 +           let mut t = **transform;
[INFO] [stdout]    |
[INFO] [stdout] help: if you meant to clone `AleTransform`, implement `Clone` for it
[INFO] [stdout]   --> crates/ale_math/src/transform.rs:5:1
[INFO] [stdout]    |
[INFO] [stdout]  5 + #[derive(Clone)]
[INFO] [stdout]  6 | pub struct AleTransform {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GLsizeiptr`
[INFO] [stdout]  --> crates/ale_opengl/src/debug/line.rs:6:26
[INFO] [stdout]   |
[INFO] [stdout] 6 | use gl::types::{GLfloat, GLsizeiptr};
[INFO] [stdout]   |                          ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `serde_support`
[INFO] [stdout]   --> crates/ale_opengl/src/old/cubemap.rs:24:1
[INFO] [stdout]    |
[INFO] [stdout] 24 | struct_id!(CubemapId);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = note: using a cfg inside a macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `struct_id` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `struct_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:264:15
[INFO] [stdout]     |
[INFO] [stdout] 264 |     let d_i = (i as f64 * dx);
[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] 264 -     let d_i = (i as f64 * dx);
[INFO] [stdout] 264 +     let d_i = i as f64 * dx;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::raw`
[INFO] [stdout]   --> crates/ale_opengl/src/renderer/sprite.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::raw;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::raw::print_error`
[INFO] [stdout]   --> crates/ale_opengl/src/renderer/sprite.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::raw::print_error;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::raw`
[INFO] [stdout]   --> crates/ale_opengl/src/renderer/text.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::raw;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TextureId`
[INFO] [stdout]  --> crates/ale_opengl/src/texture.rs:4:39
[INFO] [stdout]   |
[INFO] [stdout] 4 | use ale_resources::texture::{Texture, TextureId};
[INFO] [stdout]   |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> crates/ale_opengl/src/texture.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GLsizeiptr`
[INFO] [stdout]  --> crates/ale_opengl/src/debug/line.rs:6:26
[INFO] [stdout]   |
[INFO] [stdout] 6 | use gl::types::{GLfloat, GLsizeiptr};
[INFO] [stdout]   |                          ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `serde_support`
[INFO] [stdout]   --> crates/ale_opengl/src/old/cubemap.rs:24:1
[INFO] [stdout]    |
[INFO] [stdout] 24 | struct_id!(CubemapId);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = note: using a cfg inside a macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `struct_id` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `struct_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:264:15
[INFO] [stdout]     |
[INFO] [stdout] 264 |     let d_i = (i as f64 * dx);
[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] 264 -     let d_i = (i as f64 * dx);
[INFO] [stdout] 264 +     let d_i = i as f64 * dx;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::raw`
[INFO] [stdout]   --> crates/ale_opengl/src/renderer/sprite.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::raw;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::raw::print_error`
[INFO] [stdout]   --> crates/ale_opengl/src/renderer/sprite.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::raw::print_error;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::raw`
[INFO] [stdout]   --> crates/ale_opengl/src/renderer/text.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::raw;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TextureId`
[INFO] [stdout]  --> crates/ale_opengl/src/texture.rs:4:39
[INFO] [stdout]   |
[INFO] [stdout] 4 | use ale_resources::texture::{Texture, TextureId};
[INFO] [stdout]   |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> crates/ale_opengl/src/texture.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Array`
[INFO] [stdout]  --> crates/ale_opengl/src/wire.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | use ale_math::{Array, Matrix, Transform};
[INFO] [stdout]   |                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/ale_opengl/src/debug/line.rs:150:7
[INFO] [stdout]     |
[INFO] [stdout] 150 |   let mut draw_size = BUFFER_SIZE as u32;
[INFO] [stdout]     |       ----^^^^^^^^^
[INFO] [stdout]     |       |
[INFO] [stdout]     |       help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/ale_opengl/src/debug/line.rs:191:7
[INFO] [stdout]     |
[INFO] [stdout] 191 |   let mut draw_size = BUFFER_SIZE as u32;
[INFO] [stdout]     |       ----^^^^^^^^^
[INFO] [stdout]     |       |
[INFO] [stdout]     |       help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> crates/ale_opengl/src/old/opengl.rs:452:9
[INFO] [stdout]     |
[INFO] [stdout] 452 |         _ => {}
[INFO] [stdout]     |         ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> crates/ale_opengl/src/old/opengl.rs:452:9
[INFO] [stdout]     |
[INFO] [stdout] 250 | /         Renderable::StaticMesh {
[INFO] [stdout] 251 | |           shader_id,
[INFO] [stdout] 252 | |           mesh_id,
[INFO] [stdout] 253 | |           texture_ids,
[INFO] [stdout] 254 | |           transform,
[INFO] [stdout] 255 | |           shader_variables,
[INFO] [stdout] 256 | |         } => {
[INFO] [stdout]     | |_________- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 310 | /         Renderable::EquirectCubemapProjection {
[INFO] [stdout] 311 | |           equirect_shader_id,
[INFO] [stdout] 312 | |           cube_mesh_id,
[INFO] [stdout] 313 | |           projection_target,
[INFO] [stdout] ...   |
[INFO] [stdout] 317 | |           shader_variables: _,
[INFO] [stdout] 318 | |         } => {
[INFO] [stdout]     | |_________- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 382 | /         Renderable::Skybox {
[INFO] [stdout] 383 | |           skybox_shader_id,
[INFO] [stdout] 384 | |           cube_mesh_id,
[INFO] [stdout] 385 | |           rendered_cubemap_id,
[INFO] [stdout] 386 | |           shader_variables: _,
[INFO] [stdout] 387 | |         } => {
[INFO] [stdout]     | |_________- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 452 |           _ => {}
[INFO] [stdout]     |           ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/ale_opengl/src/old/sky.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let mut use_half_precision = true;
[INFO] [stdout]    |         ----^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k_sun_solid_angle`
[INFO] [stdout]   --> crates/ale_opengl/src/old/sky.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let k_sun_solid_angle = k_pi * k_sun_angular_radius * k_sun_angular_radius;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_k_sun_solid_angle`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k_length_unit_in_meters`
[INFO] [stdout]   --> crates/ale_opengl/src/old/sky.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |     let k_length_unit_in_meters = 1000.0;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_k_length_unit_in_meters`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k_bottom_radius`
[INFO] [stdout]   --> crates/ale_opengl/src/old/sky.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 67 |     let k_bottom_radius = 6360000.0;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_k_bottom_radius`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k_top_radius`
[INFO] [stdout]   --> crates/ale_opengl/src/old/sky.rs:68:9
[INFO] [stdout]    |
[INFO] [stdout] 68 |     let k_top_radius = 6420000.0;
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_k_top_radius`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k_mie_phase_function_g`
[INFO] [stdout]   --> crates/ale_opengl/src/old/sky.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 75 |     let k_mie_phase_function_g = 0.8;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_k_mie_phase_function_g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_sun_zenith_angle`
[INFO] [stdout]   --> crates/ale_opengl/src/old/sky.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |     let max_sun_zenith_angle = if use_half_precision { 102.0 } else { 180.0 } / 180.0 * k_pi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_sun_zenith_angle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rayleigh_layer`
[INFO] [stdout]   --> crates/ale_opengl/src/old/sky.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |     let rayleigh_layer = DensityProfileLayer {
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rayleigh_layer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mie_layer`
[INFO] [stdout]   --> crates/ale_opengl/src/old/sky.rs:87:9
[INFO] [stdout]    |
[INFO] [stdout] 87 |     let mie_layer = DensityProfileLayer {
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mie_layer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:310:7
[INFO] [stdout]     |
[INFO] [stdout] 310 |   let r = 10.0;
[INFO] [stdout]     |       ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opengl_raymarch_context`
[INFO] [stdout]   --> crates/ale_opengl/src/raymarch.rs:27:35
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn ale_opengl_raymarch_render(opengl_raymarch_context: &OpenGLRaymarchContext) {}
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_opengl_raymarch_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rbo`
[INFO] [stdout]   --> crates/ale_opengl/src/render_frame.rs:20:15
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let (fbo, rbo, texture) = create_framebuffer_texcolor_rbodepth(screen_size.x, screen_size.y).unwrap();
[INFO] [stdout]    |               ^^^ help: if this is intentional, prefix it with an underscore: `_rbo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> crates/ale_opengl/src/renderer/text.rs:74:9
[INFO] [stdout]    |
[INFO] [stdout] 74 |         unsafe { OpenGLTexture::new(&font_texture.texture).unwrap() }
[INFO] [stdout]    |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Array`
[INFO] [stdout]  --> crates/ale_opengl/src/wire.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | use ale_math::{Array, Matrix, Transform};
[INFO] [stdout]   |                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]   --> crates/ale_opengl/src/texture.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 57 |       let (r, g, b, a) = color.get_rgba();
[INFO] [stdout]    |            ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `g`
[INFO] [stdout]   --> crates/ale_opengl/src/texture.rs:57:15
[INFO] [stdout]    |
[INFO] [stdout] 57 |       let (r, g, b, a) = color.get_rgba();
[INFO] [stdout]    |               ^ help: if this is intentional, prefix it with an underscore: `_g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> crates/ale_opengl/src/texture.rs:57:18
[INFO] [stdout]    |
[INFO] [stdout] 57 |       let (r, g, b, a) = color.get_rgba();
[INFO] [stdout]    |                  ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> crates/ale_opengl/src/texture.rs:57:21
[INFO] [stdout]    |
[INFO] [stdout] 57 |       let (r, g, b, a) = color.get_rgba();
[INFO] [stdout]    |                     ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/ale_opengl/src/wire.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 68 |       for (mut transform, mesh) in meshes {
[INFO] [stdout]    |            ----^^^^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `line_draw_size` and `point_draw_size` are never read
[INFO] [stdout]   --> crates/ale_opengl/src/debug/line.rs:25:3
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct OpenGLDebugContext {
[INFO] [stdout]    |            ------------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 25 |   line_draw_size: u32,
[INFO] [stdout]    |   ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |   point_draw_size: u32,
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AtmosphereParameters` is never constructed
[INFO] [stdout]  --> crates/ale_opengl/src/old/sky.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | struct AtmosphereParameters {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BrunetonSky` is never constructed
[INFO] [stdout]   --> crates/ale_opengl/src/old/sky.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | struct BrunetonSky {}
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `create_texture` are never used
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:35:10
[INFO] [stdout]     |
[INFO] [stdout]  34 | impl BrunetonSky {
[INFO] [stdout]     | ---------------- associated functions in this implementation
[INFO] [stdout]  35 |   pub fn new() -> BrunetonSky {
[INFO] [stdout]     |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |   pub fn create_texture() {}
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DensityProfileLayer` is never constructed
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | struct DensityProfileLayer {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DensityProfile` is never constructed
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:155:8
[INFO] [stdout]     |
[INFO] [stdout] 155 | struct DensityProfile {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Model` is never constructed
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:159:8
[INFO] [stdout]     |
[INFO] [stdout] 159 | struct Model {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clamp` is never used
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:186:4
[INFO] [stdout]     |
[INFO] [stdout] 186 | fn clamp(val: f64, min: f64, max: f64) -> f64 {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clamp_cosine` is never used
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:196:4
[INFO] [stdout]     |
[INFO] [stdout] 196 | fn clamp_cosine(mu: f64) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clamp_distance` is never used
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:200:4
[INFO] [stdout]     |
[INFO] [stdout] 200 | fn clamp_distance(d: f64) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clamp_radius` is never used
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:204:4
[INFO] [stdout]     |
[INFO] [stdout] 204 | fn clamp_radius(atmosphere: &AtmosphereParameters, r: f64) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `safe_sqrt` is never used
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:208:4
[INFO] [stdout]     |
[INFO] [stdout] 208 | fn safe_sqrt(a: f64) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exp` is never used
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:212:4
[INFO] [stdout]     |
[INFO] [stdout] 212 | fn exp(a: Vector3<f64>) -> Vector3<f64> {
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distance_to_top_atmosphere_boundary` is never used
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:216:4
[INFO] [stdout]     |
[INFO] [stdout] 216 | fn distance_to_top_atmosphere_boundary(atmosphere: &AtmosphereParameters, r: f64, mu: f64) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distance_to_bottom_atmosphere_boundary` is never used
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:223:4
[INFO] [stdout]     |
[INFO] [stdout] 223 | fn distance_to_bottom_atmosphere_boundary(atmosphere: &AtmosphereParameters, r: f64, mu: f64) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ray_intersect_ground` is never used
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:230:4
[INFO] [stdout]     |
[INFO] [stdout] 230 | fn ray_intersect_ground(atmosphere: &AtmosphereParameters, r: f64, mu: f64) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_layer_density` is never used
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:236:4
[INFO] [stdout]     |
[INFO] [stdout] 236 | fn get_layer_density(layer: &DensityProfileLayer, altitude: f64) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_profile_density` is never used
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:242:4
[INFO] [stdout]     |
[INFO] [stdout] 242 | fn get_profile_density(profile: &DensityProfile, altitude: f64) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_optical_length_to_top_atmosphere_boundary` is never used
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:250:4
[INFO] [stdout]     |
[INFO] [stdout] 250 | fn compute_optical_length_to_top_atmosphere_boundary(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_transmittance_to_top_atmosphere_boundary` is never used
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:281:4
[INFO] [stdout]     |
[INFO] [stdout] 281 | fn compute_transmittance_to_top_atmosphere_boundary(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_unit_range_from_texture_coord` is never used
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:303:4
[INFO] [stdout]     |
[INFO] [stdout] 303 | fn get_unit_range_from_texture_coord(u: f64, texture_size: i64) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `raymarch_shader` and `plane_mesh` are never read
[INFO] [stdout]  --> crates/ale_opengl/src/raymarch.rs:7:3
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct OpenGLRaymarchContext {
[INFO] [stdout]   |            --------------------- fields in this struct
[INFO] [stdout] 7 |   raymarch_shader: OpenGLShader,
[INFO] [stdout]   |   ^^^^^^^^^^^^^^^
[INFO] [stdout] 8 |
[INFO] [stdout] 9 |   plane_mesh: OpenGLMesh,
[INFO] [stdout]   |   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `renderbuffer` is never read
[INFO] [stdout]  --> crates/ale_opengl/src/renderer/renderframe.rs:4:3
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Viewport {
[INFO] [stdout]   |            -------- field in this struct
[INFO] [stdout] 4 |   renderbuffer: OpenGLRenderbufferId,
[INFO] [stdout]   |   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `framebuffer` is never read
[INFO] [stdout]   --> crates/ale_opengl/src/renderer/renderframe.rs:12:3
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct RenderFrame {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 12 |   framebuffer: OpenGLFramebufferId,
[INFO] [stdout]    |   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `rect` is never read
[INFO] [stdout]  --> crates/ale_opengl/src/viewport.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Viewport {
[INFO] [stdout]   |            -------- field in this struct
[INFO] [stdout] 4 |     rect : Rect
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/ale_opengl/src/debug/line.rs:150:7
[INFO] [stdout]     |
[INFO] [stdout] 150 |   let mut draw_size = BUFFER_SIZE as u32;
[INFO] [stdout]     |       ----^^^^^^^^^
[INFO] [stdout]     |       |
[INFO] [stdout]     |       help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/ale_opengl/src/debug/line.rs:191:7
[INFO] [stdout]     |
[INFO] [stdout] 191 |   let mut draw_size = BUFFER_SIZE as u32;
[INFO] [stdout]     |       ----^^^^^^^^^
[INFO] [stdout]     |       |
[INFO] [stdout]     |       help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> crates/ale_opengl/src/raw.rs:66:66
[INFO] [stdout]    |
[INFO] [stdout] 66 |   let location = gl::GetUniformLocation(shader, CString::new(name.clone()).unwrap().as_ptr() as *const i8);
[INFO] [stdout]    |                                                                  ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> crates/ale_opengl/src/raw.rs:71:66
[INFO] [stdout]    |
[INFO] [stdout] 71 |   let location = gl::GetUniformLocation(shader, CString::new(name.clone()).unwrap().as_ptr() as *const i8);
[INFO] [stdout]    |                                                                  ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> crates/ale_opengl/src/raw.rs:76:66
[INFO] [stdout]    |
[INFO] [stdout] 76 |   let location = gl::GetUniformLocation(shader, CString::new(name.clone()).unwrap().as_ptr() as *const i8);
[INFO] [stdout]    |                                                                  ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> crates/ale_opengl/src/raw.rs:81:66
[INFO] [stdout]    |
[INFO] [stdout] 81 |   let location = gl::GetUniformLocation(shader, CString::new(name.clone()).unwrap().as_ptr() as *const i8);
[INFO] [stdout]    |                                                                  ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> crates/ale_opengl/src/old/opengl.rs:452:9
[INFO] [stdout]     |
[INFO] [stdout] 452 |         _ => {}
[INFO] [stdout]     |         ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> crates/ale_opengl/src/old/opengl.rs:452:9
[INFO] [stdout]     |
[INFO] [stdout] 250 | /         Renderable::StaticMesh {
[INFO] [stdout] 251 | |           shader_id,
[INFO] [stdout] 252 | |           mesh_id,
[INFO] [stdout] 253 | |           texture_ids,
[INFO] [stdout] 254 | |           transform,
[INFO] [stdout] 255 | |           shader_variables,
[INFO] [stdout] 256 | |         } => {
[INFO] [stdout]     | |_________- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 310 | /         Renderable::EquirectCubemapProjection {
[INFO] [stdout] 311 | |           equirect_shader_id,
[INFO] [stdout] 312 | |           cube_mesh_id,
[INFO] [stdout] 313 | |           projection_target,
[INFO] [stdout] ...   |
[INFO] [stdout] 317 | |           shader_variables: _,
[INFO] [stdout] 318 | |         } => {
[INFO] [stdout]     | |_________- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 382 | /         Renderable::Skybox {
[INFO] [stdout] 383 | |           skybox_shader_id,
[INFO] [stdout] 384 | |           cube_mesh_id,
[INFO] [stdout] 385 | |           rendered_cubemap_id,
[INFO] [stdout] 386 | |           shader_variables: _,
[INFO] [stdout] 387 | |         } => {
[INFO] [stdout]     | |_________- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 452 |           _ => {}
[INFO] [stdout]     |           ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/ale_opengl/src/old/sky.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let mut use_half_precision = true;
[INFO] [stdout]    |         ----^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k_sun_solid_angle`
[INFO] [stdout]   --> crates/ale_opengl/src/old/sky.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let k_sun_solid_angle = k_pi * k_sun_angular_radius * k_sun_angular_radius;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_k_sun_solid_angle`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k_length_unit_in_meters`
[INFO] [stdout]   --> crates/ale_opengl/src/old/sky.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |     let k_length_unit_in_meters = 1000.0;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_k_length_unit_in_meters`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k_bottom_radius`
[INFO] [stdout]   --> crates/ale_opengl/src/old/sky.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 67 |     let k_bottom_radius = 6360000.0;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_k_bottom_radius`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k_top_radius`
[INFO] [stdout]   --> crates/ale_opengl/src/old/sky.rs:68:9
[INFO] [stdout]    |
[INFO] [stdout] 68 |     let k_top_radius = 6420000.0;
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_k_top_radius`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k_mie_phase_function_g`
[INFO] [stdout]   --> crates/ale_opengl/src/old/sky.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 75 |     let k_mie_phase_function_g = 0.8;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_k_mie_phase_function_g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_sun_zenith_angle`
[INFO] [stdout]   --> crates/ale_opengl/src/old/sky.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |     let max_sun_zenith_angle = if use_half_precision { 102.0 } else { 180.0 } / 180.0 * k_pi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_sun_zenith_angle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rayleigh_layer`
[INFO] [stdout]   --> crates/ale_opengl/src/old/sky.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |     let rayleigh_layer = DensityProfileLayer {
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rayleigh_layer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mie_layer`
[INFO] [stdout]   --> crates/ale_opengl/src/old/sky.rs:87:9
[INFO] [stdout]    |
[INFO] [stdout] 87 |     let mie_layer = DensityProfileLayer {
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mie_layer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opengl_raymarch_context`
[INFO] [stdout]   --> crates/ale_opengl/src/raymarch.rs:27:35
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn ale_opengl_raymarch_render(opengl_raymarch_context: &OpenGLRaymarchContext) {}
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_opengl_raymarch_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rbo`
[INFO] [stdout]   --> crates/ale_opengl/src/render_frame.rs:20:15
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let (fbo, rbo, texture) = create_framebuffer_texcolor_rbodepth(screen_size.x, screen_size.y).unwrap();
[INFO] [stdout]    |               ^^^ help: if this is intentional, prefix it with an underscore: `_rbo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> crates/ale_opengl/src/renderer/text.rs:74:9
[INFO] [stdout]    |
[INFO] [stdout] 74 |         unsafe { OpenGLTexture::new(&font_texture.texture).unwrap() }
[INFO] [stdout]    |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]   --> crates/ale_opengl/src/texture.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 57 |       let (r, g, b, a) = color.get_rgba();
[INFO] [stdout]    |            ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `g`
[INFO] [stdout]   --> crates/ale_opengl/src/texture.rs:57:15
[INFO] [stdout]    |
[INFO] [stdout] 57 |       let (r, g, b, a) = color.get_rgba();
[INFO] [stdout]    |               ^ help: if this is intentional, prefix it with an underscore: `_g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> crates/ale_opengl/src/texture.rs:57:18
[INFO] [stdout]    |
[INFO] [stdout] 57 |       let (r, g, b, a) = color.get_rgba();
[INFO] [stdout]    |                  ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> crates/ale_opengl/src/texture.rs:57:21
[INFO] [stdout]    |
[INFO] [stdout] 57 |       let (r, g, b, a) = color.get_rgba();
[INFO] [stdout]    |                     ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/ale_opengl/src/wire.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 68 |       for (mut transform, mesh) in meshes {
[INFO] [stdout]    |            ----^^^^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `line_draw_size` and `point_draw_size` are never read
[INFO] [stdout]   --> crates/ale_opengl/src/debug/line.rs:25:3
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct OpenGLDebugContext {
[INFO] [stdout]    |            ------------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 25 |   line_draw_size: u32,
[INFO] [stdout]    |   ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |   point_draw_size: u32,
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AtmosphereParameters` is never constructed
[INFO] [stdout]  --> crates/ale_opengl/src/old/sky.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | struct AtmosphereParameters {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BrunetonSky` is never constructed
[INFO] [stdout]   --> crates/ale_opengl/src/old/sky.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | struct BrunetonSky {}
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `create_texture` are never used
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:35:10
[INFO] [stdout]     |
[INFO] [stdout]  34 | impl BrunetonSky {
[INFO] [stdout]     | ---------------- associated functions in this implementation
[INFO] [stdout]  35 |   pub fn new() -> BrunetonSky {
[INFO] [stdout]     |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |   pub fn create_texture() {}
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DensityProfileLayer` is never constructed
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | struct DensityProfileLayer {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DensityProfile` is never constructed
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:155:8
[INFO] [stdout]     |
[INFO] [stdout] 155 | struct DensityProfile {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Model` is never constructed
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:159:8
[INFO] [stdout]     |
[INFO] [stdout] 159 | struct Model {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clamp` is never used
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:186:4
[INFO] [stdout]     |
[INFO] [stdout] 186 | fn clamp(val: f64, min: f64, max: f64) -> f64 {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clamp_cosine` is never used
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:196:4
[INFO] [stdout]     |
[INFO] [stdout] 196 | fn clamp_cosine(mu: f64) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clamp_distance` is never used
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:200:4
[INFO] [stdout]     |
[INFO] [stdout] 200 | fn clamp_distance(d: f64) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clamp_radius` is never used
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:204:4
[INFO] [stdout]     |
[INFO] [stdout] 204 | fn clamp_radius(atmosphere: &AtmosphereParameters, r: f64) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `safe_sqrt` is never used
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:208:4
[INFO] [stdout]     |
[INFO] [stdout] 208 | fn safe_sqrt(a: f64) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exp` is never used
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:212:4
[INFO] [stdout]     |
[INFO] [stdout] 212 | fn exp(a: Vector3<f64>) -> Vector3<f64> {
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distance_to_top_atmosphere_boundary` is never used
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:216:4
[INFO] [stdout]     |
[INFO] [stdout] 216 | fn distance_to_top_atmosphere_boundary(atmosphere: &AtmosphereParameters, r: f64, mu: f64) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distance_to_bottom_atmosphere_boundary` is never used
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:223:4
[INFO] [stdout]     |
[INFO] [stdout] 223 | fn distance_to_bottom_atmosphere_boundary(atmosphere: &AtmosphereParameters, r: f64, mu: f64) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ray_intersect_ground` is never used
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:230:4
[INFO] [stdout]     |
[INFO] [stdout] 230 | fn ray_intersect_ground(atmosphere: &AtmosphereParameters, r: f64, mu: f64) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_layer_density` is never used
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:236:4
[INFO] [stdout]     |
[INFO] [stdout] 236 | fn get_layer_density(layer: &DensityProfileLayer, altitude: f64) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_profile_density` is never used
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:242:4
[INFO] [stdout]     |
[INFO] [stdout] 242 | fn get_profile_density(profile: &DensityProfile, altitude: f64) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_optical_length_to_top_atmosphere_boundary` is never used
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:250:4
[INFO] [stdout]     |
[INFO] [stdout] 250 | fn compute_optical_length_to_top_atmosphere_boundary(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_transmittance_to_top_atmosphere_boundary` is never used
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:281:4
[INFO] [stdout]     |
[INFO] [stdout] 281 | fn compute_transmittance_to_top_atmosphere_boundary(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_texture_coord_from_unit_range` is never used
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:299:4
[INFO] [stdout]     |
[INFO] [stdout] 299 | fn get_texture_coord_from_unit_range(x: f64, texture_size: i64) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_unit_range_from_texture_coord` is never used
[INFO] [stdout]    --> crates/ale_opengl/src/old/sky.rs:303:4
[INFO] [stdout]     |
[INFO] [stdout] 303 | fn get_unit_range_from_texture_coord(u: f64, texture_size: i64) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `raymarch_shader` and `plane_mesh` are never read
[INFO] [stdout]  --> crates/ale_opengl/src/raymarch.rs:7:3
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct OpenGLRaymarchContext {
[INFO] [stdout]   |            --------------------- fields in this struct
[INFO] [stdout] 7 |   raymarch_shader: OpenGLShader,
[INFO] [stdout]   |   ^^^^^^^^^^^^^^^
[INFO] [stdout] 8 |
[INFO] [stdout] 9 |   plane_mesh: OpenGLMesh,
[INFO] [stdout]   |   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `renderbuffer` is never read
[INFO] [stdout]  --> crates/ale_opengl/src/renderer/renderframe.rs:4:3
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Viewport {
[INFO] [stdout]   |            -------- field in this struct
[INFO] [stdout] 4 |   renderbuffer: OpenGLRenderbufferId,
[INFO] [stdout]   |   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `framebuffer` is never read
[INFO] [stdout]   --> crates/ale_opengl/src/renderer/renderframe.rs:12:3
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct RenderFrame {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 12 |   framebuffer: OpenGLFramebufferId,
[INFO] [stdout]    |   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `rect` is never read
[INFO] [stdout]  --> crates/ale_opengl/src/viewport.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Viewport {
[INFO] [stdout]   |            -------- field in this struct
[INFO] [stdout] 4 |     rect : Rect
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> crates/ale_opengl/src/raw.rs:66:66
[INFO] [stdout]    |
[INFO] [stdout] 66 |   let location = gl::GetUniformLocation(shader, CString::new(name.clone()).unwrap().as_ptr() as *const i8);
[INFO] [stdout]    |                                                                  ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> crates/ale_opengl/src/raw.rs:71:66
[INFO] [stdout]    |
[INFO] [stdout] 71 |   let location = gl::GetUniformLocation(shader, CString::new(name.clone()).unwrap().as_ptr() as *const i8);
[INFO] [stdout]    |                                                                  ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> crates/ale_opengl/src/raw.rs:76:66
[INFO] [stdout]    |
[INFO] [stdout] 76 |   let location = gl::GetUniformLocation(shader, CString::new(name.clone()).unwrap().as_ptr() as *const i8);
[INFO] [stdout]    |                                                                  ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> crates/ale_opengl/src/raw.rs:81:66
[INFO] [stdout]    |
[INFO] [stdout] 81 |   let location = gl::GetUniformLocation(shader, CString::new(name.clone()).unwrap().as_ptr() as *const i8);
[INFO] [stdout]    |                                                                  ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking ale_ui v0.1.0 (/opt/rustwide/workdir/crates/ale_ui)
[INFO] [stderr]     Checking ale_world v0.1.0 (/opt/rustwide/workdir/crates/ale_world)
[INFO] [stderr]     Checking ale_opengl_fxaa v0.1.0 (/opt/rustwide/workdir/crates/ale_opengl_fxaa)
[INFO] [stdout] warning: unused import: `ale_math::rect::Rect`
[INFO] [stdout]  --> crates/ale_ui/src/element.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use ale_math::rect::Rect;
[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: `ale_math::rect::Rect`
[INFO] [stdout]  --> crates/ale_ui/src/button.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ale_math::rect::Rect;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Matrix4`
[INFO] [stdout]  --> crates/ale_ui/src/button.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | use ale_math::{Matrix4, Vector2};
[INFO] [stdout]   |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ale_opengl::renderer::sprite::SpriteRenderer`
[INFO] [stdout]  --> crates/ale_ui/src/button.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use ale_opengl::renderer::sprite::SpriteRenderer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> crates/ale_ui/src/layout.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::any::TypeId`
[INFO] [stdout]  --> crates/ale_world/src/components.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::any::TypeId;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> crates/ale_world/src/components.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ale_camera::CameraRenderInfo`
[INFO] [stdout]  --> crates/ale_world/src/components.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ale_camera::CameraRenderInfo;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ale_opengl::renderer`
[INFO] [stdout]  --> crates/ale_world/src/components.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use ale_opengl::renderer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ale_data::alevec::Key`
[INFO] [stdout]  --> crates/ale_world/src/components.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use ale_data::alevec::Key;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::components`
[INFO] [stdout]  --> crates/ale_world/src/visitor.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::components;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::marker::PhantomData`
[INFO] [stdout]  --> crates/ale_world/src/event/stream.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::marker::PhantomData;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> crates/ale_world/src/event/stream.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ConsoleEvent`
[INFO] [stdout]  --> crates/ale_opengl_fxaa/src/lib.rs:1:94
[INFO] [stdout]   |
[INFO] [stdout] 1 | use ale_console::{ale_console_variable_event_handle, ale_console_variable_register, Console, ConsoleEvent};
[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::any::TypeId`
[INFO] [stdout]  --> crates/ale_world/src/components.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::any::TypeId;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> crates/ale_world/src/components.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ale_camera::CameraRenderInfo`
[INFO] [stdout]  --> crates/ale_world/src/components.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ale_camera::CameraRenderInfo;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ale_opengl::renderer`
[INFO] [stdout]  --> crates/ale_world/src/components.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use ale_opengl::renderer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ale_data::alevec::Key`
[INFO] [stdout]  --> crates/ale_world/src/components.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use ale_data::alevec::Key;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::components`
[INFO] [stdout]  --> crates/ale_world/src/visitor.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::components;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::marker::PhantomData`
[INFO] [stdout]  --> crates/ale_world/src/event/stream.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::marker::PhantomData;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> crates/ale_world/src/event/stream.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `txt`
[INFO] [stdout]   --> crates/ale_ui/src/element.rs:76:23
[INFO] [stdout]    |
[INFO] [stdout] 76 |         Element::Text(txt) => {}
[INFO] [stdout]    |                       ^^^ help: if this is intentional, prefix it with an underscore: `_txt`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `empty`
[INFO] [stdout]   --> crates/ale_ui/src/element.rs:77:24
[INFO] [stdout]    |
[INFO] [stdout] 77 |         Element::Empty(empty) => {}
[INFO] [stdout]    |                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_empty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `empty`
[INFO] [stdout]   --> crates/ale_ui/src/element.rs:98:24
[INFO] [stdout]    |
[INFO] [stdout] 98 |         Element::Empty(empty) => {
[INFO] [stdout]    |                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_empty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rel_x`
[INFO] [stdout]   --> crates/ale_ui/src/button.rs:57:9
[INFO] [stdout]    |
[INFO] [stdout] 57 |         rel_x,
[INFO] [stdout]    |         ^^^^^ help: try ignoring the field: `rel_x: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rel_y`
[INFO] [stdout]   --> crates/ale_ui/src/button.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |         rel_y,
[INFO] [stdout]    |         ^^^^^ help: try ignoring the field: `rel_y: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `modifier`
[INFO] [stdout]   --> crates/ale_ui/src/button.rs:70:40
[INFO] [stdout]    |
[INFO] [stdout] 70 |       Input::MouseButton(mbtn, action, modifier) => {
[INFO] [stdout]    |                                        ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_modifier`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/ale_ui/src/layout.rs:12:46
[INFO] [stdout]    |
[INFO] [stdout] 12 |   pub fn arrange(&mut self, parent: &Layout, mut childs: Vec<&mut Layout>) -> Result<(), LayoutError> {
[INFO] [stdout]    |                                              ----^^^^^^
[INFO] [stdout]    |                                              |
[INFO] [stdout]    |                                              help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `is_disable` is never read
[INFO] [stdout]   --> crates/ale_ui/src/button.rs:18:3
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Button {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 18 |   is_disable: bool,
[INFO] [stdout]    |   ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/ale_world/src/world.rs:52:27
[INFO] [stdout]    |
[INFO] [stdout] 52 |   pub fn spawn(&mut self, mut spawn_cmd: SpawnCommand) {
[INFO] [stdout]    |                           ----^^^^^^^^^
[INFO] [stdout]    |                           |
[INFO] [stdout]    |                           help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> crates/ale_ui/src/element.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 52 |     self.refresh_layout();
[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] 52 |     let _ = self.refresh_layout();
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/ale_world/src/world.rs:52:27
[INFO] [stdout]    |
[INFO] [stdout] 52 |   pub fn spawn(&mut self, mut spawn_cmd: SpawnCommand) {
[INFO] [stdout]    |                           ----^^^^^^^^^
[INFO] [stdout]    |                           |
[INFO] [stdout]    |                           help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `data`, `gen`, and `target_entity` are never read
[INFO] [stdout]   --> crates/ale_world/src/event/stream.rs:32:3
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct Holder<T: Sync> {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 32 |   data: Option<T>,
[INFO] [stdout]    |   ^^^^
[INFO] [stdout] 33 |   gen: usize,
[INFO] [stdout]    |   ^^^
[INFO] [stdout] 34 |   target_entity: HashSet<Id<Entity>>,
[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 `event_buffer`, `curr`, `gen`, and `reader_entity_id` are never read
[INFO] [stdout]   --> crates/ale_world/src/event/stream.rs:90:3
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub struct EventStreamReader<T: Sync> {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] 90 |   event_buffer: *const EventStreamBuffer<T>,
[INFO] [stdout]    |   ^^^^^^^^^^^^
[INFO] [stdout] 91 |   curr: usize,
[INFO] [stdout]    |   ^^^^
[INFO] [stdout] 92 |   gen: usize,
[INFO] [stdout]    |   ^^^
[INFO] [stdout] 93 |   reader_entity_id: Id<Entity>,
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `try_read` and `increment_index` are never used
[INFO] [stdout]    --> crates/ale_world/src/event/stream.rs:111:6
[INFO] [stdout]     |
[INFO] [stdout]  96 | impl<T: Sync> EventStreamReader<T> {
[INFO] [stdout]     | ---------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 111 |   fn try_read(&mut self) -> Option<&T> {
[INFO] [stdout]     |      ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |   fn increment_index(&mut self) {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ConsoleEvent`
[INFO] [stdout]  --> crates/ale_opengl_fxaa/src/lib.rs:1:94
[INFO] [stdout]   |
[INFO] [stdout] 1 | use ale_console::{ale_console_variable_event_handle, ale_console_variable_register, Console, ConsoleEvent};
[INFO] [stdout]   |                                                                                              ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> crates/ale_world/src/event/stream.rs:115:26
[INFO] [stdout]     |
[INFO] [stdout] 115 |         let holder_opt = (*self.event_buffer).inner.get(self.curr);
[INFO] [stdout]     |                          ^^-----------------^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            this raw pointer has type `*const EventStreamBuffer<T>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[Holder<T>]`
[INFO] [stdout]    --> crates/ale_world/src/event/stream.rs:115:26
[INFO] [stdout]     |
[INFO] [stdout] 115 |         let holder_opt = (*self.event_buffer).inner.get(self.curr);
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: method calls to `get` require a reference
[INFO] [stdout]    --> /rustc/48c9d93cf65d550d124c40108859fd993778c157/library/core/src/slice/mod.rs:572:4
[INFO] [stdout]     = note: `#[deny(dangerous_implicit_autorefs)]` on by default
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 115 |         let holder_opt = (&(*self.event_buffer).inner).get(self.curr);
[INFO] [stdout]     |                          ++                          +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `data`, `gen`, and `target_entity` are never read
[INFO] [stdout]   --> crates/ale_world/src/event/stream.rs:32:3
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct Holder<T: Sync> {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 32 |   data: Option<T>,
[INFO] [stdout]    |   ^^^^
[INFO] [stdout] 33 |   gen: usize,
[INFO] [stdout]    |   ^^^
[INFO] [stdout] 34 |   target_entity: HashSet<Id<Entity>>,
[INFO] [stdout]    |   ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking ale_window v0.1.0 (/opt/rustwide/workdir/crates/ale_window)
[INFO] [stdout] warning: fields `event_buffer`, `curr`, `gen`, and `reader_entity_id` are never read
[INFO] [stdout]   --> crates/ale_world/src/event/stream.rs:90:3
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub struct EventStreamReader<T: Sync> {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] 90 |   event_buffer: *const EventStreamBuffer<T>,
[INFO] [stdout]    |   ^^^^^^^^^^^^
[INFO] [stdout] 91 |   curr: usize,
[INFO] [stdout]    |   ^^^^
[INFO] [stdout] 92 |   gen: usize,
[INFO] [stdout]    |   ^^^
[INFO] [stdout] 93 |   reader_entity_id: Id<Entity>,
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `try_read` and `increment_index` are never used
[INFO] [stdout]    --> crates/ale_world/src/event/stream.rs:111:6
[INFO] [stdout]     |
[INFO] [stdout]  96 | impl<T: Sync> EventStreamReader<T> {
[INFO] [stdout]     | ---------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 111 |   fn try_read(&mut self) -> Option<&T> {
[INFO] [stdout]     |      ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |   fn increment_index(&mut self) {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ale_math::rect::Rect`
[INFO] [stdout]  --> crates/ale_ui/src/element.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use ale_math::rect::Rect;
[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: `ale_math::rect::Rect`
[INFO] [stdout]  --> crates/ale_ui/src/button.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ale_math::rect::Rect;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Matrix4`
[INFO] [stdout]  --> crates/ale_ui/src/button.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | use ale_math::{Matrix4, Vector2};
[INFO] [stdout]   |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ale_opengl::renderer::sprite::SpriteRenderer`
[INFO] [stdout]  --> crates/ale_ui/src/button.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use ale_opengl::renderer::sprite::SpriteRenderer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> crates/ale_ui/src/layout.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ale_world` (lib test) due to 1 previous error; 12 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> crates/ale_world/src/event/stream.rs:115:26
[INFO] [stdout]     |
[INFO] [stdout] 115 |         let holder_opt = (*self.event_buffer).inner.get(self.curr);
[INFO] [stdout]     |                          ^^-----------------^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            this raw pointer has type `*const EventStreamBuffer<T>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[Holder<T>]`
[INFO] [stdout]    --> crates/ale_world/src/event/stream.rs:115:26
[INFO] [stdout]     |
[INFO] [stdout] 115 |         let holder_opt = (*self.event_buffer).inner.get(self.curr);
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: method calls to `get` require a reference
[INFO] [stdout]    --> /rustc/48c9d93cf65d550d124c40108859fd993778c157/library/core/src/slice/mod.rs:572:4
[INFO] [stdout]     = note: `#[deny(dangerous_implicit_autorefs)]` on by default
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 115 |         let holder_opt = (&(*self.event_buffer).inner).get(self.curr);
[INFO] [stdout]     |                          ++                          +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ale_world` (lib) due to 1 previous error; 12 warnings emitted
[INFO] [stdout] warning: unused import: `ale_ui::panels::Panels`
[INFO] [stdout]  --> crates/ale_window/src/backend.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use ale_ui::panels::Panels;
[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: `glfw::ffi::GLFWcharfun`
[INFO] [stdout]  --> crates/ale_window/src/backend.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use glfw::ffi::GLFWcharfun;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> crates/ale_window/src/backend.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TargetMonitor`
[INFO] [stdout]  --> crates/ale_window/src/window.rs:1:38
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::display::{DisplaySetting, TargetMonitor};
[INFO] [stdout]   |                                      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ale_math::rect::Rect`
[INFO] [stdout]  --> crates/ale_window/src/window.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use ale_math::rect::Rect;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Zero`
[INFO] [stdout]  --> crates/ale_window/src/window.rs:8:25
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ale_math::{Vector2, Zero};
[INFO] [stdout]   |                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc` and `RwLock`
[INFO] [stdout]   --> crates/ale_window/src/window.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::sync::{Arc, RwLock};
[INFO] [stdout]    |                 ^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ale_ui::panels::Panels`
[INFO] [stdout]  --> crates/ale_window/src/backend.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use ale_ui::panels::Panels;
[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: `glfw::ffi::GLFWcharfun`
[INFO] [stdout]  --> crates/ale_window/src/backend.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use glfw::ffi::GLFWcharfun;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> crates/ale_window/src/backend.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TargetMonitor`
[INFO] [stdout]  --> crates/ale_window/src/window.rs:1:38
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::display::{DisplaySetting, TargetMonitor};
[INFO] [stdout]   |                                      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ale_math::rect::Rect`
[INFO] [stdout]  --> crates/ale_window/src/window.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use ale_math::rect::Rect;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Zero`
[INFO] [stdout]  --> crates/ale_window/src/window.rs:8:25
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ale_math::{Vector2, Zero};
[INFO] [stdout]   |                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc` and `RwLock`
[INFO] [stdout]   --> crates/ale_window/src/window.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::sync::{Arc, RwLock};
[INFO] [stdout]    |                 ^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `txt`
[INFO] [stdout]   --> crates/ale_ui/src/element.rs:76:23
[INFO] [stdout]    |
[INFO] [stdout] 76 |         Element::Text(txt) => {}
[INFO] [stdout]    |                       ^^^ help: if this is intentional, prefix it with an underscore: `_txt`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `empty`
[INFO] [stdout]   --> crates/ale_ui/src/element.rs:77:24
[INFO] [stdout]    |
[INFO] [stdout] 77 |         Element::Empty(empty) => {}
[INFO] [stdout]    |                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_empty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/ale_window/src/backend.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let mut windows = Windows {
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `empty`
[INFO] [stdout]   --> crates/ale_ui/src/element.rs:98:24
[INFO] [stdout]    |
[INFO] [stdout] 98 |         Element::Empty(empty) => {
[INFO] [stdout]    |                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_empty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rel_x`
[INFO] [stdout]   --> crates/ale_ui/src/button.rs:57:9
[INFO] [stdout]    |
[INFO] [stdout] 57 |         rel_x,
[INFO] [stdout]    |         ^^^^^ help: try ignoring the field: `rel_x: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rel_y`
[INFO] [stdout]   --> crates/ale_ui/src/button.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |         rel_y,
[INFO] [stdout]    |         ^^^^^ help: try ignoring the field: `rel_y: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `modifier`
[INFO] [stdout]   --> crates/ale_ui/src/button.rs:70:40
[INFO] [stdout]    |
[INFO] [stdout] 70 |       Input::MouseButton(mbtn, action, modifier) => {
[INFO] [stdout]    |                                        ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_modifier`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/ale_ui/src/layout.rs:12:46
[INFO] [stdout]    |
[INFO] [stdout] 12 |   pub fn arrange(&mut self, parent: &Layout, mut childs: Vec<&mut Layout>) -> Result<(), LayoutError> {
[INFO] [stdout]    |                                              ----^^^^^^
[INFO] [stdout]    |                                              |
[INFO] [stdout]    |                                              help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/ale_window/src/backend.rs:58:14
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let (mut glfw_window, glfw_events) = self
[INFO] [stdout]    |              ----^^^^^^^^^^^
[INFO] [stdout]    |              |
[INFO] [stdout]    |              help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/ale_window/src/backend.rs:71:14
[INFO] [stdout]    |
[INFO] [stdout] 71 |         let (mut glfw_window, glfw_events) = shared_window
[INFO] [stdout]    |              ----^^^^^^^^^^^
[INFO] [stdout]    |              |
[INFO] [stdout]    |              help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/ale_window/src/backend.rs:107:13
[INFO] [stdout]     |
[INFO] [stdout] 107 |         let mut shared_window = self.windows.get_mut(shared_key).
[INFO] [stdout]     |             ----^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `is_disable` is never read
[INFO] [stdout]   --> crates/ale_ui/src/button.rs:18:3
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Button {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 18 |   is_disable: bool,
[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 variable: `panel`
[INFO] [stdout]    --> crates/ale_window/src/window.rs:129:34
[INFO] [stdout]     |
[INFO] [stdout] 129 |   pub fn remove_panel(&mut self, panel: alevec::Key<Panel>) {
[INFO] [stdout]     |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_panel`
[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]    --> crates/ale_window/src/backend.rs:151:15
[INFO] [stdout]     |
[INFO] [stdout] 151 |   pub fn iter(&self) -> AleVecIter<Window> {
[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] 151 |   pub fn iter(&self) -> AleVecIter<'_, Window> {
[INFO] [stdout]     |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/ale_window/src/backend.rs:155:19
[INFO] [stdout]     |
[INFO] [stdout] 155 |   pub fn iter_mut(&mut self) -> AleVecIterMut<Window> {
[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] 155 |   pub fn iter_mut(&mut self) -> AleVecIterMut<'_, Window> {
[INFO] [stdout]     |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> crates/ale_ui/src/element.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 52 |     self.refresh_layout();
[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] 52 |     let _ = self.refresh_layout();
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/ale_window/src/backend.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let mut windows = Windows {
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/ale_window/src/backend.rs:58:14
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let (mut glfw_window, glfw_events) = self
[INFO] [stdout]    |              ----^^^^^^^^^^^
[INFO] [stdout]    |              |
[INFO] [stdout]    |              help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/ale_window/src/backend.rs:71:14
[INFO] [stdout]    |
[INFO] [stdout] 71 |         let (mut glfw_window, glfw_events) = shared_window
[INFO] [stdout]    |              ----^^^^^^^^^^^
[INFO] [stdout]    |              |
[INFO] [stdout]    |              help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/ale_window/src/backend.rs:107:13
[INFO] [stdout]     |
[INFO] [stdout] 107 |         let mut shared_window = self.windows.get_mut(shared_key).
[INFO] [stdout]     |             ----^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `panel`
[INFO] [stdout]    --> crates/ale_window/src/window.rs:129:34
[INFO] [stdout]     |
[INFO] [stdout] 129 |   pub fn remove_panel(&mut self, panel: alevec::Key<Panel>) {
[INFO] [stdout]     |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_panel`
[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]    --> crates/ale_window/src/backend.rs:151:15
[INFO] [stdout]     |
[INFO] [stdout] 151 |   pub fn iter(&self) -> AleVecIter<Window> {
[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] 151 |   pub fn iter(&self) -> AleVecIter<'_, Window> {
[INFO] [stdout]     |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/ale_window/src/backend.rs:155:19
[INFO] [stdout]     |
[INFO] [stdout] 155 |   pub fn iter_mut(&mut self) -> AleVecIterMut<Window> {
[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] 155 |   pub fn iter_mut(&mut self) -> AleVecIterMut<'_, Window> {
[INFO] [stdout]     |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "1801f77a2fa68e8ed2a89cff55d28e9ba590205e9e401e6c32329d86909079c4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1801f77a2fa68e8ed2a89cff55d28e9ba590205e9e401e6c32329d86909079c4", kill_on_drop: false }`
[INFO] [stdout] 1801f77a2fa68e8ed2a89cff55d28e9ba590205e9e401e6c32329d86909079c4
