[INFO] cloning repository https://github.com/adihodos/space_invaders
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/adihodos/space_invaders" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fadihodos%2Fspace_invaders", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fadihodos%2Fspace_invaders'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 81f1a0ab9229f8e70af46b772ab0d55d75fdeae2
[INFO] testing adihodos/space_invaders against 1.83.0 for beta-1.84.0-4-retry
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fadihodos%2Fspace_invaders" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/adihodos/space_invaders on toolchain 1.83.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.83.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] removed /workspace/builds/worker-4-tc1/source/.cargo/config
[INFO] started tweaking git repo https://github.com/adihodos/space_invaders
[INFO] finished tweaking git repo https://github.com/adihodos/space_invaders
[INFO] tweaked toml for git repo https://github.com/adihodos/space_invaders written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/adihodos/space_invaders 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" "+1.83.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded murmurhash64 v0.3.1
[INFO] [stderr]   Downloaded semver v0.2.3
[INFO] [stderr]   Downloaded cmake v0.1.40
[INFO] [stderr]   Downloaded freetype-sys v0.7.1
[INFO] [stderr]   Downloaded glfw v0.29.0
[INFO] [stderr]   Downloaded glfw-sys v3.3.0
[INFO] [stderr]   Downloaded enumflags2_derive v0.5.0
[INFO] [stderr]   Downloaded enumflags2 v0.5.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+1.83.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c40e0e4284ad153de26d7086590b43929e33f103c72e1f8baf70457f412dbce0
[INFO] running `Command { std: "docker" "start" "-a" "c40e0e4284ad153de26d7086590b43929e33f103c72e1f8baf70457f412dbce0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c40e0e4284ad153de26d7086590b43929e33f103c72e1f8baf70457f412dbce0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c40e0e4284ad153de26d7086590b43929e33f103c72e1f8baf70457f412dbce0", kill_on_drop: false }`
[INFO] [stdout] c40e0e4284ad153de26d7086590b43929e33f103c72e1f8baf70457f412dbce0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+1.83.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3c96d446ba6ce597408ad57a20479818069ff5bf2205554d9a5036dbe8229121
[INFO] running `Command { std: "docker" "start" "-a" "3c96d446ba6ce597408ad57a20479818069ff5bf2205554d9a5036dbe8229121", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v0.1.4
[INFO] [stderr]    Compiling cc v1.0.37
[INFO] [stderr]    Compiling bitflags v1.1.0
[INFO] [stderr]    Compiling libc v0.2.58
[INFO] [stderr]    Compiling pkg-config v0.3.14
[INFO] [stderr]    Compiling proc-macro2 v0.4.30
[INFO] [stderr]    Compiling khronos_api v2.2.0
[INFO] [stderr]    Compiling cfg-if v0.1.9
[INFO] [stderr]    Compiling unicode-xid v0.1.0
[INFO] [stderr]    Compiling byteorder v1.3.2
[INFO] [stderr]    Compiling num-bigint v0.2.2
[INFO] [stderr]    Compiling syn v0.15.39
[INFO] [stderr]    Compiling adler32 v1.0.3
[INFO] [stderr]    Compiling nom v1.2.4
[INFO] [stderr]    Compiling num-derive v0.2.5
[INFO] [stderr]    Compiling enumflags2 v0.5.2
[INFO] [stderr]    Compiling log v0.4.6
[INFO] [stderr]    Compiling inflate v0.4.5
[INFO] [stderr]    Compiling cmake v0.1.40
[INFO] [stderr]    Compiling num-traits v0.2.8
[INFO] [stderr]    Compiling num-integer v0.1.41
[INFO] [stderr]    Compiling num-iter v0.1.39
[INFO] [stderr]    Compiling num-rational v0.2.2
[INFO] [stderr]    Compiling num-complex v0.2.3
[INFO] [stderr]    Compiling glfw-sys v3.3.0
[INFO] [stderr]    Compiling xml-rs v0.7.0
[INFO] [stderr]    Compiling simple_ui v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling gl_generator v0.9.0
[INFO] [stderr]    Compiling libz-sys v1.0.25
[INFO] [stderr]    Compiling freetype-sys v0.7.1
[INFO] [stderr]    Compiling semver v0.2.3
[INFO] [stderr]    Compiling deflate v0.7.20
[INFO] [stderr]    Compiling rand v0.4.6
[INFO] [stderr]    Compiling quote v0.6.13
[INFO] [stderr]    Compiling gl v0.10.0
[INFO] [stderr]    Compiling rand v0.3.23
[INFO] [stderr]    Compiling murmurhash64 v0.3.1
[INFO] [stderr]    Compiling png v0.14.1
[INFO] [stderr]    Compiling num v0.2.0
[INFO] [stderr]    Compiling glfw v0.29.0
[INFO] [stderr]    Compiling enumflags2_derive v0.5.0
[INFO] [stdout] warning: variant `R32G32B32A32_Float` should have an upper camel case name
[INFO] [stdout]    --> src/hmi/base.rs:170:3
[INFO] [stdout]     |
[INFO] [stdout] 170 |   R32G32B32A32_Float,
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `R32g32b32a32Float`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `R32G32B32A32_Double` should have an upper camel case name
[INFO] [stdout]    --> src/hmi/base.rs:171:3
[INFO] [stdout]     |
[INFO] [stdout] 171 |   R32G32B32A32_Double,
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `R32g32b32a32Double`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `WidgetLayoutStates` and `utility::clamp`
[INFO] [stdout]   --> src/hmi/button.rs:5:7
[INFO] [stdout]    |
[INFO] [stdout] 5  |       WidgetLayoutStates, WidgetStates,
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     colors::RGBAColor, rectangle::RectangleF32, utility::clamp, vec2::Vec2F32,
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `VERTEX_BUFFER_OUTPUT`
[INFO] [stdout]    --> src/hmi/commands.rs:672:7
[INFO] [stdout]     |
[INFO] [stdout] 672 | #[cfg(feature = "VERTEX_BUFFER_OUTPUT")]
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = help: consider adding `VERTEX_BUFFER_OUTPUT` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `colors::RGBAColor`, `commands::CommandBuffer`, `ui_context::WindowPtr`, and `window::Window`
[INFO] [stdout]  --> src/hmi/image.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 |     base::GenericHandle, commands::CommandBuffer, ui_context::WindowPtr,
[INFO] [stdout]   |                          ^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 4 |     window::Window,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 5 |   },
[INFO] [stdout] 6 |   math::{colors::RGBAColor, rectangle::RectangleF32},
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cursor::Cursor`
[INFO] [stdout]  --> src/hmi/style.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     cursor::Cursor,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ButtonBehaviour`, `Heading`, `Input`, `MouseButtonId`, `StyleItem`, `SymbolType`, `WidgetLayoutStates`, `WidgetStates`, and `utility::clamp`
[INFO] [stdout]   --> src/hmi/text.rs:4:7
[INFO] [stdout]    |
[INFO] [stdout] 4  |       ButtonBehaviour, Heading, TextAlign, WidgetLayoutStates, WidgetStates,
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^  ^^^^^^^             ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7  |     input::{Input, MouseButtonId},
[INFO] [stdout]    |             ^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 8  |     style::{Style, StyleItem, SymbolType},
[INFO] [stdout]    |                    ^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |     colors::RGBAColor, rectangle::RectangleF32, utility::clamp, vec2::Vec2F32,
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::hmi::progress::do_progress`
[INFO] [stdout]     --> src/hmi/ui_context.rs:1600:9
[INFO] [stdout]      |
[INFO] [stdout] 1600 |     use crate::hmi::progress::do_progress;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HslColor`, `RGBAColor`, `Vec2I16`, and `XyzColor`
[INFO] [stdout]   --> src/main.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout] 9  |   colors::{HslColor, HsvColor, RGBAColor, RGBAColorF32, XyzColor},
[INFO] [stdout]    |            ^^^^^^^^            ^^^^^^^^^                ^^^^^^^^
[INFO] [stdout] 10 |   rectangle::RectangleF32,
[INFO] [stdout] 11 |   vec2::{Vec2F32, Vec2I16},
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DrawList`, `FontAtlas`, `FontConfig`, `Font`, `TextAlign`, `style::SymbolType`, and `sys::memory_mapped_file::MemoryMappedFile`
[INFO] [stdout]   --> src/main.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 |       TextAlign,
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     style::SymbolType,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 23 |     text_engine::{
[INFO] [stdout] 24 |       Font, FontAtlas, FontAtlasBuilder, FontConfig, FontConfigBuilder,
[INFO] [stdout]    |       ^^^^  ^^^^^^^^^                    ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     vertex_output::{DrawCommand, DrawIndexType, DrawList},
[INFO] [stdout]    |                                                 ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |   sys::memory_mapped_file::MemoryMappedFile,
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cur`
[INFO] [stdout]     --> src/hmi/ui_context.rs:1594:5
[INFO] [stdout]      |
[INFO] [stdout] 1594 |     cur: u32,
[INFO] [stdout]      |     ^^^ help: if this is intentional, prefix it with an underscore: `_cur`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max`
[INFO] [stdout]     --> src/hmi/ui_context.rs:1595:5
[INFO] [stdout]      |
[INFO] [stdout] 1595 |     max: u32,
[INFO] [stdout]      |     ^^^ help: if this is intentional, prefix it with an underscore: `_max`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `modifiable`
[INFO] [stdout]     --> src/hmi/ui_context.rs:1596:5
[INFO] [stdout]      |
[INFO] [stdout] 1596 |     modifiable: bool,
[INFO] [stdout]      |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_modifiable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/hmi/window.rs:216:9
[INFO] [stdout]     |
[INFO] [stdout] 216 |     let mut buf = &mut self.popup.buf;
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/hmi/window.rs:225:9
[INFO] [stdout]     |
[INFO] [stdout] 225 |     let mut buf = &mut self.popup.buf;
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `font_atlas`
[INFO] [stdout]   --> src/main.rs:88:7
[INFO] [stdout]    |
[INFO] [stdout] 88 |   let font_atlas = FontAtlasBuilder::new(300)
[INFO] [stdout]    |       ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_font_atlas`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `font_atlas`
[INFO] [stdout]    --> src/main.rs:235:7
[INFO] [stdout]     |
[INFO] [stdout] 235 |   let font_atlas = FontAtlasBuilder::new(300)
[INFO] [stdout]     |       ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_font_atlas`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/hmi/input.rs:4:30
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[derive(Copy, Clone, Debug, FromPrimitive, ToPrimitive)]
[INFO] [stdout]   |                              ^------------
[INFO] [stdout]   |                              |
[INFO] [stdout]   |                              `FromPrimitive` is not local
[INFO] [stdout]   |                              move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_KeyId`
[INFO] [stdout] 5 | pub enum KeyId {
[INFO] [stdout]   |          ----- `KeyId` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]   = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/hmi/input.rs:4:45
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[derive(Copy, Clone, Debug, FromPrimitive, ToPrimitive)]
[INFO] [stdout]   |                                             ^----------
[INFO] [stdout]   |                                             |
[INFO] [stdout]   |                                             `ToPrimitive` is not local
[INFO] [stdout]   |                                             move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_KeyId`
[INFO] [stdout] 5 | pub enum KeyId {
[INFO] [stdout]   |          ----- `KeyId` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/hmi/input.rs:41:30
[INFO] [stdout]    |
[INFO] [stdout] 41 | #[derive(Copy, Clone, Debug, FromPrimitive, ToPrimitive)]
[INFO] [stdout]    |                              ^------------
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              `FromPrimitive` is not local
[INFO] [stdout]    |                              move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_MouseButtonId`
[INFO] [stdout] 42 | pub enum MouseButtonId {
[INFO] [stdout]    |          ------------- `MouseButtonId` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/hmi/input.rs:41:45
[INFO] [stdout]    |
[INFO] [stdout] 41 | #[derive(Copy, Clone, Debug, FromPrimitive, ToPrimitive)]
[INFO] [stdout]    |                                             ^----------
[INFO] [stdout]    |                                             |
[INFO] [stdout]    |                                             `ToPrimitive` is not local
[INFO] [stdout]    |                                             move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_MouseButtonId`
[INFO] [stdout] 42 | pub enum MouseButtonId {
[INFO] [stdout]    |          ------------- `MouseButtonId` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/hmi/panel.rs:63:45
[INFO] [stdout]    |
[INFO] [stdout] 63 |   EnumFlags, Copy, Clone, Debug, PartialEq, FromPrimitive, ToPrimitive,
[INFO] [stdout]    |                                             ^------------
[INFO] [stdout]    |                                             |
[INFO] [stdout]    |                                             `FromPrimitive` is not local
[INFO] [stdout]    |                                             move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_PanelFlags`
[INFO] [stdout] ...
[INFO] [stdout] 66 | pub enum PanelFlags {
[INFO] [stdout]    |          ---------- `PanelFlags` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/hmi/panel.rs:63:60
[INFO] [stdout]    |
[INFO] [stdout] 63 |   EnumFlags, Copy, Clone, Debug, PartialEq, FromPrimitive, ToPrimitive,
[INFO] [stdout]    |                                                            ^----------
[INFO] [stdout]    |                                                            |
[INFO] [stdout]    |                                                            `ToPrimitive` is not local
[INFO] [stdout]    |                                                            move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_PanelFlags`
[INFO] [stdout] ...
[INFO] [stdout] 66 | pub enum PanelFlags {
[INFO] [stdout]    |          ---------- `PanelFlags` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/hmi/style.rs:15:30
[INFO] [stdout]    |
[INFO] [stdout] 15 | #[derive(Copy, Clone, Debug, FromPrimitive, ToPrimitive, Eq, PartialEq)]
[INFO] [stdout]    |                              ^------------
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              `FromPrimitive` is not local
[INFO] [stdout]    |                              move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_SymbolType`
[INFO] [stdout] 16 | pub enum SymbolType {
[INFO] [stdout]    |          ---------- `SymbolType` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/hmi/style.rs:15:45
[INFO] [stdout]    |
[INFO] [stdout] 15 | #[derive(Copy, Clone, Debug, FromPrimitive, ToPrimitive, Eq, PartialEq)]
[INFO] [stdout]    |                                             ^----------
[INFO] [stdout]    |                                             |
[INFO] [stdout]    |                                             `ToPrimitive` is not local
[INFO] [stdout]    |                                             move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_SymbolType`
[INFO] [stdout] 16 | pub enum SymbolType {
[INFO] [stdout]    |          ---------- `SymbolType` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/hmi/style.rs:354:30
[INFO] [stdout]     |
[INFO] [stdout] 354 | #[derive(Copy, Clone, Debug, FromPrimitive, ToPrimitive, Eq, PartialEq)]
[INFO] [stdout]     |                              ^------------
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              `FromPrimitive` is not local
[INFO] [stdout]     |                              move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_StyleHeaderAlign`
[INFO] [stdout] 355 | pub enum StyleHeaderAlign {
[INFO] [stdout]     |          ---------------- `StyleHeaderAlign` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/hmi/style.rs:354:45
[INFO] [stdout]     |
[INFO] [stdout] 354 | #[derive(Copy, Clone, Debug, FromPrimitive, ToPrimitive, Eq, PartialEq)]
[INFO] [stdout]     |                                             ^----------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             `ToPrimitive` is not local
[INFO] [stdout]     |                                             move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_StyleHeaderAlign`
[INFO] [stdout] 355 | pub enum StyleHeaderAlign {
[INFO] [stdout]     |          ---------------- `StyleHeaderAlign` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `freetype_sys::FT_Raster_Params` does not permit zero-initialization
[INFO] [stdout]   --> src/hmi/text_engine.rs:68:31
[INFO] [stdout]    |
[INFO] [stdout] 68 |       let mut raster_params = std::mem::zeroed::<FT_Raster_Params>();
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               this code causes undefined behavior when executed
[INFO] [stdout]    |                               help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]    |
[INFO] [stdout]    = note: function pointers must be non-null
[INFO] [stdout]    = note: `#[warn(invalid_value)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stdout]    --> src/hmi/vertex_output.rs:202:8
[INFO] [stdout]     |
[INFO] [stdout] 202 |       .into_iter()
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout]     = note: `#[warn(array_into_iter)]` on by default
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 202 |       .iter()
[INFO] [stdout]     |        ~~~~
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 196 ~       IntoIterator::into_iter([
[INFO] [stdout] 197 |         Vec2F32::new(dy, -dx) + p1,
[INFO] [stdout] ...
[INFO] [stdout] 200 |         Vec2F32::new(-dy, dx) + p1,
[INFO] [stdout] 201 ~       ])
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stdout]    --> src/hmi/vertex_output.rs:207:26
[INFO] [stdout]     |
[INFO] [stdout] 207 |       [0, 1, 2, 0, 2, 3].into_iter().for_each(|&offset| {
[INFO] [stdout]     |                          ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 207 |       [0, 1, 2, 0, 2, 3].iter().for_each(|&offset| {
[INFO] [stdout]     |                          ~~~~
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 207 |       IntoIterator::into_iter([0, 1, 2, 0, 2, 3]).for_each(|&offset| {
[INFO] [stdout]     |       ++++++++++++++++++++++++                  ~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stdout]    --> src/hmi/vertex_output.rs:535:6
[INFO] [stdout]     |
[INFO] [stdout] 535 |     .into_iter()
[INFO] [stdout]     |      ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 535 |     .iter()
[INFO] [stdout]     |      ~~~~
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 529 ~     IntoIterator::into_iter([
[INFO] [stdout] 530 |       (Vec2F32::new(rect.x, rect.y), col_left),
[INFO] [stdout] ...
[INFO] [stdout] 533 |       (Vec2F32::new(rect.x, rect.y + rect.h), col_bottom),
[INFO] [stdout] 534 ~     ])
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stdout]    --> src/hmi/vertex_output.rs:542:24
[INFO] [stdout]     |
[INFO] [stdout] 542 |     [0, 1, 2, 0, 2, 3].into_iter().for_each(|&offset| {
[INFO] [stdout]     |                        ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 542 |     [0, 1, 2, 0, 2, 3].iter().for_each(|&offset| {
[INFO] [stdout]     |                        ~~~~
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 542 |     IntoIterator::into_iter([0, 1, 2, 0, 2, 3]).for_each(|&offset| {
[INFO] [stdout]     |     ++++++++++++++++++++++++                  ~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stdout]    --> src/hmi/vertex_output.rs:671:8
[INFO] [stdout]     |
[INFO] [stdout] 671 |       .into_iter()
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 671 |       .iter()
[INFO] [stdout]     |        ~~~~
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 670 |     IntoIterator::into_iter([(a, uva), (b, uvb), (c, uvc), (d, uvd)])
[INFO] [stdout]     |     ++++++++++++++++++++++++                                        ~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stdout]    --> src/hmi/vertex_output.rs:676:24
[INFO] [stdout]     |
[INFO] [stdout] 676 |     [0, 1, 2, 0, 2, 3].into_iter().for_each(|&offset| {
[INFO] [stdout]     |                        ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 676 |     [0, 1, 2, 0, 2, 3].iter().for_each(|&offset| {
[INFO] [stdout]     |                        ~~~~
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 676 |     IntoIterator::into_iter([0, 1, 2, 0, 2, 3]).for_each(|&offset| {
[INFO] [stdout]     |     ++++++++++++++++++++++++                  ~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 19.86s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nom v1.2.4
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "3c96d446ba6ce597408ad57a20479818069ff5bf2205554d9a5036dbe8229121", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3c96d446ba6ce597408ad57a20479818069ff5bf2205554d9a5036dbe8229121", kill_on_drop: false }`
[INFO] [stdout] 3c96d446ba6ce597408ad57a20479818069ff5bf2205554d9a5036dbe8229121
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+1.83.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4c0bd71120658313c6cf115b09e5e8e1a7fd13dac294b7956d0a097ed14b623f
[INFO] running `Command { std: "docker" "start" "-a" "4c0bd71120658313c6cf115b09e5e8e1a7fd13dac294b7956d0a097ed14b623f", kill_on_drop: false }`
[INFO] [stderr]    Compiling simple_ui v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: variant `R32G32B32A32_Float` should have an upper camel case name
[INFO] [stdout]    --> src/hmi/base.rs:170:3
[INFO] [stdout]     |
[INFO] [stdout] 170 |   R32G32B32A32_Float,
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `R32g32b32a32Float`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `R32G32B32A32_Double` should have an upper camel case name
[INFO] [stdout]    --> src/hmi/base.rs:171:3
[INFO] [stdout]     |
[INFO] [stdout] 171 |   R32G32B32A32_Double,
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `R32g32b32a32Double`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `WidgetLayoutStates` and `utility::clamp`
[INFO] [stdout]   --> src/hmi/button.rs:5:7
[INFO] [stdout]    |
[INFO] [stdout] 5  |       WidgetLayoutStates, WidgetStates,
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     colors::RGBAColor, rectangle::RectangleF32, utility::clamp, vec2::Vec2F32,
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `VERTEX_BUFFER_OUTPUT`
[INFO] [stdout]    --> src/hmi/commands.rs:672:7
[INFO] [stdout]     |
[INFO] [stdout] 672 | #[cfg(feature = "VERTEX_BUFFER_OUTPUT")]
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = help: consider adding `VERTEX_BUFFER_OUTPUT` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `colors::RGBAColor`, `commands::CommandBuffer`, `ui_context::WindowPtr`, and `window::Window`
[INFO] [stdout]  --> src/hmi/image.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 |     base::GenericHandle, commands::CommandBuffer, ui_context::WindowPtr,
[INFO] [stdout]   |                          ^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 4 |     window::Window,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 5 |   },
[INFO] [stdout] 6 |   math::{colors::RGBAColor, rectangle::RectangleF32},
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cursor::Cursor`
[INFO] [stdout]  --> src/hmi/style.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     cursor::Cursor,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ButtonBehaviour`, `Heading`, `Input`, `MouseButtonId`, `StyleItem`, `SymbolType`, `WidgetLayoutStates`, `WidgetStates`, and `utility::clamp`
[INFO] [stdout]   --> src/hmi/text.rs:4:7
[INFO] [stdout]    |
[INFO] [stdout] 4  |       ButtonBehaviour, Heading, TextAlign, WidgetLayoutStates, WidgetStates,
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^  ^^^^^^^             ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7  |     input::{Input, MouseButtonId},
[INFO] [stdout]    |             ^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 8  |     style::{Style, StyleItem, SymbolType},
[INFO] [stdout]    |                    ^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |     colors::RGBAColor, rectangle::RectangleF32, utility::clamp, vec2::Vec2F32,
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::hmi::progress::do_progress`
[INFO] [stdout]     --> src/hmi/ui_context.rs:1600:9
[INFO] [stdout]      |
[INFO] [stdout] 1600 |     use crate::hmi::progress::do_progress;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HslColor`, `RGBAColor`, `Vec2I16`, and `XyzColor`
[INFO] [stdout]   --> src/main.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout] 9  |   colors::{HslColor, HsvColor, RGBAColor, RGBAColorF32, XyzColor},
[INFO] [stdout]    |            ^^^^^^^^            ^^^^^^^^^                ^^^^^^^^
[INFO] [stdout] 10 |   rectangle::RectangleF32,
[INFO] [stdout] 11 |   vec2::{Vec2F32, Vec2I16},
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DrawList`, `FontAtlas`, `FontConfig`, `Font`, `TextAlign`, `style::SymbolType`, and `sys::memory_mapped_file::MemoryMappedFile`
[INFO] [stdout]   --> src/main.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 |       TextAlign,
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     style::SymbolType,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 23 |     text_engine::{
[INFO] [stdout] 24 |       Font, FontAtlas, FontAtlasBuilder, FontConfig, FontConfigBuilder,
[INFO] [stdout]    |       ^^^^  ^^^^^^^^^                    ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     vertex_output::{DrawCommand, DrawIndexType, DrawList},
[INFO] [stdout]    |                                                 ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |   sys::memory_mapped_file::MemoryMappedFile,
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/hmi/buffer.rs:158:11
[INFO] [stdout]     |
[INFO] [stdout] 158 |       let mut new_slice = dyb.alloc_elements(5);
[INFO] [stdout]     |           ----^^^^^^^^^
[INFO] [stdout]     |           |
[INFO] [stdout]     |           help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/hmi/buffer.rs:207:11
[INFO] [stdout]     |
[INFO] [stdout] 207 |       let mut new_slice = fixb.alloc_elements(4);
[INFO] [stdout]     |           ----^^^^^^^^^
[INFO] [stdout]     |           |
[INFO] [stdout]     |           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cur`
[INFO] [stdout]     --> src/hmi/ui_context.rs:1594:5
[INFO] [stdout]      |
[INFO] [stdout] 1594 |     cur: u32,
[INFO] [stdout]      |     ^^^ help: if this is intentional, prefix it with an underscore: `_cur`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max`
[INFO] [stdout]     --> src/hmi/ui_context.rs:1595:5
[INFO] [stdout]      |
[INFO] [stdout] 1595 |     max: u32,
[INFO] [stdout]      |     ^^^ help: if this is intentional, prefix it with an underscore: `_max`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `modifiable`
[INFO] [stdout]     --> src/hmi/ui_context.rs:1596:5
[INFO] [stdout]      |
[INFO] [stdout] 1596 |     modifiable: bool,
[INFO] [stdout]      |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_modifiable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/hmi/window.rs:216:9
[INFO] [stdout]     |
[INFO] [stdout] 216 |     let mut buf = &mut self.popup.buf;
[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]    --> src/hmi/window.rs:225:9
[INFO] [stdout]     |
[INFO] [stdout] 225 |     let mut buf = &mut self.popup.buf;
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `font_atlas`
[INFO] [stdout]   --> src/main.rs:88:7
[INFO] [stdout]    |
[INFO] [stdout] 88 |   let font_atlas = FontAtlasBuilder::new(300)
[INFO] [stdout]    |       ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_font_atlas`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `font_atlas`
[INFO] [stdout]    --> src/main.rs:235:7
[INFO] [stdout]     |
[INFO] [stdout] 235 |   let font_atlas = FontAtlasBuilder::new(300)
[INFO] [stdout]     |       ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_font_atlas`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/hmi/input.rs:4:30
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[derive(Copy, Clone, Debug, FromPrimitive, ToPrimitive)]
[INFO] [stdout]   |                              ^------------
[INFO] [stdout]   |                              |
[INFO] [stdout]   |                              `FromPrimitive` is not local
[INFO] [stdout]   |                              move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_KeyId`
[INFO] [stdout] 5 | pub enum KeyId {
[INFO] [stdout]   |          ----- `KeyId` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]   = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/hmi/input.rs:4:45
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[derive(Copy, Clone, Debug, FromPrimitive, ToPrimitive)]
[INFO] [stdout]   |                                             ^----------
[INFO] [stdout]   |                                             |
[INFO] [stdout]   |                                             `ToPrimitive` is not local
[INFO] [stdout]   |                                             move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_KeyId`
[INFO] [stdout] 5 | pub enum KeyId {
[INFO] [stdout]   |          ----- `KeyId` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/hmi/input.rs:41:30
[INFO] [stdout]    |
[INFO] [stdout] 41 | #[derive(Copy, Clone, Debug, FromPrimitive, ToPrimitive)]
[INFO] [stdout]    |                              ^------------
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              `FromPrimitive` is not local
[INFO] [stdout]    |                              move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_MouseButtonId`
[INFO] [stdout] 42 | pub enum MouseButtonId {
[INFO] [stdout]    |          ------------- `MouseButtonId` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/hmi/input.rs:41:45
[INFO] [stdout]    |
[INFO] [stdout] 41 | #[derive(Copy, Clone, Debug, FromPrimitive, ToPrimitive)]
[INFO] [stdout]    |                                             ^----------
[INFO] [stdout]    |                                             |
[INFO] [stdout]    |                                             `ToPrimitive` is not local
[INFO] [stdout]    |                                             move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_MouseButtonId`
[INFO] [stdout] 42 | pub enum MouseButtonId {
[INFO] [stdout]    |          ------------- `MouseButtonId` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/hmi/panel.rs:63:45
[INFO] [stdout]    |
[INFO] [stdout] 63 |   EnumFlags, Copy, Clone, Debug, PartialEq, FromPrimitive, ToPrimitive,
[INFO] [stdout]    |                                             ^------------
[INFO] [stdout]    |                                             |
[INFO] [stdout]    |                                             `FromPrimitive` is not local
[INFO] [stdout]    |                                             move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_PanelFlags`
[INFO] [stdout] ...
[INFO] [stdout] 66 | pub enum PanelFlags {
[INFO] [stdout]    |          ---------- `PanelFlags` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/hmi/panel.rs:63:60
[INFO] [stdout]    |
[INFO] [stdout] 63 |   EnumFlags, Copy, Clone, Debug, PartialEq, FromPrimitive, ToPrimitive,
[INFO] [stdout]    |                                                            ^----------
[INFO] [stdout]    |                                                            |
[INFO] [stdout]    |                                                            `ToPrimitive` is not local
[INFO] [stdout]    |                                                            move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_PanelFlags`
[INFO] [stdout] ...
[INFO] [stdout] 66 | pub enum PanelFlags {
[INFO] [stdout]    |          ---------- `PanelFlags` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/hmi/style.rs:15:30
[INFO] [stdout]    |
[INFO] [stdout] 15 | #[derive(Copy, Clone, Debug, FromPrimitive, ToPrimitive, Eq, PartialEq)]
[INFO] [stdout]    |                              ^------------
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              `FromPrimitive` is not local
[INFO] [stdout]    |                              move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_SymbolType`
[INFO] [stdout] 16 | pub enum SymbolType {
[INFO] [stdout]    |          ---------- `SymbolType` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/hmi/style.rs:15:45
[INFO] [stdout]    |
[INFO] [stdout] 15 | #[derive(Copy, Clone, Debug, FromPrimitive, ToPrimitive, Eq, PartialEq)]
[INFO] [stdout]    |                                             ^----------
[INFO] [stdout]    |                                             |
[INFO] [stdout]    |                                             `ToPrimitive` is not local
[INFO] [stdout]    |                                             move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_SymbolType`
[INFO] [stdout] 16 | pub enum SymbolType {
[INFO] [stdout]    |          ---------- `SymbolType` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/hmi/style.rs:354:30
[INFO] [stdout]     |
[INFO] [stdout] 354 | #[derive(Copy, Clone, Debug, FromPrimitive, ToPrimitive, Eq, PartialEq)]
[INFO] [stdout]     |                              ^------------
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              `FromPrimitive` is not local
[INFO] [stdout]     |                              move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_StyleHeaderAlign`
[INFO] [stdout] 355 | pub enum StyleHeaderAlign {
[INFO] [stdout]     |          ---------------- `StyleHeaderAlign` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/hmi/style.rs:354:45
[INFO] [stdout]     |
[INFO] [stdout] 354 | #[derive(Copy, Clone, Debug, FromPrimitive, ToPrimitive, Eq, PartialEq)]
[INFO] [stdout]     |                                             ^----------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             `ToPrimitive` is not local
[INFO] [stdout]     |                                             move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_StyleHeaderAlign`
[INFO] [stdout] 355 | pub enum StyleHeaderAlign {
[INFO] [stdout]     |          ---------------- `StyleHeaderAlign` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `freetype_sys::FT_Raster_Params` does not permit zero-initialization
[INFO] [stdout]   --> src/hmi/text_engine.rs:68:31
[INFO] [stdout]    |
[INFO] [stdout] 68 |       let mut raster_params = std::mem::zeroed::<FT_Raster_Params>();
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               this code causes undefined behavior when executed
[INFO] [stdout]    |                               help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]    |
[INFO] [stdout]    = note: function pointers must be non-null
[INFO] [stdout]    = note: `#[warn(invalid_value)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stdout]    --> src/hmi/vertex_output.rs:202:8
[INFO] [stdout]     |
[INFO] [stdout] 202 |       .into_iter()
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout]     = note: `#[warn(array_into_iter)]` on by default
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 202 |       .iter()
[INFO] [stdout]     |        ~~~~
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 196 ~       IntoIterator::into_iter([
[INFO] [stdout] 197 |         Vec2F32::new(dy, -dx) + p1,
[INFO] [stdout] ...
[INFO] [stdout] 200 |         Vec2F32::new(-dy, dx) + p1,
[INFO] [stdout] 201 ~       ])
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stdout]    --> src/hmi/vertex_output.rs:207:26
[INFO] [stdout]     |
[INFO] [stdout] 207 |       [0, 1, 2, 0, 2, 3].into_iter().for_each(|&offset| {
[INFO] [stdout]     |                          ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 207 |       [0, 1, 2, 0, 2, 3].iter().for_each(|&offset| {
[INFO] [stdout]     |                          ~~~~
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 207 |       IntoIterator::into_iter([0, 1, 2, 0, 2, 3]).for_each(|&offset| {
[INFO] [stdout]     |       ++++++++++++++++++++++++                  ~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stdout]    --> src/hmi/vertex_output.rs:535:6
[INFO] [stdout]     |
[INFO] [stdout] 535 |     .into_iter()
[INFO] [stdout]     |      ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 535 |     .iter()
[INFO] [stdout]     |      ~~~~
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 529 ~     IntoIterator::into_iter([
[INFO] [stdout] 530 |       (Vec2F32::new(rect.x, rect.y), col_left),
[INFO] [stdout] ...
[INFO] [stdout] 533 |       (Vec2F32::new(rect.x, rect.y + rect.h), col_bottom),
[INFO] [stdout] 534 ~     ])
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stdout]    --> src/hmi/vertex_output.rs:542:24
[INFO] [stdout]     |
[INFO] [stdout] 542 |     [0, 1, 2, 0, 2, 3].into_iter().for_each(|&offset| {
[INFO] [stdout]     |                        ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 542 |     [0, 1, 2, 0, 2, 3].iter().for_each(|&offset| {
[INFO] [stdout]     |                        ~~~~
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 542 |     IntoIterator::into_iter([0, 1, 2, 0, 2, 3]).for_each(|&offset| {
[INFO] [stdout]     |     ++++++++++++++++++++++++                  ~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stdout]    --> src/hmi/vertex_output.rs:671:8
[INFO] [stdout]     |
[INFO] [stdout] 671 |       .into_iter()
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 671 |       .iter()
[INFO] [stdout]     |        ~~~~
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 670 |     IntoIterator::into_iter([(a, uva), (b, uvb), (c, uvc), (d, uvd)])
[INFO] [stdout]     |     ++++++++++++++++++++++++                                        ~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stdout]    --> src/hmi/vertex_output.rs:676:24
[INFO] [stdout]     |
[INFO] [stdout] 676 |     [0, 1, 2, 0, 2, 3].into_iter().for_each(|&offset| {
[INFO] [stdout]     |                        ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 676 |     [0, 1, 2, 0, 2, 3].iter().for_each(|&offset| {
[INFO] [stdout]     |                        ~~~~
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 676 |     IntoIterator::into_iter([0, 1, 2, 0, 2, 3]).for_each(|&offset| {
[INFO] [stdout]     |     ++++++++++++++++++++++++                  ~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.06s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nom v1.2.4
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "4c0bd71120658313c6cf115b09e5e8e1a7fd13dac294b7956d0a097ed14b623f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4c0bd71120658313c6cf115b09e5e8e1a7fd13dac294b7956d0a097ed14b623f", kill_on_drop: false }`
[INFO] [stdout] 4c0bd71120658313c6cf115b09e5e8e1a7fd13dac294b7956d0a097ed14b623f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+1.83.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 26f887bb9e64f988a091b6c0fde5db3cded5741385998d6b870bcb01d93fb59f
[INFO] running `Command { std: "docker" "start" "-a" "26f887bb9e64f988a091b6c0fde5db3cded5741385998d6b870bcb01d93fb59f", kill_on_drop: false }`
[INFO] [stderr] warning: variant `R32G32B32A32_Float` should have an upper camel case name
[INFO] [stderr]    --> src/hmi/base.rs:170:3
[INFO] [stderr]     |
[INFO] [stderr] 170 |   R32G32B32A32_Float,
[INFO] [stderr]     |   ^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `R32g32b32a32Float`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variant `R32G32B32A32_Double` should have an upper camel case name
[INFO] [stderr]    --> src/hmi/base.rs:171:3
[INFO] [stderr]     |
[INFO] [stderr] 171 |   R32G32B32A32_Double,
[INFO] [stderr]     |   ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `R32g32b32a32Double`
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `WidgetLayoutStates` and `utility::clamp`
[INFO] [stderr]   --> src/hmi/button.rs:5:7
[INFO] [stderr]    |
[INFO] [stderr] 5  |       WidgetLayoutStates, WidgetStates,
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 15 |     colors::RGBAColor, rectangle::RectangleF32, utility::clamp, vec2::Vec2F32,
[INFO] [stderr]    |                                                 ^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unexpected `cfg` condition value: `VERTEX_BUFFER_OUTPUT`
[INFO] [stderr]    --> src/hmi/commands.rs:672:7
[INFO] [stderr]     |
[INFO] [stderr] 672 | #[cfg(feature = "VERTEX_BUFFER_OUTPUT")]
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stderr]     |
[INFO] [stderr]     = note: no expected values for `feature`
[INFO] [stderr]     = help: consider adding `VERTEX_BUFFER_OUTPUT` as a feature in `Cargo.toml`
[INFO] [stderr]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stderr]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `colors::RGBAColor`, `commands::CommandBuffer`, `ui_context::WindowPtr`, and `window::Window`
[INFO] [stderr]  --> src/hmi/image.rs:3:26
[INFO] [stderr]   |
[INFO] [stderr] 3 |     base::GenericHandle, commands::CommandBuffer, ui_context::WindowPtr,
[INFO] [stderr]   |                          ^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 4 |     window::Window,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr] 5 |   },
[INFO] [stderr] 6 |   math::{colors::RGBAColor, rectangle::RectangleF32},
[INFO] [stderr]   |          ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `cursor::Cursor`
[INFO] [stderr]  --> src/hmi/style.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 |     cursor::Cursor,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ButtonBehaviour`, `Heading`, `Input`, `MouseButtonId`, `StyleItem`, `SymbolType`, `WidgetLayoutStates`, `WidgetStates`, and `utility::clamp`
[INFO] [stderr]   --> src/hmi/text.rs:4:7
[INFO] [stderr]    |
[INFO] [stderr] 4  |       ButtonBehaviour, Heading, TextAlign, WidgetLayoutStates, WidgetStates,
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^  ^^^^^^^             ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 7  |     input::{Input, MouseButtonId},
[INFO] [stderr]    |             ^^^^^  ^^^^^^^^^^^^^
[INFO] [stderr] 8  |     style::{Style, StyleItem, SymbolType},
[INFO] [stderr]    |                    ^^^^^^^^^  ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 13 |     colors::RGBAColor, rectangle::RectangleF32, utility::clamp, vec2::Vec2F32,
[INFO] [stderr]    |                                                 ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::hmi::progress::do_progress`
[INFO] [stderr]     --> src/hmi/ui_context.rs:1600:9
[INFO] [stderr]      |
[INFO] [stderr] 1600 |     use crate::hmi::progress::do_progress;
[INFO] [stderr]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `HslColor`, `RGBAColor`, `Vec2I16`, and `XyzColor`
[INFO] [stderr]   --> src/main.rs:9:12
[INFO] [stderr]    |
[INFO] [stderr] 9  |   colors::{HslColor, HsvColor, RGBAColor, RGBAColorF32, XyzColor},
[INFO] [stderr]    |            ^^^^^^^^            ^^^^^^^^^                ^^^^^^^^
[INFO] [stderr] 10 |   rectangle::RectangleF32,
[INFO] [stderr] 11 |   vec2::{Vec2F32, Vec2I16},
[INFO] [stderr]    |                   ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `DrawList`, `FontAtlas`, `FontConfig`, `Font`, `TextAlign`, `style::SymbolType`, and `sys::memory_mapped_file::MemoryMappedFile`
[INFO] [stderr]   --> src/main.rs:19:7
[INFO] [stderr]    |
[INFO] [stderr] 19 |       TextAlign,
[INFO] [stderr]    |       ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 22 |     style::SymbolType,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 23 |     text_engine::{
[INFO] [stderr] 24 |       Font, FontAtlas, FontAtlasBuilder, FontConfig, FontConfigBuilder,
[INFO] [stderr]    |       ^^^^  ^^^^^^^^^                    ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 28 |     vertex_output::{DrawCommand, DrawIndexType, DrawList},
[INFO] [stderr]    |                                                 ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 31 |   sys::memory_mapped_file::MemoryMappedFile,
[INFO] [stderr]    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/hmi/buffer.rs:158:11
[INFO] [stderr]     |
[INFO] [stderr] 158 |       let mut new_slice = dyb.alloc_elements(5);
[INFO] [stderr]     |           ----^^^^^^^^^
[INFO] [stderr]     |           |
[INFO] [stderr]     |           help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/hmi/buffer.rs:207:11
[INFO] [stderr]     |
[INFO] [stderr] 207 |       let mut new_slice = fixb.alloc_elements(4);
[INFO] [stderr]     |           ----^^^^^^^^^
[INFO] [stderr]     |           |
[INFO] [stderr]     |           help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `cur`
[INFO] [stderr]     --> src/hmi/ui_context.rs:1594:5
[INFO] [stderr]      |
[INFO] [stderr] 1594 |     cur: u32,
[INFO] [stderr]      |     ^^^ help: if this is intentional, prefix it with an underscore: `_cur`
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `max`
[INFO] [stderr]     --> src/hmi/ui_context.rs:1595:5
[INFO] [stderr]      |
[INFO] [stderr] 1595 |     max: u32,
[INFO] [stderr]      |     ^^^ help: if this is intentional, prefix it with an underscore: `_max`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `modifiable`
[INFO] [stderr]     --> src/hmi/ui_context.rs:1596:5
[INFO] [stderr]      |
[INFO] [stderr] 1596 |     modifiable: bool,
[INFO] [stderr]      |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_modifiable`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/hmi/window.rs:216:9
[INFO] [stderr]     |
[INFO] [stderr] 216 |     let mut buf = &mut self.popup.buf;
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/hmi/window.rs:225:9
[INFO] [stderr]     |
[INFO] [stderr] 225 |     let mut buf = &mut self.popup.buf;
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `font_atlas`
[INFO] [stderr]   --> src/main.rs:88:7
[INFO] [stderr]    |
[INFO] [stderr] 88 |   let font_atlas = FontAtlasBuilder::new(300)
[INFO] [stderr]    |       ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_font_atlas`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `font_atlas`
[INFO] [stderr]    --> src/main.rs:235:7
[INFO] [stderr]     |
[INFO] [stderr] 235 |   let font_atlas = FontAtlasBuilder::new(300)
[INFO] [stderr]     |       ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_font_atlas`
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]  --> src/hmi/input.rs:4:30
[INFO] [stderr]   |
[INFO] [stderr] 4 | #[derive(Copy, Clone, Debug, FromPrimitive, ToPrimitive)]
[INFO] [stderr]   |                              ^------------
[INFO] [stderr]   |                              |
[INFO] [stderr]   |                              `FromPrimitive` is not local
[INFO] [stderr]   |                              move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_KeyId`
[INFO] [stderr] 5 | pub enum KeyId {
[INFO] [stderr]   |          ----- `KeyId` is not local
[INFO] [stderr]   |
[INFO] [stderr]   = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]   = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stderr]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stderr]   = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stderr]   = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]  --> src/hmi/input.rs:4:45
[INFO] [stderr]   |
[INFO] [stderr] 4 | #[derive(Copy, Clone, Debug, FromPrimitive, ToPrimitive)]
[INFO] [stderr]   |                                             ^----------
[INFO] [stderr]   |                                             |
[INFO] [stderr]   |                                             `ToPrimitive` is not local
[INFO] [stderr]   |                                             move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_KeyId`
[INFO] [stderr] 5 | pub enum KeyId {
[INFO] [stderr]   |          ----- `KeyId` is not local
[INFO] [stderr]   |
[INFO] [stderr]   = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]   = note: the derive macro `ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stderr]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stderr]   = note: this warning originates in the derive macro `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]   --> src/hmi/input.rs:41:30
[INFO] [stderr]    |
[INFO] [stderr] 41 | #[derive(Copy, Clone, Debug, FromPrimitive, ToPrimitive)]
[INFO] [stderr]    |                              ^------------
[INFO] [stderr]    |                              |
[INFO] [stderr]    |                              `FromPrimitive` is not local
[INFO] [stderr]    |                              move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_MouseButtonId`
[INFO] [stderr] 42 | pub enum MouseButtonId {
[INFO] [stderr]    |          ------------- `MouseButtonId` is not local
[INFO] [stderr]    |
[INFO] [stderr]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stderr]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stderr]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]   --> src/hmi/input.rs:41:45
[INFO] [stderr]    |
[INFO] [stderr] 41 | #[derive(Copy, Clone, Debug, FromPrimitive, ToPrimitive)]
[INFO] [stderr]    |                                             ^----------
[INFO] [stderr]    |                                             |
[INFO] [stderr]    |                                             `ToPrimitive` is not local
[INFO] [stderr]    |                                             move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_MouseButtonId`
[INFO] [stderr] 42 | pub enum MouseButtonId {
[INFO] [stderr]    |          ------------- `MouseButtonId` is not local
[INFO] [stderr]    |
[INFO] [stderr]    = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]    = note: the derive macro `ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stderr]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stderr]    = note: this warning originates in the derive macro `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]   --> src/hmi/panel.rs:63:45
[INFO] [stderr]    |
[INFO] [stderr] 63 |   EnumFlags, Copy, Clone, Debug, PartialEq, FromPrimitive, ToPrimitive,
[INFO] [stderr]    |                                             ^------------
[INFO] [stderr]    |                                             |
[INFO] [stderr]    |                                             `FromPrimitive` is not local
[INFO] [stderr]    |                                             move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_PanelFlags`
[INFO] [stderr] ...
[INFO] [stderr] 66 | pub enum PanelFlags {
[INFO] [stderr]    |          ---------- `PanelFlags` is not local
[INFO] [stderr]    |
[INFO] [stderr]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stderr]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stderr]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]   --> src/hmi/panel.rs:63:60
[INFO] [stderr]    |
[INFO] [stderr] 63 |   EnumFlags, Copy, Clone, Debug, PartialEq, FromPrimitive, ToPrimitive,
[INFO] [stderr]    |                                                            ^----------
[INFO] [stderr]    |                                                            |
[INFO] [stderr]    |                                                            `ToPrimitive` is not local
[INFO] [stderr]    |                                                            move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_PanelFlags`
[INFO] [stderr] ...
[INFO] [stderr] 66 | pub enum PanelFlags {
[INFO] [stderr]    |          ---------- `PanelFlags` is not local
[INFO] [stderr]    |
[INFO] [stderr]    = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]    = note: the derive macro `ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stderr]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stderr]    = note: this warning originates in the derive macro `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]   --> src/hmi/style.rs:15:30
[INFO] [stderr]    |
[INFO] [stderr] 15 | #[derive(Copy, Clone, Debug, FromPrimitive, ToPrimitive, Eq, PartialEq)]
[INFO] [stderr]    |                              ^------------
[INFO] [stderr]    |                              |
[INFO] [stderr]    |                              `FromPrimitive` is not local
[INFO] [stderr]    |                              move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_SymbolType`
[INFO] [stderr] 16 | pub enum SymbolType {
[INFO] [stderr]    |          ---------- `SymbolType` is not local
[INFO] [stderr]    |
[INFO] [stderr]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stderr]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stderr]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]   --> src/hmi/style.rs:15:45
[INFO] [stderr]    |
[INFO] [stderr] 15 | #[derive(Copy, Clone, Debug, FromPrimitive, ToPrimitive, Eq, PartialEq)]
[INFO] [stderr]    |                                             ^----------
[INFO] [stderr]    |                                             |
[INFO] [stderr]    |                                             `ToPrimitive` is not local
[INFO] [stderr]    |                                             move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_SymbolType`
[INFO] [stderr] 16 | pub enum SymbolType {
[INFO] [stderr]    |          ---------- `SymbolType` is not local
[INFO] [stderr]    |
[INFO] [stderr]    = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]    = note: the derive macro `ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stderr]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stderr]    = note: this warning originates in the derive macro `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/hmi/style.rs:354:30
[INFO] [stderr]     |
[INFO] [stderr] 354 | #[derive(Copy, Clone, Debug, FromPrimitive, ToPrimitive, Eq, PartialEq)]
[INFO] [stderr]     |                              ^------------
[INFO] [stderr]     |                              |
[INFO] [stderr]     |                              `FromPrimitive` is not local
[INFO] [stderr]     |                              move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_StyleHeaderAlign`
[INFO] [stderr] 355 | pub enum StyleHeaderAlign {
[INFO] [stderr]     |          ---------------- `StyleHeaderAlign` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stderr]     = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/hmi/style.rs:354:45
[INFO] [stderr]     |
[INFO] [stderr] 354 | #[derive(Copy, Clone, Debug, FromPrimitive, ToPrimitive, Eq, PartialEq)]
[INFO] [stderr]     |                                             ^----------
[INFO] [stderr]     |                                             |
[INFO] [stderr]     |                                             `ToPrimitive` is not local
[INFO] [stderr]     |                                             move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_StyleHeaderAlign`
[INFO] [stderr] 355 | pub enum StyleHeaderAlign {
[INFO] [stderr]     |          ---------------- `StyleHeaderAlign` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = note: the derive macro `ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stderr]     = note: this warning originates in the derive macro `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: the type `freetype_sys::FT_Raster_Params` does not permit zero-initialization
[INFO] [stderr]   --> src/hmi/text_engine.rs:68:31
[INFO] [stderr]    |
[INFO] [stderr] 68 |       let mut raster_params = std::mem::zeroed::<FT_Raster_Params>();
[INFO] [stderr]    |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |                               |
[INFO] [stderr]    |                               this code causes undefined behavior when executed
[INFO] [stderr]    |                               help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stderr]    |
[INFO] [stderr]    = note: function pointers must be non-null
[INFO] [stderr]    = note: `#[warn(invalid_value)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stderr]    --> src/hmi/vertex_output.rs:202:8
[INFO] [stderr]     |
[INFO] [stderr] 202 |       .into_iter()
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this changes meaning in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stderr]     = note: `#[warn(array_into_iter)]` on by default
[INFO] [stderr] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stderr]     |
[INFO] [stderr] 202 |       .iter()
[INFO] [stderr]     |        ~~~~
[INFO] [stderr] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stderr]     |
[INFO] [stderr] 196 ~       IntoIterator::into_iter([
[INFO] [stderr] 197 |         Vec2F32::new(dy, -dx) + p1,
[INFO] [stderr] ...
[INFO] [stderr] 200 |         Vec2F32::new(-dy, dx) + p1,
[INFO] [stderr] 201 ~       ])
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stderr]    --> src/hmi/vertex_output.rs:207:26
[INFO] [stderr]     |
[INFO] [stderr] 207 |       [0, 1, 2, 0, 2, 3].into_iter().for_each(|&offset| {
[INFO] [stderr]     |                          ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this changes meaning in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stderr] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stderr]     |
[INFO] [stderr] 207 |       [0, 1, 2, 0, 2, 3].iter().for_each(|&offset| {
[INFO] [stderr]     |                          ~~~~
[INFO] [stderr] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stderr]     |
[INFO] [stderr] 207 |       IntoIterator::into_iter([0, 1, 2, 0, 2, 3]).for_each(|&offset| {
[INFO] [stderr]     |       ++++++++++++++++++++++++                  ~
[INFO] [stderr] 
[INFO] [stderr] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stderr]    --> src/hmi/vertex_output.rs:535:6
[INFO] [stderr]     |
[INFO] [stderr] 535 |     .into_iter()
[INFO] [stderr]     |      ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this changes meaning in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stderr] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stderr]     |
[INFO] [stderr] 535 |     .iter()
[INFO] [stderr]     |      ~~~~
[INFO] [stderr] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stderr]     |
[INFO] [stderr] 529 ~     IntoIterator::into_iter([
[INFO] [stderr] 530 |       (Vec2F32::new(rect.x, rect.y), col_left),
[INFO] [stderr] ...
[INFO] [stderr] 533 |       (Vec2F32::new(rect.x, rect.y + rect.h), col_bottom),
[INFO] [stderr] 534 ~     ])
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stderr]    --> src/hmi/vertex_output.rs:542:24
[INFO] [stderr]     |
[INFO] [stderr] 542 |     [0, 1, 2, 0, 2, 3].into_iter().for_each(|&offset| {
[INFO] [stderr]     |                        ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this changes meaning in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stderr] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stderr]     |
[INFO] [stderr] 542 |     [0, 1, 2, 0, 2, 3].iter().for_each(|&offset| {
[INFO] [stderr]     |                        ~~~~
[INFO] [stderr] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stderr]     |
[INFO] [stderr] 542 |     IntoIterator::into_iter([0, 1, 2, 0, 2, 3]).for_each(|&offset| {
[INFO] [stderr]     |     ++++++++++++++++++++++++                  ~
[INFO] [stderr] 
[INFO] [stderr] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stderr]    --> src/hmi/vertex_output.rs:671:8
[INFO] [stderr]     |
[INFO] [stderr] 671 |       .into_iter()
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this changes meaning in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stderr] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stderr]     |
[INFO] [stderr] 671 |       .iter()
[INFO] [stderr]     |        ~~~~
[INFO] [stderr] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stderr]     |
[INFO] [stderr] 670 |     IntoIterator::into_iter([(a, uva), (b, uvb), (c, uvc), (d, uvd)])
[INFO] [stderr]     |     ++++++++++++++++++++++++                                        ~
[INFO] [stderr] 
[INFO] [stderr] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stderr]    --> src/hmi/vertex_output.rs:676:24
[INFO] [stderr]     |
[INFO] [stderr] 676 |     [0, 1, 2, 0, 2, 3].into_iter().for_each(|&offset| {
[INFO] [stderr]     |                        ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this changes meaning in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stderr] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stderr]     |
[INFO] [stderr] 676 |     [0, 1, 2, 0, 2, 3].iter().for_each(|&offset| {
[INFO] [stderr]     |                        ~~~~
[INFO] [stderr] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stderr]     |
[INFO] [stderr] 676 |     IntoIterator::into_iter([0, 1, 2, 0, 2, 3]).for_each(|&offset| {
[INFO] [stderr]     |     ++++++++++++++++++++++++                  ~
[INFO] [stderr] 
[INFO] [stderr] warning: `simple_ui` (bin "simple_ui" test) generated 36 warnings (run `cargo fix --bin "simple_ui" --tests` to apply 17 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.08s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nom v1.2.4
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/simple_ui-8e60bd3f823481a5)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test hmi::buffer::tests::test_dyn_buffer_alloc ... ok
[INFO] [stdout] test hmi::buffer::tests::test_fixed_buffer ... ok
[INFO] [stdout] test math::color_conversion::tests::test_hsl_to_rgb ... ok
[INFO] [stdout] test math::colors::tests::test_conversion_from_html ... ok
[INFO] [stdout] test math::colors::tests::test_conversion_from_slice ... ok
[INFO] [stdout] test sys::memory_mapped_file::tests::test_memory_mapped_file ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- sys::memory_mapped_file::tests::test_memory_mapped_file stdout ----
[INFO] [stdout] thread 'sys::memory_mapped_file::tests::test_memory_mapped_file' panicked at src/sys/memory_mapped_file.rs:332:44:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x55f930fcea0a - std::backtrace_rs::backtrace::libunwind::trace::h5a5b8284f2d0c266
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/../../backtrace/src/backtrace/libunwind.rs:116:5
[INFO] [stdout]    1:     0x55f930fcea0a - std::backtrace_rs::backtrace::trace_unsynchronized::h76d4f1c9b0b875e3
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x55f930fcea0a - std::sys::backtrace::_print_fmt::hc4546b8364a537c6
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x55f930fcea0a - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h5b6bd5631a6d1f6b
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x55f930ff4993 - core::fmt::rt::Argument::fmt::h270f6602a2b96f62
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/core/src/fmt/rt.rs:177:76
[INFO] [stdout]    5:     0x55f930ff4993 - core::fmt::write::h7550c97b06c86515
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/core/src/fmt/mod.rs:1186:21
[INFO] [stdout]    6:     0x55f930fcbbd3 - std::io::Write::write_fmt::h509ff860e5956e5e
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/io/mod.rs:1839:15
[INFO] [stdout]    7:     0x55f930fce852 - std::sys::backtrace::BacktraceLock::print::h2395ccd2c84ba3aa
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    8:     0x55f930fcfe6a - std::panicking::default_hook::{{closure}}::he19d4c7230e07961
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/panicking.rs:268:22
[INFO] [stdout]    9:     0x55f930fcfc74 - std::panicking::default_hook::hf614597d3c67bbdb
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/panicking.rs:292:9
[INFO] [stdout]   10:     0x55f930f955b9 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h39b51ce4599c23d1
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/alloc/src/boxed.rs:2468:9
[INFO] [stdout]   11:     0x55f930f955b9 - test::test_main::{{closure}}::he977ae839a582784
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/test/src/lib.rs:133:21
[INFO] [stdout]   12:     0x55f930fd0508 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h9455091b6b06f9fb
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/alloc/src/boxed.rs:2468:9
[INFO] [stdout]   13:     0x55f930fd0508 - std::panicking::rust_panic_with_hook::h8942133a8b252070
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/panicking.rs:809:13
[INFO] [stdout]   14:     0x55f930fd02ca - std::panicking::begin_panic_handler::{{closure}}::hb5f5963570096b29
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/panicking.rs:674:13
[INFO] [stdout]   15:     0x55f930fceee9 - std::sys::backtrace::__rust_end_short_backtrace::h6208cedc1922feda
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/sys/backtrace.rs:170:18
[INFO] [stdout]   16:     0x55f930fcff5c - rust_begin_unwind
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/panicking.rs:665:5
[INFO] [stdout]   17:     0x55f930f55a60 - core::panicking::panic_fmt::h0c3082644d1bf418
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/core/src/panicking.rs:74:14
[INFO] [stdout]   18:     0x55f930f55e06 - core::result::unwrap_failed::hd20b4aa073bda1e2
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/core/src/result.rs:1700:5
[INFO] [stdout]   19:     0x55f930f5c82d - core::result::Result<T,E>::unwrap::h0f053f61bb20ea18
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/core/src/result.rs:1104:23
[INFO] [stdout]   20:     0x55f930f5c82d - simple_ui::sys::memory_mapped_file::tests::test_memory_mapped_file::hff9a3d4396fe6ae3
[INFO] [stdout]                                at /opt/rustwide/workdir/src/sys/memory_mapped_file.rs:332:19
[INFO] [stdout]   21:     0x55f930f5c6d7 - simple_ui::sys::memory_mapped_file::tests::test_memory_mapped_file::{{closure}}::h76f7ebde73cc1b7d
[INFO] [stdout]                                at /opt/rustwide/workdir/src/sys/memory_mapped_file.rs:326:31
[INFO] [stdout]   22:     0x55f930f577a6 - core::ops::function::FnOnce::call_once::h6f9a5a137a97012e
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x55f930f99f7b - core::ops::function::FnOnce::call_once::h109cf8051a59b34e
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x55f930f99f7b - test::__rust_begin_short_backtrace::hf4fff89d377446ba
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/test/src/lib.rs:621:18
[INFO] [stdout]   25:     0x55f930f997b7 - test::run_test_in_process::{{closure}}::h0e39181dd7ee5a43
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/test/src/lib.rs:644:60
[INFO] [stdout]   26:     0x55f930f997b7 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hc5a66a30f0bdfd1f
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   27:     0x55f930f997b7 - std::panicking::try::do_call::h873b7cf639554a5e
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/panicking.rs:557:40
[INFO] [stdout]   28:     0x55f930f997b7 - std::panicking::try::hdb19862fad9c8bd1
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/panicking.rs:520:19
[INFO] [stdout]   29:     0x55f930f997b7 - std::panic::catch_unwind::h281fe732d236d260
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/panic.rs:358:14
[INFO] [stdout]   30:     0x55f930f997b7 - test::run_test_in_process::h949b6df8457ed338
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/test/src/lib.rs:644:27
[INFO] [stdout]   31:     0x55f930f997b7 - test::run_test::{{closure}}::h52c556a6d4740e10
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/test/src/lib.rs:565:43
[INFO] [stdout]   32:     0x55f930f5ea94 - test::run_test::{{closure}}::h4237f6381c45ccb9
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/test/src/lib.rs:595:41
[INFO] [stdout]   33:     0x55f930f5ea94 - std::sys::backtrace::__rust_begin_short_backtrace::h505c97a579eca628
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/sys/backtrace.rs:154:18
[INFO] [stdout]   34:     0x55f930f6215e - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::h9e86b2e2bc107ea3
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/thread/mod.rs:538:17
[INFO] [stdout]   35:     0x55f930f6215e - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h8b06ddb275ff4a25
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   36:     0x55f930f6215e - std::panicking::try::do_call::hb26ecd7cd9a9355d
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/panicking.rs:557:40
[INFO] [stdout]   37:     0x55f930f6215e - std::panicking::try::h8ddeca9d705f9069
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/panicking.rs:520:19
[INFO] [stdout]   38:     0x55f930f6215e - std::panic::catch_unwind::h49e1c33078844c46
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/panic.rs:358:14
[INFO] [stdout]   39:     0x55f930f6215e - std::thread::Builder::spawn_unchecked_::{{closure}}::h6073db6ff56ad35d
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/thread/mod.rs:537:30
[INFO] [stdout]   40:     0x55f930f6215e - core::ops::function::FnOnce::call_once{{vtable.shim}}::h2c5a5f3779c774f1
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x55f930fd426b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hf75717d9f28faebf
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/alloc/src/boxed.rs:2454:9
[INFO] [stdout]   42:     0x55f930fd426b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h7bd883a5f3c5f3c1
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/alloc/src/boxed.rs:2454:9
[INFO] [stdout]   43:     0x55f930fd426b - std::sys::pal::unix::thread::Thread::new::thread_start::hcc78f3943333fa94
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/sys/pal/unix/thread.rs:105:17
[INFO] [stdout]   44:     0x7107756e8ac3 - <unknown>
[INFO] [stdout]   45:     0x710775779a04 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     sys::memory_mapped_file::tests::test_memory_mapped_file
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 5 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--bin simple_ui`
[INFO] running `Command { std: "docker" "inspect" "26f887bb9e64f988a091b6c0fde5db3cded5741385998d6b870bcb01d93fb59f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "26f887bb9e64f988a091b6c0fde5db3cded5741385998d6b870bcb01d93fb59f", kill_on_drop: false }`
[INFO] [stdout] 26f887bb9e64f988a091b6c0fde5db3cded5741385998d6b870bcb01d93fb59f
