[INFO] cloning repository https://github.com/bluedesignlive/smartui-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/bluedesignlive/smartui-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbluedesignlive%2Fsmartui-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbluedesignlive%2Fsmartui-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 855d3428c70787c45addfb53a138775be4dcc90d
[INFO] checking bluedesignlive/smartui-rs against 67854e511de21d881bb16426996cd4259d44aa2e for pr-161154
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbluedesignlive%2Fsmartui-rs" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/bluedesignlive/smartui-rs
[INFO] removed 0 missing examples
[INFO] finished tweaking git repo https://github.com/bluedesignlive/smartui-rs
[INFO] tweaked toml for git repo https://github.com/bluedesignlive/smartui-rs written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/bluedesignlive/smartui-rs on toolchain 67854e511de21d881bb16426996cd4259d44aa2e
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+67854e511de21d881bb16426996cd4259d44aa2e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/bluedesignlive/smartui-rs 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" "+67854e511de21d881bb16426996cd4259d44aa2e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tiny-skia-path v0.12.0
[INFO] [stderr]   Downloaded jxl-coding v0.4.1
[INFO] [stderr]   Downloaded jxl-image v0.10.0
[INFO] [stderr]   Downloaded ini v1.3.0
[INFO] [stderr]   Downloaded jxl-threadpool v0.1.2
[INFO] [stderr]   Downloaded jxl-bitstream v0.4.1
[INFO] [stderr]   Downloaded configparser v1.0.0
[INFO] [stderr]   Downloaded drm-sys v0.8.1
[INFO] [stderr]   Downloaded jxl-grid v0.5.3
[INFO] [stderr]   Downloaded drm-ffi v0.9.1
[INFO] [stderr]   Downloaded jxl-oxide v0.9.1
[INFO] [stderr]   Downloaded jxl-vardct v0.8.0
[INFO] [stderr]   Downloaded jxl-frame v0.10.0
[INFO] [stderr]   Downloaded jxl-modular v0.8.1
[INFO] [stderr]   Downloaded jxl-color v0.8.1
[INFO] [stderr]   Downloaded lru v0.18.0
[INFO] [stderr]   Downloaded jxl-render v0.9.1
[INFO] [stderr]   Downloaded tiny-skia v0.12.0
[INFO] [stderr]   Downloaded taffy v0.10.1
[INFO] [stderr]   Downloaded femtovg v0.25.1
[INFO] [stderr]   Downloaded morphorm v0.8.0
[INFO] [stderr]   Downloaded earcutr v0.2.0
[INFO] [stderr]   Downloaded speedy2d v3.0.0
[INFO] [stderr]   Downloaded capnpc v0.22.0
[INFO] [stderr]   Downloaded capnp v0.22.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 3569456e588250ed43fdf9a75fea714c84382bf64c341b50d4a6e4d63d21a289
[INFO] running `Command { std: "docker" "start" "3569456e588250ed43fdf9a75fea714c84382bf64c341b50d4a6e4d63d21a289", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3569456e588250ed43fdf9a75fea714c84382bf64c341b50d4a6e4d63d21a289", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "3569456e588250ed43fdf9a75fea714c84382bf64c341b50d4a6e4d63d21a289" "/opt/rustwide/cargo-home/bin/cargo" "+67854e511de21d881bb16426996cd4259d44aa2e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3569456e588250ed43fdf9a75fea714c84382bf64c341b50d4a6e4d63d21a289", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "3569456e588250ed43fdf9a75fea714c84382bf64c341b50d4a6e4d63d21a289" "/opt/rustwide/cargo-home/bin/cargo" "+67854e511de21d881bb16426996cd4259d44aa2e" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking bitflags v2.11.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling wayland-sys v0.31.10
[INFO] [stderr]    Compiling cc v1.2.57
[INFO] [stderr]    Compiling wayland-client v0.31.13
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling wayland-scanner v0.31.9
[INFO] [stderr]     Checking jxl-bitstream v0.4.1
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]    Compiling zerocopy v0.8.47
[INFO] [stderr]     Checking ttf-parser v0.25.1
[INFO] [stderr]     Checking rayon v1.12.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking jxl-grid v0.5.3
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]     Checking memmap2 v0.9.10
[INFO] [stderr]    Compiling drm-sys v0.8.1
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling object v0.37.3
[INFO] [stderr]     Checking linux-raw-sys v0.9.4
[INFO] [stderr]     Checking jxl-coding v0.4.1
[INFO] [stderr]    Compiling drm-fourcc v2.2.0
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]    Compiling winit v0.30.13
[INFO] [stderr]    Compiling glutin v0.32.3
[INFO] [stderr]     Checking pxfm v0.1.28
[INFO] [stderr]     Checking gimli v0.32.3
[INFO] [stderr]    Compiling capnp v0.22.0
[INFO] [stderr]     Checking byteorder-lite v0.1.0
[INFO] [stderr]    Compiling cfg_aliases v0.1.1
[INFO] [stderr]     Checking owned_ttf_parser v0.15.2
[INFO] [stderr]    Compiling glutin_egl_sys v0.7.1
[INFO] [stderr]    Compiling glutin_glx_sys v0.6.1
[INFO] [stderr]    Compiling speedy2d v3.0.0
[INFO] [stderr]     Checking tinyvec v1.11.0
[INFO] [stderr]    Compiling tiny-xlib v0.2.4
[INFO] [stderr]     Checking xkbcommon-dl v0.4.2
[INFO] [stderr]    Compiling wayland-backend v0.3.14
[INFO] [stderr]    Compiling glutin-winit v0.5.0
[INFO] [stderr]     Checking zune-core v0.5.1
[INFO] [stderr]     Checking weezl v0.1.12
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]     Checking quick-error v2.0.1
[INFO] [stderr]     Checking dpi v0.1.2
[INFO] [stderr]     Checking ctor-lite v0.1.2
[INFO] [stderr]     Checking fastrand v2.3.0
[INFO] [stderr]     Checking rustc-demangle v0.1.27
[INFO] [stderr]     Checking zune-jpeg v0.5.15
[INFO] [stderr]     Checking png v0.18.1
[INFO] [stderr]     Checking unicode-normalization v0.1.25
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking owned_ttf_parser v0.25.1
[INFO] [stderr]     Checking rusttype v0.9.3
[INFO] [stderr]     Checking jxl-threadpool v0.1.2
[INFO] [stderr]     Checking earcutr v0.2.0
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]     Checking ab_glyph v0.2.32
[INFO] [stderr]     Checking addr2line v0.25.1
[INFO] [stderr]     Checking jxl-color v0.8.1
[INFO] [stderr]     Checking jxl-modular v0.8.1
[INFO] [stderr]     Checking zune-inflate v0.2.54
[INFO] [stderr]     Checking fax v0.2.7
[INFO] [stderr]     Checking futures-core v0.3.32
[INFO] [stderr]     Checking configparser v1.0.0
[INFO] [stderr]     Checking glow v0.7.2
[INFO] [stderr]     Checking grid v1.0.0
[INFO] [stderr]    Compiling capnpc v0.22.0
[INFO] [stderr]     Checking color_quant v1.1.0
[INFO] [stderr]     Checking bit_field v0.10.3
[INFO] [stderr]     Checking futures-sink v0.3.32
[INFO] [stderr]     Checking ttf-parser v0.21.1
[INFO] [stderr]     Checking owned-alloc v0.2.0
[INFO] [stderr]     Checking lru v0.18.0
[INFO] [stderr]     Checking imgref v1.12.0
[INFO] [stderr]     Checking lebe v0.5.3
[INFO] [stderr]     Checking jxl-image v0.10.0
[INFO] [stderr]     Checking taffy v0.10.1
[INFO] [stderr]     Checking flume v0.12.0
[INFO] [stderr]     Checking lockfree v0.5.1
[INFO] [stderr]     Checking jxl-vardct v0.8.0
[INFO] [stderr]     Checking gif v0.14.2
[INFO] [stderr]     Checking ini v1.3.0
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking arc-swap v1.9.1
[INFO] [stderr]     Checking image-webp v0.2.4
[INFO] [stderr]     Checking morphorm v0.8.0
[INFO] [stderr]     Checking rustc-hash v2.1.2
[INFO] [stderr]     Checking jxl-frame v0.10.0
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling zerocopy-derive v0.8.47
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling smartui v0.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking jxl-render v0.9.1
[INFO] [stderr]     Checking moxcms v0.8.1
[INFO] [stderr]     Checking polling v3.11.0
[INFO] [stderr]     Checking gethostname v1.1.0
[INFO] [stderr]     Checking drm-ffi v0.9.1
[INFO] [stderr]     Checking fontdue v0.9.3
[INFO] [stderr]     Checking x11rb v0.13.2
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking backtrace v0.3.76
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]     Checking wayland-csd-frame v0.3.0
[INFO] [stderr]     Checking calloop v0.13.0
[INFO] [stderr]     Checking tiny-skia-path v0.11.4
[INFO] [stderr]     Checking rgb v0.8.53
[INFO] [stderr]     Checking rustybuzz v0.20.1
[INFO] [stderr]     Checking drm v0.14.1
[INFO] [stderr]     Checking tiny-skia-path v0.12.0
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]     Checking tiny-skia v0.11.4
[INFO] [stderr]     Checking tiny-skia v0.12.0
[INFO] [stderr]     Checking jxl-oxide v0.9.1
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking image v0.25.10
[INFO] [stderr]     Checking wayland-protocols v0.32.11
[INFO] [stderr]     Checking calloop-wayland-source v0.3.0
[INFO] [stderr]     Checking wayland-cursor v0.31.13
[INFO] [stderr]     Checking softbuffer v0.4.8
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking serde_yaml v0.9.34+deprecated
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking femtovg v0.25.1
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking tiff v0.11.3
[INFO] [stderr]     Checking exr v1.74.0
[INFO] [stderr]     Checking wayland-protocols-wlr v0.3.11
[INFO] [stderr]     Checking wayland-protocols-plasma v0.3.11
[INFO] [stderr]     Checking smithay-client-toolkit v0.19.2
[INFO] [stderr]     Checking sctk-adwaita v0.10.1
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]   --> src/arena.rs:36:32
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn slot(self) -> u32 { (self.0.get() as u32) }
[INFO] [stdout]    |                                ^                   ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 36 -     pub fn slot(self) -> u32 { (self.0.get() as u32) }
[INFO] [stdout] 36 +     pub fn slot(self) -> u32 { self.0.get() as u32 }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Rect` and `TextMetrics`
[INFO] [stdout]   --> src/tree.rs:12:33
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::geom::{Color, Point, Rect, Size, TextMetrics};
[INFO] [stdout]    |                                 ^^^^        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::app::App`
[INFO] [stdout]   --> src/builder.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::app::App;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::signal::SignalId`
[INFO] [stdout]   --> src/builder.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::signal::SignalId;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SurfaceAttributesBuilder`
[INFO] [stdout]   --> src/renderer/femtovg.rs:31:32
[INFO] [stdout]    |
[INFO] [stdout] 31 | use glutin::surface::{Surface, SurfaceAttributesBuilder, WindowSurface};
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ffi::CString`
[INFO] [stdout]   --> src/renderer/femtovg.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | use std::ffi::CString;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Rect`
[INFO] [stdout]   --> src/renderer/speedy2d.rs:21:26
[INFO] [stdout]    |
[INFO] [stdout] 21 | use crate::geom::{Color, Rect, Size};
[INFO] [stdout]    |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ButtonData`, `CheckboxData`, `FlexData`, `GridData`, `ImageData`, `SizedBoxData`, `SliderData`, `StackData`, `TextData`, `TextInputData`, and `WindowData`
[INFO] [stdout]   --> src/layout/taffy_engine.rs:20:62
[INFO] [stdout]    |
[INFO] [stdout] 20 |     Direction as SuiDir, Visibility, WidgetKind, WidgetTree, WindowData,
[INFO] [stdout]    |                                                              ^^^^^^^^^^
[INFO] [stdout] 21 |     FlexData, GridData, StackData, SizedBoxData, TextData, ButtonData,
[INFO] [stdout]    |     ^^^^^^^^  ^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 22 |     ImageData, TextInputData, CheckboxData, SliderData,
[INFO] [stdout]    |     ^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ButtonData`, `CheckboxData`, `ImageData`, `SliderData`, `TextData`, and `TextInputData`
[INFO] [stdout]   --> src/layout/handrolled.rs:23:50
[INFO] [stdout]    |
[INFO] [stdout] 23 |     FlexData, GridData, StackData, SizedBoxData, TextData, ButtonData,
[INFO] [stdout]    |                                                  ^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 24 |     ImageData, TextInputData, CheckboxData, SliderData,
[INFO] [stdout]    |     ^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SizedBoxData`, `TextData`, and `Visibility`
[INFO] [stdout]   --> src/magick.rs:57:30
[INFO] [stdout]    |
[INFO] [stdout] 57 | use crate::tree::{Direction, SizedBoxData, TextData, Visibility, WidgetKind};
[INFO] [stdout]    |                              ^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Transformations`
[INFO] [stdout]  --> src/image/png.rs:8:31
[INFO] [stdout]   |
[INFO] [stdout] 8 | use png::{ColorType, Decoder, Transformations};
[INFO] [stdout]   |                               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ImageMeta` and `PixelData`
[INFO] [stdout]   --> src/image/exr.rs:12:84
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::image::decoder::{DecodeError, DecodeLimits, DecodedImage, ImageDecoder, ImageMeta, PixelData};
[INFO] [stdout]    |                                                                                    ^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PixelData`
[INFO] [stdout]   --> src/image/ico.rs:14:27
[INFO] [stdout]    |
[INFO] [stdout] 14 |     ImageMeta, LoopCount, PixelData,
[INFO] [stdout]    |                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]   --> src/arena.rs:36:32
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn slot(self) -> u32 { (self.0.get() as u32) }
[INFO] [stdout]    |                                ^                   ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 36 -     pub fn slot(self) -> u32 { (self.0.get() as u32) }
[INFO] [stdout] 36 +     pub fn slot(self) -> u32 { self.0.get() as u32 }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Rect` and `TextMetrics`
[INFO] [stdout]   --> src/tree.rs:12:33
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::geom::{Color, Point, Rect, Size, TextMetrics};
[INFO] [stdout]    |                                 ^^^^        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::app::App`
[INFO] [stdout]   --> src/builder.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::app::App;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::signal::SignalId`
[INFO] [stdout]   --> src/builder.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::signal::SignalId;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ButtonBuilder`, `FlexBuilder`, `TextBuilder`, and `WindowBuilder`
[INFO] [stdout]    --> src/app.rs:388:26
[INFO] [stdout]     |
[INFO] [stdout] 388 |     use crate::builder::{ButtonBuilder, FlexBuilder, TextBuilder, WindowBuilder};
[INFO] [stdout]     |                          ^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LayoutEngine` and `MorphormLayout`
[INFO] [stdout]    --> src/paint.rs:432:25
[INFO] [stdout]     |
[INFO] [stdout] 432 |     use crate::layout::{LayoutEngine, MorphormLayout};
[INFO] [stdout]     |                         ^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SurfaceAttributesBuilder`
[INFO] [stdout]   --> src/renderer/femtovg.rs:31:32
[INFO] [stdout]    |
[INFO] [stdout] 31 | use glutin::surface::{Surface, SurfaceAttributesBuilder, WindowSurface};
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ffi::CString`
[INFO] [stdout]   --> src/renderer/femtovg.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | use std::ffi::CString;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DamageRegion` and `build_paint_list`
[INFO] [stdout]   --> src/renderer/null.rs:40:24
[INFO] [stdout]    |
[INFO] [stdout] 40 |     use crate::paint::{build_paint_list, DamageRegion, PaintCommand};
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DamageRegion`
[INFO] [stdout]    --> src/renderer/softbuffer.rs:197:24
[INFO] [stdout]     |
[INFO] [stdout] 197 |     use crate::paint::{DamageRegion, PaintCommandList};
[INFO] [stdout]     |                        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ButtonData`, `CheckboxData`, `FlexData`, `GridData`, `ImageData`, `SizedBoxData`, `SliderData`, `StackData`, `TextData`, and `TextInputData`
[INFO] [stdout]   --> src/layout/taffy_engine.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     FlexData, GridData, StackData, SizedBoxData, TextData, ButtonData,
[INFO] [stdout]    |     ^^^^^^^^  ^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 22 |     ImageData, TextInputData, CheckboxData, SliderData,
[INFO] [stdout]    |     ^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ButtonData`, `CheckboxData`, `ImageData`, `SliderData`, `TextData`, and `TextInputData`
[INFO] [stdout]   --> src/layout/handrolled.rs:23:50
[INFO] [stdout]    |
[INFO] [stdout] 23 |     FlexData, GridData, StackData, SizedBoxData, TextData, ButtonData,
[INFO] [stdout]    |                                                  ^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 24 |     ImageData, TextInputData, CheckboxData, SliderData,
[INFO] [stdout]    |     ^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SizedBoxData` and `TextData`
[INFO] [stdout]   --> src/magick.rs:57:30
[INFO] [stdout]    |
[INFO] [stdout] 57 | use crate::tree::{Direction, SizedBoxData, TextData, Visibility, WidgetKind};
[INFO] [stdout]    |                              ^^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ButtonData`, `TextData`, and `TextStyle`
[INFO] [stdout]    --> src/magick.rs:637:23
[INFO] [stdout]     |
[INFO] [stdout] 637 |     use crate::tree::{ButtonData, FlexData, LayoutStyle, TextData, TextStyle, WindowData};
[INFO] [stdout]     |                       ^^^^^^^^^^                         ^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Transformations`
[INFO] [stdout]  --> src/image/png.rs:8:31
[INFO] [stdout]   |
[INFO] [stdout] 8 | use png::{ColorType, Decoder, Transformations};
[INFO] [stdout]   |                               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> src/image/gif.rs:172:9
[INFO] [stdout]     |
[INFO] [stdout] 172 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ImageMeta` and `PixelData`
[INFO] [stdout]   --> src/image/exr.rs:12:84
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::image::decoder::{DecodeError, DecodeLimits, DecodedImage, ImageDecoder, ImageMeta, PixelData};
[INFO] [stdout]    |                                                                                    ^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PixelData`
[INFO] [stdout]   --> src/image/ico.rs:14:27
[INFO] [stdout]    |
[INFO] [stdout] 14 |     ImageMeta, LoopCount, PixelData,
[INFO] [stdout]    |                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/layout/taffy_engine.rs:93:86
[INFO] [stdout]    |
[INFO] [stdout] 93 |                 grid_template_columns: vec![GridTemplateComponent::<String>::from_fr(1.0); g.layout.grid_columns.max(1) as usize],
[INFO] [stdout]    |                                                                                      ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout]    = note: `#[warn(float_literal_f32_fallback)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/layout/taffy_engine.rs:94:83
[INFO] [stdout]    |
[INFO] [stdout] 94 |                 grid_template_rows: vec![GridTemplateComponent::<String>::from_fr(1.0); g.layout.grid_rows.max(1) as usize],
[INFO] [stdout]    |                                                                                   ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/layout/taffy_engine.rs:114:34
[INFO] [stdout]     |
[INFO] [stdout] 114 |                     left: length(8.0),
[INFO] [stdout]     |                                  ^^^ help: explicitly specify the type as `f32`: `8.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/layout/taffy_engine.rs:115:35
[INFO] [stdout]     |
[INFO] [stdout] 115 |                     right: length(8.0),
[INFO] [stdout]     |                                   ^^^ help: explicitly specify the type as `f32`: `8.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/layout/taffy_engine.rs:116:33
[INFO] [stdout]     |
[INFO] [stdout] 116 |                     top: length(4.0),
[INFO] [stdout]     |                                 ^^^ help: explicitly specify the type as `f32`: `4.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/layout/taffy_engine.rs:117:36
[INFO] [stdout]     |
[INFO] [stdout] 117 |                     bottom: length(4.0),
[INFO] [stdout]     |                                    ^^^ help: explicitly specify the type as `f32`: `4.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/layout/taffy_engine.rs:139:36
[INFO] [stdout]     |
[INFO] [stdout] 139 |                     height: length(32.0),
[INFO] [stdout]     |                                    ^^^^ help: explicitly specify the type as `f32`: `32.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/layout/taffy_engine.rs:146:35
[INFO] [stdout]     |
[INFO] [stdout] 146 |                     width: length(20.0),
[INFO] [stdout]     |                                   ^^^^ help: explicitly specify the type as `f32`: `20.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/layout/taffy_engine.rs:147:36
[INFO] [stdout]     |
[INFO] [stdout] 147 |                     height: length(20.0),
[INFO] [stdout]     |                                    ^^^^ help: explicitly specify the type as `f32`: `20.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/layout/taffy_engine.rs:155:36
[INFO] [stdout]     |
[INFO] [stdout] 155 |                     height: length(24.0),
[INFO] [stdout]     |                                    ^^^^ help: explicitly specify the type as `f32`: `24.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/layout/taffy_engine.rs:93:86
[INFO] [stdout]    |
[INFO] [stdout] 93 |                 grid_template_columns: vec![GridTemplateComponent::<String>::from_fr(1.0); g.layout.grid_columns.max(1) as usize],
[INFO] [stdout]    |                                                                                      ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout]    = note: `#[warn(float_literal_f32_fallback)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/layout/taffy_engine.rs:94:83
[INFO] [stdout]    |
[INFO] [stdout] 94 |                 grid_template_rows: vec![GridTemplateComponent::<String>::from_fr(1.0); g.layout.grid_rows.max(1) as usize],
[INFO] [stdout]    |                                                                                   ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/layout/taffy_engine.rs:114:34
[INFO] [stdout]     |
[INFO] [stdout] 114 |                     left: length(8.0),
[INFO] [stdout]     |                                  ^^^ help: explicitly specify the type as `f32`: `8.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/layout/taffy_engine.rs:115:35
[INFO] [stdout]     |
[INFO] [stdout] 115 |                     right: length(8.0),
[INFO] [stdout]     |                                   ^^^ help: explicitly specify the type as `f32`: `8.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/layout/taffy_engine.rs:116:33
[INFO] [stdout]     |
[INFO] [stdout] 116 |                     top: length(4.0),
[INFO] [stdout]     |                                 ^^^ help: explicitly specify the type as `f32`: `4.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/layout/taffy_engine.rs:117:36
[INFO] [stdout]     |
[INFO] [stdout] 117 |                     bottom: length(4.0),
[INFO] [stdout]     |                                    ^^^ help: explicitly specify the type as `f32`: `4.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/layout/taffy_engine.rs:139:36
[INFO] [stdout]     |
[INFO] [stdout] 139 |                     height: length(32.0),
[INFO] [stdout]     |                                    ^^^^ help: explicitly specify the type as `f32`: `32.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/layout/taffy_engine.rs:146:35
[INFO] [stdout]     |
[INFO] [stdout] 146 |                     width: length(20.0),
[INFO] [stdout]     |                                   ^^^^ help: explicitly specify the type as `f32`: `20.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/layout/taffy_engine.rs:147:36
[INFO] [stdout]     |
[INFO] [stdout] 147 |                     height: length(20.0),
[INFO] [stdout]     |                                    ^^^^ help: explicitly specify the type as `f32`: `20.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/layout/taffy_engine.rs:155:36
[INFO] [stdout]     |
[INFO] [stdout] 155 |                     height: length(24.0),
[INFO] [stdout]     |                                    ^^^^ help: explicitly specify the type as `f32`: `24.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/reactive/custom.rs:667:21
[INFO] [stdout]     |
[INFO] [stdout] 667 |         if let Some(mut inner) = backend.effects.lock().remove(&e.id) {
[INFO] [stdout]     |                     ----^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strings`
[INFO] [stdout]    --> src/input/mod.rs:296:5
[INFO] [stdout]     |
[INFO] [stdout] 296 |     strings: &mut StringPool,
[INFO] [stdout]     |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strings`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/reactive/custom.rs:667:21
[INFO] [stdout]     |
[INFO] [stdout] 667 |         if let Some(mut inner) = backend.effects.lock().remove(&e.id) {
[INFO] [stdout]     |                     ----^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/input/winit.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 209 |         Equal => Key::Equals,
[INFO] [stdout]     |         ^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/input/winit.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 184 |         ArrowUp => Key::ArrowUp,
[INFO] [stdout]     |         ------- matches some of the same values
[INFO] [stdout] 185 |         ArrowDown => Key::ArrowDown,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 186 |         ArrowLeft => Key::ArrowLeft,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 187 |         ArrowRight => Key::ArrowRight,
[INFO] [stdout]     |         ---------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 209 |         Equal => Key::Equals,
[INFO] [stdout]     |         ^^^^^ ...and 30 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/input/winit.rs:210:9
[INFO] [stdout]     |
[INFO] [stdout] 210 |         BracketLeft => Key::LeftBracket,
[INFO] [stdout]     |         ^^^^^^^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/input/winit.rs:210:9
[INFO] [stdout]     |
[INFO] [stdout] 184 |         ArrowUp => Key::ArrowUp,
[INFO] [stdout]     |         ------- matches some of the same values
[INFO] [stdout] 185 |         ArrowDown => Key::ArrowDown,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 186 |         ArrowLeft => Key::ArrowLeft,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 187 |         ArrowRight => Key::ArrowRight,
[INFO] [stdout]     |         ---------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 210 |         BracketLeft => Key::LeftBracket,
[INFO] [stdout]     |         ^^^^^^^^^^^ ...and 30 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/input/winit.rs:211:9
[INFO] [stdout]     |
[INFO] [stdout] 211 |         BracketRight => Key::RightBracket,
[INFO] [stdout]     |         ^^^^^^^^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/input/winit.rs:211:9
[INFO] [stdout]     |
[INFO] [stdout] 184 |         ArrowUp => Key::ArrowUp,
[INFO] [stdout]     |         ------- matches some of the same values
[INFO] [stdout] 185 |         ArrowDown => Key::ArrowDown,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 186 |         ArrowLeft => Key::ArrowLeft,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 187 |         ArrowRight => Key::ArrowRight,
[INFO] [stdout]     |         ---------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 211 |         BracketRight => Key::RightBracket,
[INFO] [stdout]     |         ^^^^^^^^^^^^ ...and 30 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/input/winit.rs:212:9
[INFO] [stdout]     |
[INFO] [stdout] 212 |         Backslash => Key::Backslash,
[INFO] [stdout]     |         ^^^^^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/input/winit.rs:212:9
[INFO] [stdout]     |
[INFO] [stdout] 184 |         ArrowUp => Key::ArrowUp,
[INFO] [stdout]     |         ------- matches some of the same values
[INFO] [stdout] 185 |         ArrowDown => Key::ArrowDown,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 186 |         ArrowLeft => Key::ArrowLeft,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 187 |         ArrowRight => Key::ArrowRight,
[INFO] [stdout]     |         ---------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 212 |         Backslash => Key::Backslash,
[INFO] [stdout]     |         ^^^^^^^^^ ...and 30 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/input/winit.rs:213:9
[INFO] [stdout]     |
[INFO] [stdout] 213 |         Semicolon => Key::Semicolon,
[INFO] [stdout]     |         ^^^^^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/input/winit.rs:213:9
[INFO] [stdout]     |
[INFO] [stdout] 184 |         ArrowUp => Key::ArrowUp,
[INFO] [stdout]     |         ------- matches some of the same values
[INFO] [stdout] 185 |         ArrowDown => Key::ArrowDown,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 186 |         ArrowLeft => Key::ArrowLeft,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 187 |         ArrowRight => Key::ArrowRight,
[INFO] [stdout]     |         ---------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 213 |         Semicolon => Key::Semicolon,
[INFO] [stdout]     |         ^^^^^^^^^ ...and 30 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/input/winit.rs:214:9
[INFO] [stdout]     |
[INFO] [stdout] 214 |         Quote => Key::Apostrophe,
[INFO] [stdout]     |         ^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/input/winit.rs:214:9
[INFO] [stdout]     |
[INFO] [stdout] 184 |         ArrowUp => Key::ArrowUp,
[INFO] [stdout]     |         ------- matches some of the same values
[INFO] [stdout] 185 |         ArrowDown => Key::ArrowDown,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 186 |         ArrowLeft => Key::ArrowLeft,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 187 |         ArrowRight => Key::ArrowRight,
[INFO] [stdout]     |         ---------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 214 |         Quote => Key::Apostrophe,
[INFO] [stdout]     |         ^^^^^ ...and 30 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/input/winit.rs:215:9
[INFO] [stdout]     |
[INFO] [stdout] 215 |         Backquote => Key::Grave,
[INFO] [stdout]     |         ^^^^^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/input/winit.rs:215:9
[INFO] [stdout]     |
[INFO] [stdout] 184 |         ArrowUp => Key::ArrowUp,
[INFO] [stdout]     |         ------- matches some of the same values
[INFO] [stdout] 185 |         ArrowDown => Key::ArrowDown,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 186 |         ArrowLeft => Key::ArrowLeft,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 187 |         ArrowRight => Key::ArrowRight,
[INFO] [stdout]     |         ---------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 215 |         Backquote => Key::Grave,
[INFO] [stdout]     |         ^^^^^^^^^ ...and 30 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/input/winit.rs:216:9
[INFO] [stdout]     |
[INFO] [stdout] 216 |         Comma => Key::Comma,
[INFO] [stdout]     |         ^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/input/winit.rs:216:9
[INFO] [stdout]     |
[INFO] [stdout] 184 |         ArrowUp => Key::ArrowUp,
[INFO] [stdout]     |         ------- matches some of the same values
[INFO] [stdout] 185 |         ArrowDown => Key::ArrowDown,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 186 |         ArrowLeft => Key::ArrowLeft,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 187 |         ArrowRight => Key::ArrowRight,
[INFO] [stdout]     |         ---------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 216 |         Comma => Key::Comma,
[INFO] [stdout]     |         ^^^^^ ...and 30 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/input/winit.rs:217:9
[INFO] [stdout]     |
[INFO] [stdout] 217 |         Period => Key::Period,
[INFO] [stdout]     |         ^^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/input/winit.rs:217:9
[INFO] [stdout]     |
[INFO] [stdout] 184 |         ArrowUp => Key::ArrowUp,
[INFO] [stdout]     |         ------- matches some of the same values
[INFO] [stdout] 185 |         ArrowDown => Key::ArrowDown,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 186 |         ArrowLeft => Key::ArrowLeft,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 187 |         ArrowRight => Key::ArrowRight,
[INFO] [stdout]     |         ---------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 217 |         Period => Key::Period,
[INFO] [stdout]     |         ^^^^^^ ...and 30 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/input/winit.rs:218:9
[INFO] [stdout]     |
[INFO] [stdout] 218 |         Slash => Key::Slash,
[INFO] [stdout]     |         ^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/input/winit.rs:218:9
[INFO] [stdout]     |
[INFO] [stdout] 184 |         ArrowUp => Key::ArrowUp,
[INFO] [stdout]     |         ------- matches some of the same values
[INFO] [stdout] 185 |         ArrowDown => Key::ArrowDown,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 186 |         ArrowLeft => Key::ArrowLeft,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 187 |         ArrowRight => Key::ArrowRight,
[INFO] [stdout]     |         ---------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 218 |         Slash => Key::Slash,
[INFO] [stdout]     |         ^^^^^ ...and 30 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/input/winit.rs:219:9
[INFO] [stdout]     |
[INFO] [stdout] 208 |         Minus => Key::Minus,
[INFO] [stdout]     |         ----- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 219 |         PrintScreen => Key::PrintScreen,
[INFO] [stdout]     |         ^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/input/winit.rs:220:9
[INFO] [stdout]     |
[INFO] [stdout] 208 |         Minus => Key::Minus,
[INFO] [stdout]     |         ----- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 220 |         ScrollLock => Key::ScrollLock,
[INFO] [stdout]     |         ^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/input/winit.rs:221:9
[INFO] [stdout]     |
[INFO] [stdout] 208 |         Minus => Key::Minus,
[INFO] [stdout]     |         ----- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 221 |         Pause => Key::Pause,
[INFO] [stdout]     |         ^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/input/winit.rs:222:9
[INFO] [stdout]     |
[INFO] [stdout] 208 |         Minus => Key::Minus,
[INFO] [stdout]     |         ----- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 222 |         ContextMenu => Key::Menu,
[INFO] [stdout]     |         ^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/input/winit.rs:223:9
[INFO] [stdout]     |
[INFO] [stdout] 223 |         _ => Key::Unknown(0),
[INFO] [stdout]     |         ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/input/winit.rs:223:9
[INFO] [stdout]     |
[INFO] [stdout] 184 |         ArrowUp => Key::ArrowUp,
[INFO] [stdout]     |         ------- matches some of the same values
[INFO] [stdout] 185 |         ArrowDown => Key::ArrowDown,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 186 |         ArrowLeft => Key::ArrowLeft,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 187 |         ArrowRight => Key::ArrowRight,
[INFO] [stdout]     |         ---------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 223 |         _ => Key::Unknown(0),
[INFO] [stdout]     |         ^ ...and 30 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Minus`
[INFO] [stdout]    --> src/input/winit.rs:208:9
[INFO] [stdout]     |
[INFO] [stdout] 208 |         Minus => Key::Minus,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_Minus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Equal`
[INFO] [stdout]    --> src/input/winit.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 209 |         Equal => Key::Equals,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_Equal`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `BracketLeft`
[INFO] [stdout]    --> src/input/winit.rs:210:9
[INFO] [stdout]     |
[INFO] [stdout] 210 |         BracketLeft => Key::LeftBracket,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_BracketLeft`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `BracketRight`
[INFO] [stdout]    --> src/input/winit.rs:211:9
[INFO] [stdout]     |
[INFO] [stdout] 211 |         BracketRight => Key::RightBracket,
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_BracketRight`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Backslash`
[INFO] [stdout]    --> src/input/winit.rs:212:9
[INFO] [stdout]     |
[INFO] [stdout] 212 |         Backslash => Key::Backslash,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you might have meant to pattern match on the similarly named variant `Backspace`
[INFO] [stdout]     |
[INFO] [stdout] 212 -         Backslash => Key::Backslash,
[INFO] [stdout] 212 +         winit::keyboard::NamedKey::Backspace => Key::Backslash,
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 212 |         _Backslash => Key::Backslash,
[INFO] [stdout]     |         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Semicolon`
[INFO] [stdout]    --> src/input/winit.rs:213:9
[INFO] [stdout]     |
[INFO] [stdout] 213 |         Semicolon => Key::Semicolon,
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_Semicolon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Quote`
[INFO] [stdout]    --> src/input/winit.rs:214:9
[INFO] [stdout]     |
[INFO] [stdout] 214 |         Quote => Key::Apostrophe,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_Quote`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Backquote`
[INFO] [stdout]    --> src/input/winit.rs:215:9
[INFO] [stdout]     |
[INFO] [stdout] 215 |         Backquote => Key::Grave,
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_Backquote`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Comma`
[INFO] [stdout]    --> src/input/winit.rs:216:9
[INFO] [stdout]     |
[INFO] [stdout] 216 |         Comma => Key::Comma,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_Comma`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Period`
[INFO] [stdout]    --> src/input/winit.rs:217:9
[INFO] [stdout]     |
[INFO] [stdout] 217 |         Period => Key::Period,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_Period`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Slash`
[INFO] [stdout]    --> src/input/winit.rs:218:9
[INFO] [stdout]     |
[INFO] [stdout] 218 |         Slash => Key::Slash,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_Slash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/layout/handrolled.rs:210:24
[INFO] [stdout]     |
[INFO] [stdout] 210 |     let (mut main_pos, mut cross_pos) = match f.layout.direction {
[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/wire/codec.rs:78:23
[INFO] [stdout]    |
[INFO] [stdout] 78 | fn write_message_into(mut b: schema::message::Builder<'_>, msg: &Message) -> Result<()> {
[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/wire/codec.rs:145:29
[INFO] [stdout]     |
[INFO] [stdout] 145 | fn write_wire_paint_command(mut b: paint_capnp::paint_command::Builder<'_>, cmd: &WirePaintCommand) -> Result<()> {
[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/wire/codec.rs:208:22
[INFO] [stdout]     |
[INFO] [stdout] 208 | fn write_input_event(mut b: input_capnp::input_event::Builder<'_>, ev: &WidgetInput) -> Result<()> {
[INFO] [stdout]     |                      ----^
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/wire/codec.rs:540:9
[INFO] [stdout]     |
[INFO] [stdout] 540 |         _ => Button::Other(0),
[INFO] [stdout]     |         ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/wire/codec.rs:540:9
[INFO] [stdout]     |
[INFO] [stdout] 533 |         PB::Left   => Button::Left,
[INFO] [stdout]     |         -------- matches some of the same values
[INFO] [stdout] 534 |         PB::Right  => Button::Right,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 535 |         PB::Middle => Button::Middle,
[INFO] [stdout]     |         ---------- matches some of the same values
[INFO] [stdout] 536 |         PB::Other0 => Button::Other(0),
[INFO] [stdout]     |         ---------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 540 |         _ => Button::Other(0),
[INFO] [stdout]     |         ^ ...and 3 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/wire/codec.rs:615:9
[INFO] [stdout]     |
[INFO] [stdout] 615 |         _ => Key::Unknown(0),
[INFO] [stdout]     |         ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/wire/codec.rs:615:9
[INFO] [stdout]     |
[INFO] [stdout] 584 |         K::A => Key::A, K::B => Key::B, K::C => Key::C, K::D => Key::D,
[INFO] [stdout]     |         ----            ----            ----            ---- matches some of the same values
[INFO] [stdout]     |         |               |               |
[INFO] [stdout]     |         |               |               matches some of the same values
[INFO] [stdout]     |         |               matches some of the same values
[INFO] [stdout]     |         matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 615 |         _ => Key::Unknown(0),
[INFO] [stdout]     |         ^ ...and 81 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/wire/remote.rs:326:21
[INFO] [stdout]     |
[INFO] [stdout] 326 |                 let mut p = p.borrow_mut();
[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/wire/remote.rs:337:17
[INFO] [stdout]     |
[INFO] [stdout] 337 |             let mut p = p.borrow_mut();
[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/image/png.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 |         let mut decoder = Decoder::new(std::io::Cursor::new(bytes));
[INFO] [stdout]    |             ----^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `byte_index`
[INFO] [stdout]    --> src/image/png.rs:265:25
[INFO] [stdout]     |
[INFO] [stdout] 265 |                     let byte_index = pixel_index;
[INFO] [stdout]     |                         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_byte_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `width` is never read
[INFO] [stdout]   --> src/image/tiff.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let mut width: u32 = 0;
[INFO] [stdout]    |                          ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 45 |         width = w;
[INFO] [stdout]    |         --------- `width` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `height` is never read
[INFO] [stdout]   --> src/image/tiff.rs:40:27
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let mut height: u32 = 0;
[INFO] [stdout]    |                           ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 46 |         height = h;
[INFO] [stdout]    |         ---------- `height` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/image/jpegxl.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let mut image = JxlImage::builder()
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `EffectInner` is more private than the item `BackendData::effects`
[INFO] [stdout]    --> src/reactive/custom.rs:154:5
[INFO] [stdout]     |
[INFO] [stdout] 154 |     pub effects: Mutex<HashMap<u64, EffectInner>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `BackendData::effects` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `EffectInner` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/reactive/custom.rs:390:1
[INFO] [stdout]     |
[INFO] [stdout] 390 | struct EffectInner {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strings`
[INFO] [stdout]    --> src/input/mod.rs:296:5
[INFO] [stdout]     |
[INFO] [stdout] 296 |     strings: &mut StringPool,
[INFO] [stdout]     |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strings`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `handle` is never read
[INFO] [stdout]   --> src/intern.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | struct Slot {
[INFO] [stdout]    |        ---- field in this struct
[INFO] [stdout] 40 |     handle: StringHandle,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Slot` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `new` and `tick` are never read
[INFO] [stdout]    --> src/reactive/custom.rs:276:5
[INFO] [stdout]     |
[INFO] [stdout] 273 | struct AnyEntry {
[INFO] [stdout]     |        -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 276 |     new: Box<dyn Any + Send + Sync>,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 277 |     tick: u64,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `attach_leaf` is never used
[INFO] [stdout]    --> src/spec.rs:715:4
[INFO] [stdout]     |
[INFO] [stdout] 715 | fn attach_leaf(
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `fonts` is never read
[INFO] [stdout]   --> src/renderer/femtovg.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct FemtovgRenderer<'a> {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 56 |     fonts: HashMap<String, FontId>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `resolve` is never used
[INFO] [stdout]    --> src/renderer/femtovg.rs:169:8
[INFO] [stdout]     |
[INFO] [stdout]  74 | impl<'a> FemtovgRenderer<'a> {
[INFO] [stdout]     | ---------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 169 |     fn resolve(&self, handle: crate::intern::StringHandle) -> &str {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `resolve` is never used
[INFO] [stdout]    --> src/renderer/speedy2d.rs:145:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | impl<'a> Speedy2dRenderer<'a> {
[INFO] [stdout]     | ----------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 145 |     fn resolve<'p>(&'p self, handle: crate::intern::StringHandle) -> Option<&'p str> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `RectEmpty` is never used
[INFO] [stdout]    --> src/renderer/softbuffer.rs:187:7
[INFO] [stdout]     |
[INFO] [stdout] 187 | trait RectEmpty {
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `paint` is never read
[INFO] [stdout]   --> src/renderer/tiny_skia.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct TinySkiaRenderer {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     paint: Paint<'static>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pending_paint` is never read
[INFO] [stdout]   --> src/wire/remote.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub struct RemoteApp<L: LocalApp> {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pending_paint: HashMap<WidgetId, Size>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DDPF_ALPHAPIXELS` is never used
[INFO] [stdout]   --> src/image/dds.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const DDPF_ALPHAPIXELS: u32 = 0x00000001;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DDPF_ALPHA` is never used
[INFO] [stdout]   --> src/image/dds.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const DDPF_ALPHA: u32       = 0x00000002;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DDPF_FOURCC` is never used
[INFO] [stdout]   --> src/image/dds.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const DDPF_FOURCC: u32      = 0x00000004;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Minus` should have a snake case name
[INFO] [stdout]    --> src/input/winit.rs:208:9
[INFO] [stdout]     |
[INFO] [stdout] 208 |         Minus => Key::Minus,
[INFO] [stdout]     |         ^^^^^ help: convert the identifier to snake case: `minus`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Equal` should have a snake case name
[INFO] [stdout]    --> src/input/winit.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 209 |         Equal => Key::Equals,
[INFO] [stdout]     |         ^^^^^ help: convert the identifier to snake case: `equal`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `BracketLeft` should have a snake case name
[INFO] [stdout]    --> src/input/winit.rs:210:9
[INFO] [stdout]     |
[INFO] [stdout] 210 |         BracketLeft => Key::LeftBracket,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: convert the identifier to snake case: `bracket_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `BracketRight` should have a snake case name
[INFO] [stdout]    --> src/input/winit.rs:211:9
[INFO] [stdout]     |
[INFO] [stdout] 211 |         BracketRight => Key::RightBracket,
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: convert the identifier to snake case: `bracket_right`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Backslash` should have a snake case name
[INFO] [stdout]    --> src/input/winit.rs:212:9
[INFO] [stdout]     |
[INFO] [stdout] 212 |         Backslash => Key::Backslash,
[INFO] [stdout]     |         ^^^^^^^^^ help: convert the identifier to snake case: `backslash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Semicolon` should have a snake case name
[INFO] [stdout]    --> src/input/winit.rs:213:9
[INFO] [stdout]     |
[INFO] [stdout] 213 |         Semicolon => Key::Semicolon,
[INFO] [stdout]     |         ^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `semicolon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Quote` should have a snake case name
[INFO] [stdout]    --> src/input/winit.rs:214:9
[INFO] [stdout]     |
[INFO] [stdout] 214 |         Quote => Key::Apostrophe,
[INFO] [stdout]     |         ^^^^^ help: convert the identifier to snake case: `quote`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Backquote` should have a snake case name
[INFO] [stdout]    --> src/input/winit.rs:215:9
[INFO] [stdout]     |
[INFO] [stdout] 215 |         Backquote => Key::Grave,
[INFO] [stdout]     |         ^^^^^^^^^ help: convert the identifier to snake case: `backquote`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Comma` should have a snake case name
[INFO] [stdout]    --> src/input/winit.rs:216:9
[INFO] [stdout]     |
[INFO] [stdout] 216 |         Comma => Key::Comma,
[INFO] [stdout]     |         ^^^^^ help: convert the identifier to snake case (notice the capitalization): `comma`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Period` should have a snake case name
[INFO] [stdout]    --> src/input/winit.rs:217:9
[INFO] [stdout]     |
[INFO] [stdout] 217 |         Period => Key::Period,
[INFO] [stdout]     |         ^^^^^^ help: convert the identifier to snake case: `period`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Slash` should have a snake case name
[INFO] [stdout]    --> src/input/winit.rs:218:9
[INFO] [stdout]     |
[INFO] [stdout] 218 |         Slash => Key::Slash,
[INFO] [stdout]     |         ^^^^^ help: convert the identifier to snake case (notice the capitalization): `slash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/input/winit.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 209 |         Equal => Key::Equals,
[INFO] [stdout]     |         ^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/input/winit.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 184 |         ArrowUp => Key::ArrowUp,
[INFO] [stdout]     |         ------- matches some of the same values
[INFO] [stdout] 185 |         ArrowDown => Key::ArrowDown,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 186 |         ArrowLeft => Key::ArrowLeft,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 187 |         ArrowRight => Key::ArrowRight,
[INFO] [stdout]     |         ---------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 209 |         Equal => Key::Equals,
[INFO] [stdout]     |         ^^^^^ ...and 30 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/input/winit.rs:210:9
[INFO] [stdout]     |
[INFO] [stdout] 210 |         BracketLeft => Key::LeftBracket,
[INFO] [stdout]     |         ^^^^^^^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/input/winit.rs:210:9
[INFO] [stdout]     |
[INFO] [stdout] 184 |         ArrowUp => Key::ArrowUp,
[INFO] [stdout]     |         ------- matches some of the same values
[INFO] [stdout] 185 |         ArrowDown => Key::ArrowDown,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 186 |         ArrowLeft => Key::ArrowLeft,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 187 |         ArrowRight => Key::ArrowRight,
[INFO] [stdout]     |         ---------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 210 |         BracketLeft => Key::LeftBracket,
[INFO] [stdout]     |         ^^^^^^^^^^^ ...and 30 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/input/winit.rs:211:9
[INFO] [stdout]     |
[INFO] [stdout] 211 |         BracketRight => Key::RightBracket,
[INFO] [stdout]     |         ^^^^^^^^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/input/winit.rs:211:9
[INFO] [stdout]     |
[INFO] [stdout] 184 |         ArrowUp => Key::ArrowUp,
[INFO] [stdout]     |         ------- matches some of the same values
[INFO] [stdout] 185 |         ArrowDown => Key::ArrowDown,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 186 |         ArrowLeft => Key::ArrowLeft,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 187 |         ArrowRight => Key::ArrowRight,
[INFO] [stdout]     |         ---------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 211 |         BracketRight => Key::RightBracket,
[INFO] [stdout]     |         ^^^^^^^^^^^^ ...and 30 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/input/winit.rs:212:9
[INFO] [stdout]     |
[INFO] [stdout] 212 |         Backslash => Key::Backslash,
[INFO] [stdout]     |         ^^^^^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/input/winit.rs:212:9
[INFO] [stdout]     |
[INFO] [stdout] 184 |         ArrowUp => Key::ArrowUp,
[INFO] [stdout]     |         ------- matches some of the same values
[INFO] [stdout] 185 |         ArrowDown => Key::ArrowDown,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 186 |         ArrowLeft => Key::ArrowLeft,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 187 |         ArrowRight => Key::ArrowRight,
[INFO] [stdout]     |         ---------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 212 |         Backslash => Key::Backslash,
[INFO] [stdout]     |         ^^^^^^^^^ ...and 30 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/input/winit.rs:213:9
[INFO] [stdout]     |
[INFO] [stdout] 213 |         Semicolon => Key::Semicolon,
[INFO] [stdout]     |         ^^^^^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/input/winit.rs:213:9
[INFO] [stdout]     |
[INFO] [stdout] 184 |         ArrowUp => Key::ArrowUp,
[INFO] [stdout]     |         ------- matches some of the same values
[INFO] [stdout] 185 |         ArrowDown => Key::ArrowDown,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 186 |         ArrowLeft => Key::ArrowLeft,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 187 |         ArrowRight => Key::ArrowRight,
[INFO] [stdout]     |         ---------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 213 |         Semicolon => Key::Semicolon,
[INFO] [stdout]     |         ^^^^^^^^^ ...and 30 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/input/winit.rs:214:9
[INFO] [stdout]     |
[INFO] [stdout] 214 |         Quote => Key::Apostrophe,
[INFO] [stdout]     |         ^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/input/winit.rs:214:9
[INFO] [stdout]     |
[INFO] [stdout] 184 |         ArrowUp => Key::ArrowUp,
[INFO] [stdout]     |         ------- matches some of the same values
[INFO] [stdout] 185 |         ArrowDown => Key::ArrowDown,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 186 |         ArrowLeft => Key::ArrowLeft,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 187 |         ArrowRight => Key::ArrowRight,
[INFO] [stdout]     |         ---------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 214 |         Quote => Key::Apostrophe,
[INFO] [stdout]     |         ^^^^^ ...and 30 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/input/winit.rs:215:9
[INFO] [stdout]     |
[INFO] [stdout] 215 |         Backquote => Key::Grave,
[INFO] [stdout]     |         ^^^^^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/input/winit.rs:215:9
[INFO] [stdout]     |
[INFO] [stdout] 184 |         ArrowUp => Key::ArrowUp,
[INFO] [stdout]     |         ------- matches some of the same values
[INFO] [stdout] 185 |         ArrowDown => Key::ArrowDown,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 186 |         ArrowLeft => Key::ArrowLeft,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 187 |         ArrowRight => Key::ArrowRight,
[INFO] [stdout]     |         ---------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 215 |         Backquote => Key::Grave,
[INFO] [stdout]     |         ^^^^^^^^^ ...and 30 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/input/winit.rs:216:9
[INFO] [stdout]     |
[INFO] [stdout] 216 |         Comma => Key::Comma,
[INFO] [stdout]     |         ^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/input/winit.rs:216:9
[INFO] [stdout]     |
[INFO] [stdout] 184 |         ArrowUp => Key::ArrowUp,
[INFO] [stdout]     |         ------- matches some of the same values
[INFO] [stdout] 185 |         ArrowDown => Key::ArrowDown,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 186 |         ArrowLeft => Key::ArrowLeft,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 187 |         ArrowRight => Key::ArrowRight,
[INFO] [stdout]     |         ---------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 216 |         Comma => Key::Comma,
[INFO] [stdout]     |         ^^^^^ ...and 30 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/input/winit.rs:217:9
[INFO] [stdout]     |
[INFO] [stdout] 217 |         Period => Key::Period,
[INFO] [stdout]     |         ^^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/input/winit.rs:217:9
[INFO] [stdout]     |
[INFO] [stdout] 184 |         ArrowUp => Key::ArrowUp,
[INFO] [stdout]     |         ------- matches some of the same values
[INFO] [stdout] 185 |         ArrowDown => Key::ArrowDown,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 186 |         ArrowLeft => Key::ArrowLeft,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 187 |         ArrowRight => Key::ArrowRight,
[INFO] [stdout]     |         ---------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 217 |         Period => Key::Period,
[INFO] [stdout]     |         ^^^^^^ ...and 30 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/input/winit.rs:218:9
[INFO] [stdout]     |
[INFO] [stdout] 218 |         Slash => Key::Slash,
[INFO] [stdout]     |         ^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/input/winit.rs:218:9
[INFO] [stdout]     |
[INFO] [stdout] 184 |         ArrowUp => Key::ArrowUp,
[INFO] [stdout]     |         ------- matches some of the same values
[INFO] [stdout] 185 |         ArrowDown => Key::ArrowDown,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 186 |         ArrowLeft => Key::ArrowLeft,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 187 |         ArrowRight => Key::ArrowRight,
[INFO] [stdout]     |         ---------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 218 |         Slash => Key::Slash,
[INFO] [stdout]     |         ^^^^^ ...and 30 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/input/winit.rs:219:9
[INFO] [stdout]     |
[INFO] [stdout] 208 |         Minus => Key::Minus,
[INFO] [stdout]     |         ----- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 219 |         PrintScreen => Key::PrintScreen,
[INFO] [stdout]     |         ^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/input/winit.rs:220:9
[INFO] [stdout]     |
[INFO] [stdout] 208 |         Minus => Key::Minus,
[INFO] [stdout]     |         ----- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 220 |         ScrollLock => Key::ScrollLock,
[INFO] [stdout]     |         ^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/input/winit.rs:221:9
[INFO] [stdout]     |
[INFO] [stdout] 208 |         Minus => Key::Minus,
[INFO] [stdout]     |         ----- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 221 |         Pause => Key::Pause,
[INFO] [stdout]     |         ^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/input/winit.rs:222:9
[INFO] [stdout]     |
[INFO] [stdout] 208 |         Minus => Key::Minus,
[INFO] [stdout]     |         ----- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 222 |         ContextMenu => Key::Menu,
[INFO] [stdout]     |         ^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/input/winit.rs:223:9
[INFO] [stdout]     |
[INFO] [stdout] 223 |         _ => Key::Unknown(0),
[INFO] [stdout]     |         ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/input/winit.rs:223:9
[INFO] [stdout]     |
[INFO] [stdout] 184 |         ArrowUp => Key::ArrowUp,
[INFO] [stdout]     |         ------- matches some of the same values
[INFO] [stdout] 185 |         ArrowDown => Key::ArrowDown,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 186 |         ArrowLeft => Key::ArrowLeft,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 187 |         ArrowRight => Key::ArrowRight,
[INFO] [stdout]     |         ---------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 223 |         _ => Key::Unknown(0),
[INFO] [stdout]     |         ^ ...and 30 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Minus`
[INFO] [stdout]    --> src/input/winit.rs:208:9
[INFO] [stdout]     |
[INFO] [stdout] 208 |         Minus => Key::Minus,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_Minus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Equal`
[INFO] [stdout]    --> src/input/winit.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 209 |         Equal => Key::Equals,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_Equal`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `BracketLeft`
[INFO] [stdout]    --> src/input/winit.rs:210:9
[INFO] [stdout]     |
[INFO] [stdout] 210 |         BracketLeft => Key::LeftBracket,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_BracketLeft`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `BracketRight`
[INFO] [stdout]    --> src/input/winit.rs:211:9
[INFO] [stdout]     |
[INFO] [stdout] 211 |         BracketRight => Key::RightBracket,
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_BracketRight`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Backslash`
[INFO] [stdout]    --> src/input/winit.rs:212:9
[INFO] [stdout]     |
[INFO] [stdout] 212 |         Backslash => Key::Backslash,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you might have meant to pattern match on the similarly named variant `Backspace`
[INFO] [stdout]     |
[INFO] [stdout] 212 -         Backslash => Key::Backslash,
[INFO] [stdout] 212 +         winit::keyboard::NamedKey::Backspace => Key::Backslash,
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 212 |         _Backslash => Key::Backslash,
[INFO] [stdout]     |         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Semicolon`
[INFO] [stdout]    --> src/input/winit.rs:213:9
[INFO] [stdout]     |
[INFO] [stdout] 213 |         Semicolon => Key::Semicolon,
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_Semicolon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Quote`
[INFO] [stdout]    --> src/input/winit.rs:214:9
[INFO] [stdout]     |
[INFO] [stdout] 214 |         Quote => Key::Apostrophe,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_Quote`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Backquote`
[INFO] [stdout]    --> src/input/winit.rs:215:9
[INFO] [stdout]     |
[INFO] [stdout] 215 |         Backquote => Key::Grave,
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_Backquote`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Comma`
[INFO] [stdout]    --> src/input/winit.rs:216:9
[INFO] [stdout]     |
[INFO] [stdout] 216 |         Comma => Key::Comma,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_Comma`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Period`
[INFO] [stdout]    --> src/input/winit.rs:217:9
[INFO] [stdout]     |
[INFO] [stdout] 217 |         Period => Key::Period,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_Period`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Slash`
[INFO] [stdout]    --> src/input/winit.rs:218:9
[INFO] [stdout]     |
[INFO] [stdout] 218 |         Slash => Key::Slash,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_Slash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/layout/handrolled.rs:210:24
[INFO] [stdout]     |
[INFO] [stdout] 210 |     let (mut main_pos, mut cross_pos) = match f.layout.direction {
[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/wire/codec.rs:78:23
[INFO] [stdout]    |
[INFO] [stdout] 78 | fn write_message_into(mut b: schema::message::Builder<'_>, msg: &Message) -> Result<()> {
[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/wire/codec.rs:145:29
[INFO] [stdout]     |
[INFO] [stdout] 145 | fn write_wire_paint_command(mut b: paint_capnp::paint_command::Builder<'_>, cmd: &WirePaintCommand) -> Result<()> {
[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/wire/codec.rs:208:22
[INFO] [stdout]     |
[INFO] [stdout] 208 | fn write_input_event(mut b: input_capnp::input_event::Builder<'_>, ev: &WidgetInput) -> Result<()> {
[INFO] [stdout]     |                      ----^
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/wire/codec.rs:540:9
[INFO] [stdout]     |
[INFO] [stdout] 540 |         _ => Button::Other(0),
[INFO] [stdout]     |         ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/wire/codec.rs:540:9
[INFO] [stdout]     |
[INFO] [stdout] 533 |         PB::Left   => Button::Left,
[INFO] [stdout]     |         -------- matches some of the same values
[INFO] [stdout] 534 |         PB::Right  => Button::Right,
[INFO] [stdout]     |         --------- matches some of the same values
[INFO] [stdout] 535 |         PB::Middle => Button::Middle,
[INFO] [stdout]     |         ---------- matches some of the same values
[INFO] [stdout] 536 |         PB::Other0 => Button::Other(0),
[INFO] [stdout]     |         ---------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 540 |         _ => Button::Other(0),
[INFO] [stdout]     |         ^ ...and 3 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/wire/codec.rs:615:9
[INFO] [stdout]     |
[INFO] [stdout] 615 |         _ => Key::Unknown(0),
[INFO] [stdout]     |         ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/wire/codec.rs:615:9
[INFO] [stdout]     |
[INFO] [stdout] 584 |         K::A => Key::A, K::B => Key::B, K::C => Key::C, K::D => Key::D,
[INFO] [stdout]     |         ----            ----            ----            ---- matches some of the same values
[INFO] [stdout]     |         |               |               |
[INFO] [stdout]     |         |               |               matches some of the same values
[INFO] [stdout]     |         |               matches some of the same values
[INFO] [stdout]     |         matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 615 |         _ => Key::Unknown(0),
[INFO] [stdout]     |         ^ ...and 81 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> examples/magick_demo.rs:103:17
[INFO] [stdout]     |
[INFO] [stdout] 103 |                 other => "<widget>".into(),
[INFO] [stdout]     |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `smartui::prelude::*`
[INFO] [stdout]   --> tests/wire_tcp.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use smartui::prelude::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/wire/remote.rs:326:21
[INFO] [stdout]     |
[INFO] [stdout] 326 |                 let mut p = p.borrow_mut();
[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/wire/remote.rs:337:17
[INFO] [stdout]     |
[INFO] [stdout] 337 |             let mut p = p.borrow_mut();
[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/image/png.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 |         let mut decoder = Decoder::new(std::io::Cursor::new(bytes));
[INFO] [stdout]    |             ----^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `byte_index`
[INFO] [stdout]    --> src/image/png.rs:265:25
[INFO] [stdout]     |
[INFO] [stdout] 265 |                     let byte_index = pixel_index;
[INFO] [stdout]     |                         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_byte_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `width` is never read
[INFO] [stdout]   --> src/image/tiff.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let mut width: u32 = 0;
[INFO] [stdout]    |                          ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 45 |         width = w;
[INFO] [stdout]    |         --------- `width` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `height` is never read
[INFO] [stdout]   --> src/image/tiff.rs:40:27
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let mut height: u32 = 0;
[INFO] [stdout]    |                           ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 46 |         height = h;
[INFO] [stdout]    |         ---------- `height` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/image/jpegxl.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let mut image = JxlImage::builder()
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `EffectInner` is more private than the item `BackendData::effects`
[INFO] [stdout]    --> src/reactive/custom.rs:154:5
[INFO] [stdout]     |
[INFO] [stdout] 154 |     pub effects: Mutex<HashMap<u64, EffectInner>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `BackendData::effects` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `EffectInner` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/reactive/custom.rs:390:1
[INFO] [stdout]     |
[INFO] [stdout] 390 | struct EffectInner {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `handle` is never read
[INFO] [stdout]   --> src/intern.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | struct Slot {
[INFO] [stdout]    |        ---- field in this struct
[INFO] [stdout] 40 |     handle: StringHandle,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Slot` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `new` and `tick` are never read
[INFO] [stdout]    --> src/reactive/custom.rs:276:5
[INFO] [stdout]     |
[INFO] [stdout] 273 | struct AnyEntry {
[INFO] [stdout]     |        -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 276 |     new: Box<dyn Any + Send + Sync>,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 277 |     tick: u64,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `attach_leaf` is never used
[INFO] [stdout]    --> src/spec.rs:715:4
[INFO] [stdout]     |
[INFO] [stdout] 715 | fn attach_leaf(
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `fonts` is never read
[INFO] [stdout]   --> src/renderer/femtovg.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct FemtovgRenderer<'a> {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 56 |     fonts: HashMap<String, FontId>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `resolve` is never used
[INFO] [stdout]    --> src/renderer/femtovg.rs:169:8
[INFO] [stdout]     |
[INFO] [stdout]  74 | impl<'a> FemtovgRenderer<'a> {
[INFO] [stdout]     | ---------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 169 |     fn resolve(&self, handle: crate::intern::StringHandle) -> &str {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `resolve` is never used
[INFO] [stdout]    --> src/renderer/speedy2d.rs:145:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | impl<'a> Speedy2dRenderer<'a> {
[INFO] [stdout]     | ----------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 145 |     fn resolve<'p>(&'p self, handle: crate::intern::StringHandle) -> Option<&'p str> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `RectEmpty` is never used
[INFO] [stdout]    --> src/renderer/softbuffer.rs:187:7
[INFO] [stdout]     |
[INFO] [stdout] 187 | trait RectEmpty {
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `paint` is never read
[INFO] [stdout]   --> src/renderer/tiny_skia.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct TinySkiaRenderer {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     paint: Paint<'static>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pending_paint` is never read
[INFO] [stdout]   --> src/wire/remote.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub struct RemoteApp<L: LocalApp> {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pending_paint: HashMap<WidgetId, Size>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DDPF_ALPHAPIXELS` is never used
[INFO] [stdout]   --> src/image/dds.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const DDPF_ALPHAPIXELS: u32 = 0x00000001;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DDPF_ALPHA` is never used
[INFO] [stdout]   --> src/image/dds.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const DDPF_ALPHA: u32       = 0x00000002;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DDPF_FOURCC` is never used
[INFO] [stdout]   --> src/image/dds.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const DDPF_FOURCC: u32      = 0x00000004;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Minus` should have a snake case name
[INFO] [stdout]    --> src/input/winit.rs:208:9
[INFO] [stdout]     |
[INFO] [stdout] 208 |         Minus => Key::Minus,
[INFO] [stdout]     |         ^^^^^ help: convert the identifier to snake case: `minus`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Equal` should have a snake case name
[INFO] [stdout]    --> src/input/winit.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 209 |         Equal => Key::Equals,
[INFO] [stdout]     |         ^^^^^ help: convert the identifier to snake case: `equal`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `BracketLeft` should have a snake case name
[INFO] [stdout]    --> src/input/winit.rs:210:9
[INFO] [stdout]     |
[INFO] [stdout] 210 |         BracketLeft => Key::LeftBracket,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: convert the identifier to snake case: `bracket_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `BracketRight` should have a snake case name
[INFO] [stdout]    --> src/input/winit.rs:211:9
[INFO] [stdout]     |
[INFO] [stdout] 211 |         BracketRight => Key::RightBracket,
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: convert the identifier to snake case: `bracket_right`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Backslash` should have a snake case name
[INFO] [stdout]    --> src/input/winit.rs:212:9
[INFO] [stdout]     |
[INFO] [stdout] 212 |         Backslash => Key::Backslash,
[INFO] [stdout]     |         ^^^^^^^^^ help: convert the identifier to snake case: `backslash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Semicolon` should have a snake case name
[INFO] [stdout]    --> src/input/winit.rs:213:9
[INFO] [stdout]     |
[INFO] [stdout] 213 |         Semicolon => Key::Semicolon,
[INFO] [stdout]     |         ^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `semicolon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Quote` should have a snake case name
[INFO] [stdout]    --> src/input/winit.rs:214:9
[INFO] [stdout]     |
[INFO] [stdout] 214 |         Quote => Key::Apostrophe,
[INFO] [stdout]     |         ^^^^^ help: convert the identifier to snake case: `quote`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Backquote` should have a snake case name
[INFO] [stdout]    --> src/input/winit.rs:215:9
[INFO] [stdout]     |
[INFO] [stdout] 215 |         Backquote => Key::Grave,
[INFO] [stdout]     |         ^^^^^^^^^ help: convert the identifier to snake case: `backquote`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Comma` should have a snake case name
[INFO] [stdout]    --> src/input/winit.rs:216:9
[INFO] [stdout]     |
[INFO] [stdout] 216 |         Comma => Key::Comma,
[INFO] [stdout]     |         ^^^^^ help: convert the identifier to snake case (notice the capitalization): `comma`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Period` should have a snake case name
[INFO] [stdout]    --> src/input/winit.rs:217:9
[INFO] [stdout]     |
[INFO] [stdout] 217 |         Period => Key::Period,
[INFO] [stdout]     |         ^^^^^^ help: convert the identifier to snake case: `period`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Slash` should have a snake case name
[INFO] [stdout]    --> src/input/winit.rs:218:9
[INFO] [stdout]     |
[INFO] [stdout] 218 |         Slash => Key::Slash,
[INFO] [stdout]     |         ^^^^^ help: convert the identifier to snake case (notice the capitalization): `slash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 39.71s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: glutin v0.32.3, glutin-winit v0.5.0, speedy2d v3.0.0, winit v0.30.13
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 8`
[INFO] running `Command { std: "docker" "inspect" "3569456e588250ed43fdf9a75fea714c84382bf64c341b50d4a6e4d63d21a289", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3569456e588250ed43fdf9a75fea714c84382bf64c341b50d4a6e4d63d21a289", kill_on_drop: false }`
[INFO] [stdout] 3569456e588250ed43fdf9a75fea714c84382bf64c341b50d4a6e4d63d21a289
