[INFO] cloning repository https://github.com/sibevin/mechanics [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/sibevin/mechanics" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsibevin%2Fmechanics", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsibevin%2Fmechanics'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 0ad10058c6dd4a91d051d606a9f5ff56ba46be2a [INFO] linting sibevin/mechanics against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsibevin%2Fmechanics" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/sibevin/mechanics [INFO] finished tweaking git repo https://github.com/sibevin/mechanics [INFO] tweaked toml for git repo https://github.com/sibevin/mechanics written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/sibevin/mechanics on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/sibevin/mechanics 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" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded serde_derive v1.0.204 [INFO] [stderr] Downloaded bevy_internal v0.14.0 [INFO] [stderr] Downloaded bevy_diagnostic v0.14.0 [INFO] [stderr] Downloaded bevy_winit v0.14.0 [INFO] [stderr] Downloaded serde v1.0.204 [INFO] [stderr] Downloaded bevy_picking_core v0.20.0 [INFO] [stderr] Downloaded non-empty-vec v0.2.3 [INFO] [stderr] Downloaded bevy_eventlistener_derive v0.8.1 [INFO] [stderr] Downloaded bevy_picking_raycast v0.20.0 [INFO] [stderr] Downloaded bevy_core v0.14.0 [INFO] [stderr] Downloaded bevy_picking_highlight v0.20.0 [INFO] [stderr] Downloaded gloo-storage v0.3.0 [INFO] [stderr] Downloaded bevy_eventlistener v0.8.1 [INFO] [stderr] Downloaded bevy-persistent v0.6.0 [INFO] [stderr] Downloaded bevy_mod_raycast v0.18.0 [INFO] [stderr] Downloaded bevy-alt-ui-navigation-lite v0.2.1 [INFO] [stderr] Downloaded bevy_prototype_lyon v0.12.0 [INFO] [stderr] Downloaded lyon_tessellation v1.0.15 [INFO] [stderr] Downloaded gilrs v0.10.8 [INFO] [stderr] Downloaded syn v2.0.72 [INFO] [stderr] Downloaded bevy_reflect v0.14.0 [INFO] [stderr] Downloaded blake3 v1.5.3 [INFO] [stderr] Downloaded bevy_render v0.14.0 [INFO] [stderr] Downloaded bevy_tweening v0.11.0 [INFO] [stderr] Downloaded winnow v0.6.14 [INFO] [stderr] Downloaded ttf-parser v0.24.0 [INFO] [stderr] Downloaded bevy_math v0.14.0 [INFO] [stderr] Downloaded toml_edit v0.22.16 [INFO] [stderr] Downloaded bevy_asset v0.14.0 [INFO] [stderr] Downloaded polling v3.7.2 [INFO] [stderr] Downloaded gilrs-core v0.5.13 [INFO] [stderr] Downloaded bevy_pbr v0.14.0 [INFO] [stderr] Downloaded euclid v0.22.10 [INFO] [stderr] Downloaded bevy_ecs v0.14.0 [INFO] [stderr] Downloaded bevy_sprite v0.14.0 [INFO] [stderr] Downloaded bevy v0.14.0 [INFO] [stderr] Downloaded bevy_reflect_derive v0.14.0 [INFO] [stderr] Downloaded bytemuck_derive v1.7.0 [INFO] [stderr] Downloaded lyon_path v1.0.5 [INFO] [stderr] Downloaded svgtypes v0.12.0 [INFO] [stderr] Downloaded bevy_gizmos v0.14.0 [INFO] [stderr] Downloaded bevy_color v0.14.1 [INFO] [stderr] Downloaded bevy_derive v0.14.0 [INFO] [stderr] Downloaded bevy_app v0.14.0 [INFO] [stderr] Downloaded winit v0.30.4 [INFO] [stderr] Downloaded bevy_utils v0.14.0 [INFO] [stderr] Downloaded bytemuck v1.16.1 [INFO] [stderr] Downloaded lyon_algorithms v1.0.4 [INFO] [stderr] Downloaded bevy_core_pipeline v0.14.0 [INFO] [stderr] Downloaded lyon_geom v1.0.5 [INFO] [stderr] Downloaded bevy_gltf v0.14.0 [INFO] [stderr] Downloaded bevy_time v0.14.0 [INFO] [stderr] Downloaded bevy_transform v0.14.0 [INFO] [stderr] Downloaded immutable-chunkmap v2.0.5 [INFO] [stderr] Downloaded bevy_hierarchy v0.14.0 [INFO] [stderr] Downloaded bevy_tasks v0.14.0 [INFO] [stderr] Downloaded bevy_picking_input v0.20.0 [INFO] [stderr] Downloaded bevy_picking_sprite v0.20.0 [INFO] [stderr] Downloaded bevy_audio v0.14.0 [INFO] [stderr] Downloaded bevy_scene v0.14.0 [INFO] [stderr] Downloaded bevy_state v0.14.0 [INFO] [stderr] Downloaded bevy_encase_derive v0.14.0 [INFO] [stderr] Downloaded ruzstd v0.7.0 [INFO] [stderr] Downloaded bevy_ui v0.14.0 [INFO] [stderr] Downloaded bevy_a11y v0.14.0 [INFO] [stderr] Downloaded bevy_ptr v0.14.0 [INFO] [stderr] Downloaded bevy_utils_proc_macros v0.14.0 [INFO] [stderr] Downloaded bevy_picking_selection v0.20.0 [INFO] [stderr] Downloaded bevy_picking_ui v0.20.0 [INFO] [stderr] Downloaded bevy_dylib v0.14.0 [INFO] [stderr] Downloaded bevy_state_macros v0.14.0 [INFO] [stderr] Downloaded bevy_window v0.14.0 [INFO] [stderr] Downloaded bevy_gizmos_macros v0.14.0 [INFO] [stderr] Downloaded bevy_animation v0.14.0 [INFO] [stderr] Downloaded piper v0.2.3 [INFO] [stderr] Downloaded bevy_mikktspace v0.14.0 [INFO] [stderr] Downloaded bevy_log v0.14.0 [INFO] [stderr] Downloaded bevy_ecs_macros v0.14.0 [INFO] [stderr] Downloaded bevy_gilrs v0.14.0 [INFO] [stderr] Downloaded bevy_asset_macros v0.14.0 [INFO] [stderr] Downloaded bevy_render_macros v0.14.0 [INFO] [stderr] Downloaded svg_fmt v0.4.3 [INFO] [stderr] Downloaded bevy_text v0.14.0 [INFO] [stderr] Downloaded bevy_input v0.14.0 [INFO] [stderr] Downloaded typeid v1.0.0 [INFO] [stderr] Downloaded bevy_macro_utils v0.14.0 [INFO] [stderr] Downloaded circular-queue v0.2.6 [INFO] [stderr] Downloaded interpolation v0.3.0 [INFO] [stderr] Downloaded bevy_mod_picking v0.20.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 8caf210880bb8b31ef7e365f675e59f4700d94a1cc7ce53fa9fa8cb9e88640ea [INFO] running `Command { std: "docker" "start" "-a" "8caf210880bb8b31ef7e365f675e59f4700d94a1cc7ce53fa9fa8cb9e88640ea", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "8caf210880bb8b31ef7e365f675e59f4700d94a1cc7ce53fa9fa8cb9e88640ea", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8caf210880bb8b31ef7e365f675e59f4700d94a1cc7ce53fa9fa8cb9e88640ea", kill_on_drop: false }` [INFO] [stdout] 8caf210880bb8b31ef7e365f675e59f4700d94a1cc7ce53fa9fa8cb9e88640ea [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d642fc213696946a58aef511eb665d6cc24736524d9939b77b6d09a01e6b767c [INFO] running `Command { std: "docker" "start" "-a" "d642fc213696946a58aef511eb665d6cc24736524d9939b77b6d09a01e6b767c", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.86 [INFO] [stderr] Compiling serde v1.0.204 [INFO] [stderr] Compiling libc v0.2.155 [INFO] [stderr] Compiling autocfg v1.3.0 [INFO] [stderr] Compiling thiserror v1.0.63 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling winnow v0.6.14 [INFO] [stderr] Compiling toml_datetime v0.6.6 [INFO] [stderr] Compiling crossbeam-utils v0.8.20 [INFO] [stderr] Checking ppv-lite86 v0.2.17 [INFO] [stderr] Checking smallvec v1.13.2 [INFO] [stderr] Checking fastrand v2.1.0 [INFO] [stderr] Checking smol_str v0.2.2 [INFO] [stderr] Checking typeid v1.0.0 [INFO] [stderr] Checking web-time v1.1.0 [INFO] [stderr] Checking fixedbitset v0.4.2 [INFO] [stderr] Compiling libm v0.2.8 [INFO] [stderr] Checking bevy_ptr v0.14.0 [INFO] [stderr] Checking futures-lite v2.3.0 [INFO] [stderr] Checking log v0.4.22 [INFO] [stderr] Checking libloading v0.8.5 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Checking memchr v2.7.4 [INFO] [stderr] Checking unicode-width v0.1.13 [INFO] [stderr] Checking regex-syntax v0.8.4 [INFO] [stderr] Compiling cc v1.1.6 [INFO] [stderr] Checking codespan-reporting v0.11.1 [INFO] [stderr] Checking piper v0.2.3 [INFO] [stderr] Compiling wgpu-hal v0.21.1 [INFO] [stderr] Checking accesskit v0.14.0 [INFO] [stderr] Checking miniz_oxide v0.7.4 [INFO] [stderr] Compiling wgpu-core v0.21.1 [INFO] [stderr] Checking crc32fast v1.4.2 [INFO] [stderr] Compiling litrs v0.4.1 [INFO] [stderr] Checking arrayref v0.3.8 [INFO] [stderr] Compiling wgpu v0.20.1 [INFO] [stderr] Compiling indexmap v2.2.6 [INFO] [stderr] Checking aho-corasick v1.1.3 [INFO] [stderr] Checking data-encoding v2.6.0 [INFO] [stderr] Compiling quote v1.0.36 [INFO] [stderr] Checking concurrent-queue v2.5.0 [INFO] [stderr] Checking crossbeam-channel v0.5.13 [INFO] [stderr] Compiling syn v2.0.72 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Checking event-listener v5.3.1 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking async-executor v1.13.0 [INFO] [stderr] Compiling lock_api v0.4.12 [INFO] [stderr] Checking event-listener-strategy v0.5.2 [INFO] [stderr] Checking flate2 v1.0.30 [INFO] [stderr] Checking ruzstd v0.7.0 [INFO] [stderr] Checking async-channel v2.3.1 [INFO] [stderr] Checking async-lock v3.4.0 [INFO] [stderr] Checking euclid v0.22.10 [INFO] [stderr] Checking bevy_tasks v0.14.0 [INFO] [stderr] Checking blocking v1.6.1 [INFO] [stderr] Compiling getrandom v0.2.15 [INFO] [stderr] Checking png v0.17.13 [INFO] [stderr] Checking svg_fmt v0.4.3 [INFO] [stderr] Compiling rustix v0.38.34 [INFO] [stderr] Compiling document-features v0.2.10 [INFO] [stderr] Compiling uuid v1.10.0 [INFO] [stderr] Checking tinyvec v1.8.0 [INFO] [stderr] Checking khronos-egl v6.0.0 [INFO] [stderr] Checking sysinfo v0.30.13 [INFO] [stderr] Checking ahash v0.8.11 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking async-fs v2.1.2 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking guillotiere v0.6.2 [INFO] [stderr] Checking linux-raw-sys v0.4.14 [INFO] [stderr] Checking ttf-parser v0.24.0 [INFO] [stderr] Compiling toml_edit v0.22.16 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking approx v0.5.1 [INFO] [stderr] Compiling slotmap v1.0.7 [INFO] [stderr] Checking regex-automata v0.4.7 [INFO] [stderr] Compiling nix v0.29.0 [INFO] [stderr] Checking tracing-log v0.2.0 [INFO] [stderr] Compiling serde_json v1.0.120 [INFO] [stderr] Checking alsa-sys v0.3.1 [INFO] [stderr] Checking inotify-sys v0.1.5 [INFO] [stderr] Compiling winit v0.30.4 [INFO] [stderr] Checking dlib v0.5.2 [INFO] [stderr] Checking grid v0.14.0 [INFO] [stderr] Checking ryu v1.0.18 [INFO] [stderr] Checking xkeysym v0.2.1 [INFO] [stderr] Checking x11rb-protocol v0.13.1 [INFO] [stderr] Checking inotify v0.10.2 [INFO] [stderr] Checking libudev-sys v0.1.4 [INFO] [stderr] Checking x11-dl v2.21.0 [INFO] [stderr] Compiling gilrs v0.10.8 [INFO] [stderr] Checking dpi v0.1.1 [INFO] [stderr] Checking lewton v0.10.2 [INFO] [stderr] Checking taffy v0.5.2 [INFO] [stderr] Checking base64 v0.22.1 [INFO] [stderr] Checking lyon_geom v1.0.5 [INFO] [stderr] Compiling siphasher v0.3.11 [INFO] [stderr] Compiling phf_shared v0.11.2 [INFO] [stderr] Checking unicode-normalization v0.1.23 [INFO] [stderr] Checking unicode-bidi v0.3.15 [INFO] [stderr] Checking form_urlencoded v1.2.1 [INFO] [stderr] Checking kurbo v0.9.5 [INFO] [stderr] Compiling circular-queue v0.2.6 [INFO] [stderr] Checking option-ext v0.2.0 [INFO] [stderr] Checking float_next_after v1.0.0 [INFO] [stderr] Checking lyon_path v1.0.5 [INFO] [stderr] Checking dirs-sys v0.4.1 [INFO] [stderr] Checking home v0.5.9 [INFO] [stderr] Checking non-empty-vec v0.2.3 [INFO] [stderr] Checking interpolation v0.3.0 [INFO] [stderr] Checking iana-time-zone v0.1.60 [INFO] [stderr] Checking dirs v5.0.1 [INFO] [stderr] Checking chrono v0.4.38 [INFO] [stderr] Compiling phf_generator v0.11.2 [INFO] [stderr] Checking idna v0.5.0 [INFO] [stderr] Checking owned_ttf_parser v0.24.0 [INFO] [stderr] Checking ab_glyph v0.2.28 [INFO] [stderr] Checking lyon_tessellation v1.0.15 [INFO] [stderr] Checking lyon_algorithms v1.0.4 [INFO] [stderr] Checking glyph_brush_layout v0.2.4 [INFO] [stderr] Checking url v2.5.2 [INFO] [stderr] Checking svgtypes v0.12.0 [INFO] [stderr] Checking regex v1.10.5 [INFO] [stderr] Checking webbrowser v1.0.1 [INFO] [stderr] Compiling bevy_macro_utils v0.14.0 [INFO] [stderr] Compiling encase_derive_impl v0.8.0 [INFO] [stderr] Compiling blake3 v1.5.3 [INFO] [stderr] Compiling serde_derive v1.0.204 [INFO] [stderr] Compiling thiserror-impl v1.0.63 [INFO] [stderr] Compiling bytemuck_derive v1.7.0 [INFO] [stderr] Compiling tracing-attributes v0.1.27 [INFO] [stderr] Compiling bevy_utils_proc_macros v0.14.0 [INFO] [stderr] Compiling bevy_reflect_derive v0.14.0 [INFO] [stderr] Compiling bevy_ecs_macros v0.14.0 [INFO] [stderr] Compiling bevy_derive v0.14.0 [INFO] [stderr] Compiling bevy_asset_macros v0.14.0 [INFO] [stderr] Compiling encase_derive v0.8.0 [INFO] [stderr] Compiling bevy_render_macros v0.14.0 [INFO] [stderr] Compiling bevy_encase_derive v0.14.0 [INFO] [stderr] Compiling bevy_gizmos_macros v0.14.0 [INFO] [stderr] Compiling gltf-derive v1.4.1 [INFO] [stderr] Compiling bevy_eventlistener_derive v0.8.1 [INFO] [stderr] Compiling bevy_state_macros v0.14.0 [INFO] [stderr] Compiling phf_macros v0.11.2 [INFO] [stderr] Checking bytemuck v1.16.1 [INFO] [stderr] Checking image v0.25.2 [INFO] [stderr] Checking phf v0.11.2 [INFO] [stderr] Checking tracing v0.1.40 [INFO] [stderr] Checking tracing-subscriber v0.3.18 [INFO] [stderr] Checking bitflags v2.6.0 [INFO] [stderr] Checking glam v0.27.0 [INFO] [stderr] Checking erased-serde v0.4.5 [INFO] [stderr] Checking bincode v1.3.3 [INFO] [stderr] Checking spirv v0.3.0+sdk-1.3.268.0 [INFO] [stderr] Checking wgpu-types v0.20.0 [INFO] [stderr] Checking gpu-alloc-types v0.3.0 [INFO] [stderr] Checking gpu-descriptor-types v0.2.0 [INFO] [stderr] Checking ron v0.8.1 [INFO] [stderr] Checking xkbcommon-dl v0.4.2 [INFO] [stderr] Checking alsa v0.9.0 [INFO] [stderr] Checking gpu-alloc v0.6.0 [INFO] [stderr] Checking bevy_utils v0.14.0 [INFO] [stderr] Checking gpu-descriptor v0.3.0 [INFO] [stderr] Checking gilrs-core v0.5.13 [INFO] [stderr] Checking petgraph v0.6.5 [INFO] [stderr] Checking gltf-json v1.4.1 [INFO] [stderr] Checking naga v0.20.0 [INFO] [stderr] Checking cpal v0.15.3 [INFO] [stderr] Checking rodio v0.18.1 [INFO] [stderr] Checking gltf v1.4.1 [INFO] [stderr] Checking polling v3.7.2 [INFO] [stderr] Checking x11rb v0.13.1 [INFO] [stderr] Checking bevy_reflect v0.14.0 [INFO] [stderr] Checking encase v0.8.0 [INFO] [stderr] Checking bevy_mikktspace v0.14.0 [INFO] [stderr] Checking hexasphere v12.0.0 [INFO] [stderr] Checking calloop v0.13.0 [INFO] [stderr] Checking naga_oil v0.14.0 [INFO] [stderr] Checking bevy_ecs v0.14.0 [INFO] [stderr] Checking bevy_math v0.14.0 [INFO] [stderr] Checking accesskit_winit v0.20.4 [INFO] [stderr] Checking bevy_color v0.14.1 [INFO] [stderr] Checking bevy_app v0.14.0 [INFO] [stderr] Checking bevy_core v0.14.0 [INFO] [stderr] Checking bevy_a11y v0.14.0 [INFO] [stderr] Checking bevy_time v0.14.0 [INFO] [stderr] Checking bevy_asset v0.14.0 [INFO] [stderr] Checking bevy_input v0.14.0 [INFO] [stderr] Checking bevy_log v0.14.0 [INFO] [stderr] Checking bevy_window v0.14.0 [INFO] [stderr] Checking bevy_hierarchy v0.14.0 [INFO] [stderr] Checking bevy_diagnostic v0.14.0 [INFO] [stderr] Checking bevy_transform v0.14.0 [INFO] [stderr] Checking bevy_eventlistener v0.8.1 [INFO] [stderr] Checking bevy_state v0.14.0 [INFO] [stderr] Checking bevy_gilrs v0.14.0 [INFO] [stderr] Checking bevy_winit v0.14.0 [INFO] [stderr] Checking bevy_render v0.14.0 [INFO] [stderr] Checking bevy_audio v0.14.0 [INFO] [stderr] Checking bevy_core_pipeline v0.14.0 [INFO] [stderr] Checking bevy_animation v0.14.0 [INFO] [stderr] Checking bevy_scene v0.14.0 [INFO] [stderr] Checking bevy_picking_core v0.20.0 [INFO] [stderr] Checking bevy_picking_selection v0.20.0 [INFO] [stderr] Checking bevy_picking_input v0.20.0 [INFO] [stderr] Checking bevy_sprite v0.14.0 [INFO] [stderr] Checking bevy_pbr v0.14.0 [INFO] [stderr] Checking bevy_text v0.14.0 [INFO] [stderr] Checking bevy_picking_sprite v0.20.0 [INFO] [stderr] Checking bevy_ui v0.14.0 [INFO] [stderr] Checking bevy_picking_ui v0.20.0 [INFO] [stderr] Checking bevy_gizmos v0.14.0 [INFO] [stderr] Checking bevy_gltf v0.14.0 [INFO] [stderr] Checking bevy_picking_highlight v0.20.0 [INFO] [stderr] Checking bevy_internal v0.14.0 [INFO] [stderr] Checking bevy_mod_raycast v0.18.0 [INFO] [stderr] Checking bevy_dylib v0.14.0 [INFO] [stderr] Checking bevy v0.14.0 [INFO] [stderr] Checking bevy-persistent v0.6.0 [INFO] [stderr] Checking bevy_prototype_lyon v0.12.0 [INFO] [stderr] Checking bevy_tweening v0.11.0 [INFO] [stderr] Checking bevy-alt-ui-navigation-lite v0.2.1 [INFO] [stderr] Checking bevy_picking_raycast v0.20.0 [INFO] [stderr] Checking bevy_mod_picking v0.20.1 [INFO] [stderr] Checking mechanics v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `bevy_prototype_lyon::path::PathBuilder` [INFO] [stdout] --> src/book/page/game.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use bevy_prototype_lyon::path::PathBuilder; [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: `bevy_prototype_lyon::prelude::*` [INFO] [stdout] --> src/book/page/game.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use bevy_prototype_lyon::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bevy_persistent::prelude::*` [INFO] [stdout] --> src/book/page/level.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use bevy_persistent::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bevy_prototype_lyon::path::PathBuilder` [INFO] [stdout] --> src/book/page/game.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use bevy_prototype_lyon::path::PathBuilder; [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: `bevy_prototype_lyon::prelude::*` [INFO] [stdout] --> src/book/page/game.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use bevy_prototype_lyon::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bevy_persistent::prelude::*` [INFO] [stdout] --> src/book/page/level.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use bevy_persistent::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/book/page/game.rs:152:5 [INFO] [stdout] | [INFO] [stdout] 152 | mut commands: Commands, [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/book/page/game.rs:155:5 [INFO] [stdout] | [INFO] [stdout] 155 | mut game_status: ResMut, [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `commands` [INFO] [stdout] --> src/book/page/game.rs:152:5 [INFO] [stdout] | [INFO] [stdout] 152 | mut commands: Commands, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_commands` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `asset_server` [INFO] [stdout] --> src/book/page/game.rs:153:5 [INFO] [stdout] | [INFO] [stdout] 153 | asset_server: Res, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_asset_server` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `window_query` [INFO] [stdout] --> src/book/page/game.rs:154:5 [INFO] [stdout] | [INFO] [stdout] 154 | window_query: Query<&Window>, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_window_query` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `game_status` [INFO] [stdout] --> src/book/page/game.rs:155:5 [INFO] [stdout] | [INFO] [stdout] 155 | mut game_status: ResMut, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_game_status` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `fg_query` [INFO] [stdout] --> src/book/page/game.rs:156:5 [INFO] [stdout] | [INFO] [stdout] 156 | fg_query: Query>, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fg_query` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/book/page/game.rs:152:5 [INFO] [stdout] | [INFO] [stdout] 152 | mut commands: Commands, [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/book/page/game.rs:155:5 [INFO] [stdout] | [INFO] [stdout] 155 | mut game_status: ResMut, [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `commands` [INFO] [stdout] --> src/book/page/game.rs:152:5 [INFO] [stdout] | [INFO] [stdout] 152 | mut commands: Commands, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_commands` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `asset_server` [INFO] [stdout] --> src/book/page/game.rs:153:5 [INFO] [stdout] | [INFO] [stdout] 153 | asset_server: Res, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_asset_server` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `window_query` [INFO] [stdout] --> src/book/page/game.rs:154:5 [INFO] [stdout] | [INFO] [stdout] 154 | window_query: Query<&Window>, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_window_query` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `game_status` [INFO] [stdout] --> src/book/page/game.rs:155:5 [INFO] [stdout] | [INFO] [stdout] 155 | mut game_status: ResMut, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_game_status` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `fg_query` [INFO] [stdout] --> src/book/page/game.rs:156:5 [INFO] [stdout] | [INFO] [stdout] 156 | fg_query: Query>, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fg_query` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/app/ui/timer.rs:4:30 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct AppUiRefreshTimer(pub Timer); [INFO] [stdout] | ----------------- ^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = help: consider removing this field [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/app/ui/timer.rs:7:28 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct AppUiBuildTimer(pub Timer); [INFO] [stdout] | --------------- ^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = help: consider removing this field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/app/ui/timer.rs:10:31 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct AppUiThrottleTimer(pub Timer); [INFO] [stdout] | ------------------ ^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = help: consider removing this field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LV_CIRCLE_R` is never used [INFO] [stdout] --> src/book/page/game.rs:54:7 [INFO] [stdout] | [INFO] [stdout] 54 | const LV_CIRCLE_R: f32 = ui::FONT_SIZE * 3.0; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LV_LINE_W` is never used [INFO] [stdout] --> src/book/page/game.rs:55:7 [INFO] [stdout] | [INFO] [stdout] 55 | const LV_LINE_W: f32 = ui::FONT_SIZE * 0.2; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LV_CONTROL_SIZE` is never used [INFO] [stdout] --> src/book/page/game.rs:56:7 [INFO] [stdout] | [INFO] [stdout] 56 | const LV_CONTROL_SIZE: f32 = ui::FONT_SIZE / 9.0 * 20.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LV_CONTROL_GAP` is never used [INFO] [stdout] --> src/book/page/game.rs:57:7 [INFO] [stdout] | [INFO] [stdout] 57 | const LV_CONTROL_GAP: f32 = LV_CONTROL_SIZE * 0.2; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LV_CONTROL_FS` is never used [INFO] [stdout] --> src/book/page/game.rs:58:7 [INFO] [stdout] | [INFO] [stdout] 58 | const LV_CONTROL_FS: f32 = LV_CONTROL_SIZE * 0.5; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LV_TITLE_FS` is never used [INFO] [stdout] --> src/book/page/game.rs:59:7 [INFO] [stdout] | [INFO] [stdout] 59 | const LV_TITLE_FS: f32 = ui::FONT_SIZE * 2.0; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LV_NUM_FS` is never used [INFO] [stdout] --> src/book/page/game.rs:60:7 [INFO] [stdout] | [INFO] [stdout] 60 | const LV_NUM_FS: f32 = ui::FONT_SIZE * 1.5; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LV_SUB_NUM_FS` is never used [INFO] [stdout] --> src/book/page/game.rs:61:7 [INFO] [stdout] | [INFO] [stdout] 61 | const LV_SUB_NUM_FS: f32 = LV_NUM_FS * 0.6; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LV_TITLE_W` is never used [INFO] [stdout] --> src/book/page/game.rs:62:7 [INFO] [stdout] | [INFO] [stdout] 62 | const LV_TITLE_W: f32 = ui::FONT_SIZE * 12.0; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LV_SHADOW_OFFSET` is never used [INFO] [stdout] --> src/book/page/game.rs:63:7 [INFO] [stdout] | [INFO] [stdout] 63 | const LV_SHADOW_OFFSET: f32 = LV_LINE_W; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LV_SHADOW_W` is never used [INFO] [stdout] --> src/book/page/game.rs:64:7 [INFO] [stdout] | [INFO] [stdout] 64 | const LV_SHADOW_W: f32 = LV_LINE_W * 0.5; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `GAME_FG_REFRESH_TARGET` is never used [INFO] [stdout] --> src/book/page/game.rs:66:7 [INFO] [stdout] | [INFO] [stdout] 66 | const GAME_FG_REFRESH_TARGET: &str = "GAME_FG_REFRESH_TARGET"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `InteractionDefaultFocus` is never constructed [INFO] [stdout] --> src/book/page/settings/control.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 57 | struct InteractionDefaultFocus; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DemoPanelUi` is never constructed [INFO] [stdout] --> src/book/page/settings/control.rs:66:8 [INFO] [stdout] | [INFO] [stdout] 66 | struct DemoPanelUi; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DemoControlThumb` is never constructed [INFO] [stdout] --> src/book/page/settings/control.rs:69:8 [INFO] [stdout] | [INFO] [stdout] 69 | struct DemoControlThumb; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DemoControlThumbSelection` is never constructed [INFO] [stdout] --> src/book/page/settings/control.rs:72:8 [INFO] [stdout] | [INFO] [stdout] 72 | struct DemoControlThumbSelection; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DemoControlCircle` is never constructed [INFO] [stdout] --> src/book/page/settings/control.rs:75:8 [INFO] [stdout] | [INFO] [stdout] 75 | struct DemoControlCircle; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DemoInDragging` is never constructed [INFO] [stdout] --> src/book/page/settings/control.rs:78:8 [INFO] [stdout] | [INFO] [stdout] 78 | struct DemoInDragging; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `InteractionDefaultFocus` is never constructed [INFO] [stdout] --> src/book/page/settings/display.rs:54:8 [INFO] [stdout] | [INFO] [stdout] 54 | struct InteractionDefaultFocus; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ACH_DONE_ANIME_END` is never used [INFO] [stdout] --> src/game/anime_end.rs:4:11 [INFO] [stdout] | [INFO] [stdout] 4 | pub const ACH_DONE_ANIME_END: u64 = 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LEVELS` is never used [INFO] [stdout] --> src/game/level_builder.rs:21:11 [INFO] [stdout] | [INFO] [stdout] 21 | pub const LEVELS: [&str; 7] = ["hello", "timing", "twice", "maze", "star", "chaser", "pool"]; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `start_running` is never used [INFO] [stdout] --> src/game/phase/preparing.rs:185:4 [INFO] [stdout] | [INFO] [stdout] 185 | fn start_running() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind/cross_panel.rs:52:47 [INFO] [stdout] | [INFO] [stdout] 52 | let center_pos = fetch_center_pos(&window, &g_trans); [INFO] [stdout] | ^^^^^^^ help: change this to: `window` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind/cross_panel.rs:52:56 [INFO] [stdout] | [INFO] [stdout] 52 | let center_pos = fetch_center_pos(&window, &g_trans); [INFO] [stdout] | ^^^^^^^^ help: change this to: `g_trans` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `panel_poses` [INFO] [stdout] --> src/app/element/kind/cross_panel.rs:73:22 [INFO] [stdout] | [INFO] [stdout] 73 | for i in 1..8 { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 73 - for i in 1..8 { [INFO] [stdout] 73 + for in panel_poses.iter().skip(1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/app/element/kind/cross_panel.rs:105:1 [INFO] [stdout] | [INFO] [stdout] 105 | / pub fn update_display( [INFO] [stdout] 106 | | commands: &mut Commands, [INFO] [stdout] 107 | | window: &Query<&Window>, [INFO] [stdout] 108 | | g_trans: &GlobalTransform, [INFO] [stdout] ... | [INFO] [stdout] 113 | | is_locked: &bool, [INFO] [stdout] 114 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind/cross_panel.rs:119:47 [INFO] [stdout] | [INFO] [stdout] 119 | let center_pos = fetch_center_pos(&window, &g_trans); [INFO] [stdout] | ^^^^^^^ help: change this to: `window` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind/cross_panel.rs:119:56 [INFO] [stdout] | [INFO] [stdout] 119 | let center_pos = fetch_center_pos(&window, &g_trans); [INFO] [stdout] | ^^^^^^^^ help: change this to: `g_trans` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind/cross_panel.rs:248:39 [INFO] [stdout] | [INFO] [stdout] 248 | let center_pos = fetch_center_pos(&window, &g_trans); [INFO] [stdout] | ^^^^^^^ help: change this to: `window` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind/cross_panel.rs:248:48 [INFO] [stdout] | [INFO] [stdout] 248 | let center_pos = fetch_center_pos(&window, &g_trans); [INFO] [stdout] | ^^^^^^^^ help: change this to: `g_trans` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind/cross_panel.rs:324:19 [INFO] [stdout] | [INFO] [stdout] 324 | to_canvas_pos(&window, world_pos) [INFO] [stdout] | ^^^^^^^ help: change this to: `window` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind/sensitivity_demo.rs:51:47 [INFO] [stdout] | [INFO] [stdout] 51 | let center_pos = fetch_center_pos(&window, &g_trans); [INFO] [stdout] | ^^^^^^^ help: change this to: `window` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind/sensitivity_demo.rs:51:56 [INFO] [stdout] | [INFO] [stdout] 51 | let center_pos = fetch_center_pos(&window, &g_trans); [INFO] [stdout] | ^^^^^^^^ help: change this to: `g_trans` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind/sensitivity_demo.rs:102:47 [INFO] [stdout] | [INFO] [stdout] 102 | let center_pos = fetch_center_pos(&window, &g_trans); [INFO] [stdout] | ^^^^^^^ help: change this to: `window` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind/sensitivity_demo.rs:102:56 [INFO] [stdout] | [INFO] [stdout] 102 | let center_pos = fetch_center_pos(&window, &g_trans); [INFO] [stdout] | ^^^^^^^^ help: change this to: `g_trans` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.iter().next()` on an array [INFO] [stdout] --> src/app/element/kind/sensitivity_demo.rs:171:33 [INFO] [stdout] | [INFO] [stdout] 171 | if let Some(motion_event) = motion_events.iter().next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try calling: `motion_events.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_next_slice [INFO] [stdout] = note: `#[warn(clippy::iter_next_slice)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind/sensitivity_demo.rs:216:19 [INFO] [stdout] | [INFO] [stdout] 216 | to_canvas_pos(&window, world_pos) [INFO] [stdout] | ^^^^^^^ help: change this to: `window` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind/slider.rs:76:62 [INFO] [stdout] | [INFO] [stdout] 76 | let (bar_start_pos, bar_end_pos) = fetch_bar_pos(&window, &g_trans); [INFO] [stdout] | ^^^^^^^ help: change this to: `window` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind/slider.rs:76:71 [INFO] [stdout] | [INFO] [stdout] 76 | let (bar_start_pos, bar_end_pos) = fetch_bar_pos(&window, &g_trans); [INFO] [stdout] | ^^^^^^^^ help: change this to: `g_trans` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind/slider.rs:135:62 [INFO] [stdout] | [INFO] [stdout] 135 | let (bar_start_pos, bar_end_pos) = fetch_bar_pos(&window, &g_trans); [INFO] [stdout] | ^^^^^^^ help: change this to: `window` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind/slider.rs:135:71 [INFO] [stdout] | [INFO] [stdout] 135 | let (bar_start_pos, bar_end_pos) = fetch_bar_pos(&window, &g_trans); [INFO] [stdout] | ^^^^^^^^ help: change this to: `g_trans` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind/slider.rs:225:44 [INFO] [stdout] | [INFO] [stdout] 225 | let (bar_start_pos, _) = fetch_bar_pos(&window, &g_trans); [INFO] [stdout] | ^^^^^^^ help: change this to: `window` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind/slider.rs:225:53 [INFO] [stdout] | [INFO] [stdout] 225 | let (bar_start_pos, _) = fetch_bar_pos(&window, &g_trans); [INFO] [stdout] | ^^^^^^^^ help: change this to: `g_trans` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind/slider.rs:269:31 [INFO] [stdout] | [INFO] [stdout] 269 | let g_pos = to_canvas_pos(&window, world_pos); [INFO] [stdout] | ^^^^^^^ help: change this to: `window` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/app/element/kind.rs:148:17 [INFO] [stdout] | [INFO] [stdout] 148 | / if data.target == target_value.target && target_value.bool_value.is_some() { [INFO] [stdout] 149 | | data.bool_value = target_value.bool_value; [INFO] [stdout] 150 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 147 ~ ElementData::Switcher { ref mut data } [INFO] [stdout] 148 ~ if data.target == target_value.target && target_value.bool_value.is_some() => { [INFO] [stdout] 149 | data.bool_value = target_value.bool_value; [INFO] [stdout] 150 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/app/element/kind.rs:157:17 [INFO] [stdout] | [INFO] [stdout] 157 | / if data.target == target_value.target && target_value.u8_value.is_some() { [INFO] [stdout] 158 | | data.u8_value = target_value.u8_value; [INFO] [stdout] 159 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 156 ~ } [INFO] [stdout] 157 ~ if data.target == target_value.target && target_value.u8_value.is_some() => { [INFO] [stdout] 158 | data.u8_value = target_value.u8_value; [INFO] [stdout] 159 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/app/element/kind.rs:167:17 [INFO] [stdout] | [INFO] [stdout] 167 | / if target_value.u8_value.is_some() { [INFO] [stdout] 168 | | if x.target == target_value.target { [INFO] [stdout] 169 | | x.u8_value = target_value.u8_value; [INFO] [stdout] ... | [INFO] [stdout] 174 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 166 ~ } [INFO] [stdout] 167 ~ if target_value.u8_value.is_some() => { [INFO] [stdout] 168 | if x.target == target_value.target { [INFO] [stdout] ... [INFO] [stdout] 173 | } [INFO] [stdout] 174 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/app/element/kind.rs:183:17 [INFO] [stdout] | [INFO] [stdout] 183 | / if target_value.u8_value.is_some() { [INFO] [stdout] 184 | | if default_sensitivity.target == target_value.target { [INFO] [stdout] 185 | | default_sensitivity.u8_value = target_value.u8_value; [INFO] [stdout] ... | [INFO] [stdout] 190 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 182 ~ } [INFO] [stdout] 183 ~ if target_value.u8_value.is_some() => { [INFO] [stdout] 184 | if default_sensitivity.target == target_value.target { [INFO] [stdout] ... [INFO] [stdout] 189 | } [INFO] [stdout] 190 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/app/element/kind.rs:226:9 [INFO] [stdout] | [INFO] [stdout] 226 | let is_ui_locked; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `is_ui_locked` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 226 ~ [INFO] [stdout] 227 | let data = data.as_mut(); [INFO] [stdout] 228 ~ let is_ui_locked = match data { [INFO] [stdout] 229 | ElementData::Slider { [INFO] [stdout] ... [INFO] [stdout] 233 | } => { [INFO] [stdout] 234 ~ is_locked [INFO] [stdout] 235 | } [INFO] [stdout] ... [INFO] [stdout] 241 | } => { [INFO] [stdout] 242 ~ is_locked [INFO] [stdout] 243 | } [INFO] [stdout] ... [INFO] [stdout] 250 | } => { [INFO] [stdout] 251 ~ is_locked [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression assigns a bool literal [INFO] [stdout] --> src/app/element/kind.rs:256:13 [INFO] [stdout] | [INFO] [stdout] 256 | / if ele_entity == entity { [INFO] [stdout] 257 | | *is_ui_locked = true; [INFO] [stdout] 258 | | } else { [INFO] [stdout] 259 | | *is_ui_locked = false; [INFO] [stdout] 260 | | } [INFO] [stdout] | |_____________^ help: you can reduce it to: `*is_ui_locked = ele_entity == entity;` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool_assign [INFO] [stdout] = note: `#[warn(clippy::needless_bool_assign)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (12/7) [INFO] [stdout] --> src/app/element/kind.rs:267:1 [INFO] [stdout] | [INFO] [stdout] 267 | / fn refresh_elements( [INFO] [stdout] 268 | | mut commands: Commands, [INFO] [stdout] 269 | | ele_query: Query<(&GlobalTransform, &Node, Entity, &mut ElementData), With>, [INFO] [stdout] 270 | | bg_query: Query>, [INFO] [stdout] ... | [INFO] [stdout] 279 | | asset_server: Res, [INFO] [stdout] 280 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:297:67 [INFO] [stdout] | [INFO] [stdout] 297 | } => slider::init_display(&mut commands, &window, &g_trans, fg_entity), [INFO] [stdout] | ^^^^^^^^ help: change this to: `g_trans` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:303:72 [INFO] [stdout] | [INFO] [stdout] 303 | } => cross_panel::init_display(&mut commands, &window, &g_trans, fg_entity), [INFO] [stdout] | ^^^^^^^^ help: change this to: `g_trans` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:310:77 [INFO] [stdout] | [INFO] [stdout] 310 | } => sensitivity_demo::init_display(&mut commands, &window, &g_trans, fg_entity), [INFO] [stdout] | ^^^^^^^^ help: change this to: `g_trans` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/app/element/kind.rs:322:21 [INFO] [stdout] | [INFO] [stdout] 322 | / match ele_data { [INFO] [stdout] 323 | | ElementData::Slider { [INFO] [stdout] 324 | | data, [INFO] [stdout] 325 | | is_modifier_on: _, [INFO] [stdout] ... | [INFO] [stdout] 328 | | _ => (), [INFO] [stdout] 329 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 322 ~ if let ElementData::Slider { [INFO] [stdout] 323 + data, [INFO] [stdout] 324 + is_modifier_on: _, [INFO] [stdout] 325 + is_locked: _, [INFO] [stdout] 326 + } = ele_data { slider::update_text(&mut ui_text, &data) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:327:64 [INFO] [stdout] | [INFO] [stdout] 327 | } => slider::update_text(&mut ui_text, &data), [INFO] [stdout] | ^^^^^ help: change this to: `data` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/app/element/kind.rs:334:21 [INFO] [stdout] | [INFO] [stdout] 334 | / match ele_data { [INFO] [stdout] 335 | | ElementData::Switcher { data } => { [INFO] [stdout] 336 | | switcher::update_ui_image(&mut ui_image, &data, &asset_server) [INFO] [stdout] ... | [INFO] [stdout] 339 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 334 ~ if let ElementData::Switcher { data } = ele_data { [INFO] [stdout] 335 + switcher::update_ui_image(&mut ui_image, &data, &asset_server) [INFO] [stdout] 336 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:336:70 [INFO] [stdout] | [INFO] [stdout] 336 | ... switcher::update_ui_image(&mut ui_image, &data, &asset_server) [INFO] [stdout] | ^^^^^ help: change this to: `data` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:350:21 [INFO] [stdout] | [INFO] [stdout] 350 | &g_trans, [INFO] [stdout] | ^^^^^^^^ help: change this to: `g_trans` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:352:21 [INFO] [stdout] | [INFO] [stdout] 352 | &data, [INFO] [stdout] | ^^^^^ help: change this to: `data` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:353:21 [INFO] [stdout] | [INFO] [stdout] 353 | &is_modifier_on, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `is_modifier_on` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:354:21 [INFO] [stdout] | [INFO] [stdout] 354 | &is_locked, [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `is_locked` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:364:21 [INFO] [stdout] | [INFO] [stdout] 364 | &g_trans, [INFO] [stdout] | ^^^^^^^^ help: change this to: `g_trans` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:366:21 [INFO] [stdout] | [INFO] [stdout] 366 | &x, [INFO] [stdout] | ^^ help: change this to: `x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:367:21 [INFO] [stdout] | [INFO] [stdout] 367 | &y, [INFO] [stdout] | ^^ help: change this to: `y` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:368:21 [INFO] [stdout] | [INFO] [stdout] 368 | &is_modifier_on, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `is_modifier_on` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:369:21 [INFO] [stdout] | [INFO] [stdout] 369 | &is_locked, [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `is_locked` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:380:21 [INFO] [stdout] | [INFO] [stdout] 380 | &g_trans, [INFO] [stdout] | ^^^^^^^^ help: change this to: `g_trans` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:382:21 [INFO] [stdout] | [INFO] [stdout] 382 | &ball_pos, [INFO] [stdout] | ^^^^^^^^^ help: change this to: `ball_pos` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:383:21 [INFO] [stdout] | [INFO] [stdout] 383 | &is_modifier_on, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `is_modifier_on` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:384:21 [INFO] [stdout] | [INFO] [stdout] 384 | &is_locked, [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `is_locked` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/app/element/kind.rs:452:37 [INFO] [stdout] | [INFO] [stdout] 452 | Interaction::Hovered => match &mut data.as_mut() { [INFO] [stdout] | _____________________________________^ [INFO] [stdout] 453 | | ElementData::SensitivityDemo { [INFO] [stdout] 454 | | default_sensitivity: _, [INFO] [stdout] 455 | | modified_sensitivity: _, [INFO] [stdout] ... | [INFO] [stdout] 462 | | _ => (), [INFO] [stdout] 463 | | }, [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 452 ~ Interaction::Hovered => if let ElementData::SensitivityDemo { [INFO] [stdout] 453 + default_sensitivity: _, [INFO] [stdout] 454 + modified_sensitivity: _, [INFO] [stdout] 455 + ball_pos: _, [INFO] [stdout] 456 + is_modifier_on: _, [INFO] [stdout] 457 + is_locked: _, [INFO] [stdout] 458 + } = &mut data.as_mut() { [INFO] [stdout] 459 + cursor_icon::set_cursor_icon(&mut cursor_icon_query, &asset_server, "pointer"); [INFO] [stdout] 460 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/app/element/kind.rs:464:34 [INFO] [stdout] | [INFO] [stdout] 464 | Interaction::None => match &mut data.as_mut() { [INFO] [stdout] | __________________________________^ [INFO] [stdout] 465 | | ElementData::SensitivityDemo { [INFO] [stdout] 466 | | default_sensitivity: _, [INFO] [stdout] 467 | | modified_sensitivity: _, [INFO] [stdout] ... | [INFO] [stdout] 474 | | _ => (), [INFO] [stdout] 475 | | }, [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 464 ~ Interaction::None => if let ElementData::SensitivityDemo { [INFO] [stdout] 465 + default_sensitivity: _, [INFO] [stdout] 466 + modified_sensitivity: _, [INFO] [stdout] 467 + ball_pos: _, [INFO] [stdout] 468 + is_modifier_on: _, [INFO] [stdout] 469 + is_locked: _, [INFO] [stdout] 470 + } = &mut data.as_mut() { [INFO] [stdout] 471 + cursor_icon::set_cursor_icon(&mut cursor_icon_query, &asset_server, "default"); [INFO] [stdout] 472 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/app/element/kind.rs:487:13 [INFO] [stdout] | [INFO] [stdout] 487 | let is_ui_locked; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `is_ui_locked` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 487 ~ [INFO] [stdout] 488 | let data = data.as_mut(); [INFO] [stdout] 489 ~ let is_ui_locked = match data { [INFO] [stdout] 490 | ElementData::Slider { [INFO] [stdout] ... [INFO] [stdout] 494 | } => { [INFO] [stdout] 495 ~ is_locked [INFO] [stdout] 496 | } [INFO] [stdout] ... [INFO] [stdout] 502 | } => { [INFO] [stdout] 503 ~ is_locked [INFO] [stdout] 504 | } [INFO] [stdout] ... [INFO] [stdout] 511 | } => { [INFO] [stdout] 512 ~ is_locked [INFO] [stdout] 513 | } [INFO] [stdout] ... [INFO] [stdout] 516 | } [INFO] [stdout] 517 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:583:25 [INFO] [stdout] | [INFO] [stdout] 583 | &is_modifier_on, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `is_modifier_on` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/app/element/kind.rs:641:21 [INFO] [stdout] | [INFO] [stdout] 641 | / if press_action == ElementAction::Confirm { [INFO] [stdout] 642 | | switcher::toggle_switcher(data); [INFO] [stdout] 643 | | event_writer.send(ElementEvent::DataChanged { data: data.clone() }); [INFO] [stdout] 644 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 640 ~ ElementData::Switcher { data } [INFO] [stdout] 641 ~ if press_action == ElementAction::Confirm => { [INFO] [stdout] 642 | switcher::toggle_switcher(data); [INFO] [stdout] 643 | event_writer.send(ElementEvent::DataChanged { data: data.clone() }); [INFO] [stdout] 644 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/app/element/kind.rs:828:8 [INFO] [stdout] | [INFO] [stdout] 828 | if key_actions.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `key_actions.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/app/element/kind.rs:857:13 [INFO] [stdout] | [INFO] [stdout] 857 | / if is_triggered { [INFO] [stdout] 858 | | slider::handle_element_changing( [INFO] [stdout] 859 | | &key_action, [INFO] [stdout] 860 | | data, [INFO] [stdout] ... | [INFO] [stdout] 864 | | ); [INFO] [stdout] 865 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 856 ~ } [INFO] [stdout] 857 ~ if is_triggered => { [INFO] [stdout] 858 | slider::handle_element_changing( [INFO] [stdout] ... [INFO] [stdout] 864 | ); [INFO] [stdout] 865 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/app/element/kind.rs:873:13 [INFO] [stdout] | [INFO] [stdout] 873 | / if is_triggered { [INFO] [stdout] 874 | | cross_panel::handle_element_changing( [INFO] [stdout] 875 | | &key_action, [INFO] [stdout] 876 | | x, [INFO] [stdout] ... | [INFO] [stdout] 881 | | ); [INFO] [stdout] 882 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 872 ~ } [INFO] [stdout] 873 ~ if is_triggered => { [INFO] [stdout] 874 | cross_panel::handle_element_changing( [INFO] [stdout] ... [INFO] [stdout] 881 | ); [INFO] [stdout] 882 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:859:21 [INFO] [stdout] | [INFO] [stdout] 859 | &key_action, [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `key_action` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:875:21 [INFO] [stdout] | [INFO] [stdout] 875 | &key_action, [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `key_action` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:892:17 [INFO] [stdout] | [INFO] [stdout] 892 | &key_action, [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `key_action` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/app/settings.rs:62:17 [INFO] [stdout] | [INFO] [stdout] 62 | / if self.bgm_enabled { [INFO] [stdout] 63 | | self.bgm_volume [INFO] [stdout] 64 | | } else { [INFO] [stdout] 65 | | 0 [INFO] [stdout] 66 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 61 ~ "bgm" [INFO] [stdout] 62 ~ if self.bgm_enabled => { [INFO] [stdout] 63 | self.bgm_volume [INFO] [stdout] 64 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/app/settings.rs:69:17 [INFO] [stdout] | [INFO] [stdout] 69 | / if self.se_enabled { [INFO] [stdout] 70 | | self.se_volume [INFO] [stdout] 71 | | } else { [INFO] [stdout] 72 | | 0 [INFO] [stdout] 73 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 68 ~ "se" [INFO] [stdout] 69 ~ if self.se_enabled => { [INFO] [stdout] 70 | self.se_volume [INFO] [stdout] 71 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/startup.rs:23:30 [INFO] [stdout] | [INFO] [stdout] 23 | audio::startup(commands, &asset_server, &settings); [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `asset_server` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/startup.rs:23:45 [INFO] [stdout] | [INFO] [stdout] 23 | audio::startup(commands, &asset_server, &settings); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `settings` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/startup.rs:29:45 [INFO] [stdout] | [INFO] [stdout] 29 | cursor_icon::init_cursor_icon(commands, &asset_server); [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `asset_server` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/book/page/about.rs:35:17 [INFO] [stdout] | [INFO] [stdout] 35 | &asset_server, [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `asset_server` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/book/page/about.rs:71:59 [INFO] [stdout] | [INFO] [stdout] 71 | ... build_current_tab(parent, &asset_server, "circuitry-light_1.5x"); [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `asset_server` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/book/page/about.rs:75:37 [INFO] [stdout] | [INFO] [stdout] 75 | ... &asset_server, [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `asset_server` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/book/page/about.rs:101:37 [INFO] [stdout] | [INFO] [stdout] 101 | ... &asset_server, [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `asset_server` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/book/page/about.rs:107:37 [INFO] [stdout] | [INFO] [stdout] 107 | ... &asset_server, [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `asset_server` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/book/page/about.rs:131:59 [INFO] [stdout] | [INFO] [stdout] 131 | ... build_current_tab(parent, &asset_server, "paint-brush-light_1.5x"); [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `asset_server` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/book/page/about.rs:135:37 [INFO] [stdout] | [INFO] [stdout] 135 | ... &asset_server, [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `asset_server` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/book/page/settings/audio.rs:192:24 [INFO] [stdout] | [INFO] [stdout] 192 | if let Some(_) = data.bool_value { [INFO] [stdout] | -------^^^^^^^------------------ help: try: `if data.bool_value.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/book/page/settings/audio.rs:232:9 [INFO] [stdout] | [INFO] [stdout] 232 | / match event { [INFO] [stdout] 233 | | NavEvent::NoChanges { from, request } => match *request { [INFO] [stdout] 234 | | NavRequest::Action => { [INFO] [stdout] 235 | | for (entity, action) in action_query.iter() { [INFO] [stdout] ... | [INFO] [stdout] 257 | | _ => (), [INFO] [stdout] 258 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 232 ~ if let NavEvent::NoChanges { from, request } = event { match *request { [INFO] [stdout] 233 + NavRequest::Action => { [INFO] [stdout] 234 + for (entity, action) in action_query.iter() { [INFO] [stdout] 235 + if *from.first() == entity { [INFO] [stdout] 236 + match action { [INFO] [stdout] 237 + ButtonAction::PlaySe => { [INFO] [stdout] 238 + app::audio::play_se( [INFO] [stdout] 239 + "success", [INFO] [stdout] 240 + &mut commands, [INFO] [stdout] 241 + &asset_server, [INFO] [stdout] 242 + settings.as_ref(), [INFO] [stdout] 243 + ); [INFO] [stdout] 244 + } [INFO] [stdout] 245 + ButtonAction::MoveToPage(state) => page_state.set(*state), [INFO] [stdout] 246 + _ => (), [INFO] [stdout] 247 + } [INFO] [stdout] 248 + } [INFO] [stdout] 249 + } [INFO] [stdout] 250 + } [INFO] [stdout] 251 + NavRequest::Unlock => { [INFO] [stdout] 252 + element::apply_element_lock(None, &mut ele_query); [INFO] [stdout] 253 + } [INFO] [stdout] 254 + _ => (), [INFO] [stdout] 255 + } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/book/page/settings/control.rs:283:9 [INFO] [stdout] | [INFO] [stdout] 283 | / match event { [INFO] [stdout] 284 | | NavEvent::NoChanges { from, request } => match *request { [INFO] [stdout] 285 | | NavRequest::Action => { [INFO] [stdout] 286 | | for (entity, action) in action_query.iter() { [INFO] [stdout] ... | [INFO] [stdout] 300 | | _ => (), [INFO] [stdout] 301 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 283 ~ if let NavEvent::NoChanges { from, request } = event { match *request { [INFO] [stdout] 284 + NavRequest::Action => { [INFO] [stdout] 285 + for (entity, action) in action_query.iter() { [INFO] [stdout] 286 + if *from.first() == entity { [INFO] [stdout] 287 + match action { [INFO] [stdout] 288 + ButtonAction::MoveToPage(state) => page_state.set(*state), [INFO] [stdout] 289 + _ => (), [INFO] [stdout] 290 + } [INFO] [stdout] 291 + } [INFO] [stdout] 292 + } [INFO] [stdout] 293 + } [INFO] [stdout] 294 + NavRequest::Unlock => { [INFO] [stdout] 295 + element::apply_element_lock(None, &mut ele_query); [INFO] [stdout] 296 + } [INFO] [stdout] 297 + _ => (), [INFO] [stdout] 298 + } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/book/page/settings/control.rs:288:29 [INFO] [stdout] | [INFO] [stdout] 288 | / ... match action { [INFO] [stdout] 289 | | ... ButtonAction::MoveToPage(state) => page_state.set(*state), [INFO] [stdout] 290 | | ... _ => (), [INFO] [stdout] 291 | | ... } [INFO] [stdout] | |_______________________^ help: try: `if let ButtonAction::MoveToPage(state) = action { page_state.set(*state) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` can be collapsed into the outer `match` [INFO] [stdout] --> src/book/page/settings/display.rs:127:54 [INFO] [stdout] | [INFO] [stdout] 127 | NavEvent::NoChanges { from, request } => match *request { [INFO] [stdout] | ______________________________________________________^ [INFO] [stdout] 128 | | NavRequest::Action => { [INFO] [stdout] 129 | | for (entity, action) in action_query.iter() { [INFO] [stdout] 130 | | if *from.first() == entity { [INFO] [stdout] ... | [INFO] [stdout] 138 | | _ => (), [INFO] [stdout] 139 | | }, [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> src/book/page/settings/display.rs:127:41 [INFO] [stdout] | [INFO] [stdout] 126 | match event { [INFO] [stdout] | ----- use: `event.copied()` [INFO] [stdout] 127 | NavEvent::NoChanges { from, request } => match *request { [INFO] [stdout] | ^^^^^^^ replace this binding [INFO] [stdout] 128 | NavRequest::Action => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ with this pattern, prefixed by `request: ` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/book/page/settings/display.rs:126:9 [INFO] [stdout] | [INFO] [stdout] 126 | / match event { [INFO] [stdout] 127 | | NavEvent::NoChanges { from, request } => match *request { [INFO] [stdout] 128 | | NavRequest::Action => { [INFO] [stdout] 129 | | for (entity, action) in action_query.iter() { [INFO] [stdout] ... | [INFO] [stdout] 140 | | _ => (), [INFO] [stdout] 141 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 126 ~ if let NavEvent::NoChanges { from, request } = event { match *request { [INFO] [stdout] 127 + NavRequest::Action => { [INFO] [stdout] 128 + for (entity, action) in action_query.iter() { [INFO] [stdout] 129 + if *from.first() == entity { [INFO] [stdout] 130 + match action { [INFO] [stdout] 131 + ButtonAction::MoveToPage(state) => page_state.set(*state), [INFO] [stdout] 132 + _ => (), [INFO] [stdout] 133 + } [INFO] [stdout] 134 + } [INFO] [stdout] 135 + } [INFO] [stdout] 136 + } [INFO] [stdout] 137 + _ => (), [INFO] [stdout] 138 + } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/book/page/settings/display.rs:127:54 [INFO] [stdout] | [INFO] [stdout] 127 | NavEvent::NoChanges { from, request } => match *request { [INFO] [stdout] | ______________________________________________________^ [INFO] [stdout] 128 | | NavRequest::Action => { [INFO] [stdout] 129 | | for (entity, action) in action_query.iter() { [INFO] [stdout] 130 | | if *from.first() == entity { [INFO] [stdout] ... | [INFO] [stdout] 138 | | _ => (), [INFO] [stdout] 139 | | }, [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 127 ~ NavEvent::NoChanges { from, request } => if *request == NavRequest::Action { [INFO] [stdout] 128 + for (entity, action) in action_query.iter() { [INFO] [stdout] 129 + if *from.first() == entity { [INFO] [stdout] 130 + match action { [INFO] [stdout] 131 + ButtonAction::MoveToPage(state) => page_state.set(*state), [INFO] [stdout] 132 + _ => (), [INFO] [stdout] 133 + } [INFO] [stdout] 134 + } [INFO] [stdout] 135 + } [INFO] [stdout] 136 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/book/page/settings/display.rs:131:29 [INFO] [stdout] | [INFO] [stdout] 131 | / ... match action { [INFO] [stdout] 132 | | ... ButtonAction::MoveToPage(state) => page_state.set(*state), [INFO] [stdout] 133 | | ... _ => (), [INFO] [stdout] 134 | | ... } [INFO] [stdout] | |_______________________^ help: try: `if let ButtonAction::MoveToPage(state) = action { page_state.set(*state) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/book/page/settings/display.rs:154:24 [INFO] [stdout] | [INFO] [stdout] 154 | if let Some(_) = data.bool_value { [INFO] [stdout] | -------^^^^^^^------------------ help: try: `if data.bool_value.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/book/page/settings.rs:36:17 [INFO] [stdout] | [INFO] [stdout] 36 | &asset_server, [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `asset_server` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/book/page/settings.rs:74:37 [INFO] [stdout] | [INFO] [stdout] 74 | ... &asset_server, [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `asset_server` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/book/page/settings.rs:80:37 [INFO] [stdout] | [INFO] [stdout] 80 | ... &asset_server, [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `asset_server` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/book/page/settings.rs:104:59 [INFO] [stdout] | [INFO] [stdout] 104 | ... build_current_tab(parent, &asset_server, "monitor-light_1.5x"); [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `asset_server` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/book/page/settings.rs:108:37 [INFO] [stdout] | [INFO] [stdout] 108 | ... &asset_server, [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `asset_server` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/book/page/settings.rs:134:37 [INFO] [stdout] | [INFO] [stdout] 134 | ... &asset_server, [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `asset_server` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/book/page/settings.rs:140:37 [INFO] [stdout] | [INFO] [stdout] 140 | ... &asset_server, [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `asset_server` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this match could be replaced by its body itself [INFO] [stdout] --> src/game/anime_end.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | / match tween_event.user_data { [INFO] [stdout] ... | [INFO] [stdout] 13 | | } [INFO] [stdout] | |_________^ help: consider using the match body instead: `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_single_binding [INFO] [stdout] = note: `#[warn(clippy::match_single_binding)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct implementation of `ToString` [INFO] [stdout] --> src/game/ball.rs:43:1 [INFO] [stdout] | [INFO] [stdout] 43 | / impl ToString for BallType { [INFO] [stdout] 44 | | fn to_string(&self) -> String { [INFO] [stdout] 45 | | match self { [INFO] [stdout] 46 | | BallType::Stone => String::from("stone"), [INFO] [stdout] ... | [INFO] [stdout] 51 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: prefer implementing `Display` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_trait_impl [INFO] [stdout] = note: `#[warn(clippy::to_string_trait_impl)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct implementation of `ToString` [INFO] [stdout] --> src/game/ball.rs:71:1 [INFO] [stdout] | [INFO] [stdout] 71 | / impl ToString for BallControlType { [INFO] [stdout] 72 | | fn to_string(&self) -> String { [INFO] [stdout] 73 | | match self { [INFO] [stdout] 74 | | BallControlType::Angle => String::from("angle"), [INFO] [stdout] ... | [INFO] [stdout] 80 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: prefer implementing `Display` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_trait_impl [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/ball.rs:301:17 [INFO] [stdout] | [INFO] [stdout] 301 | return false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 301 - return false; [INFO] [stdout] 301 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/ball.rs:304:17 [INFO] [stdout] | [INFO] [stdout] 304 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 304 - return true; [INFO] [stdout] 304 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/ball.rs:307:13 [INFO] [stdout] | [INFO] [stdout] 307 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 307 - return true; [INFO] [stdout] 307 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `self.control_params.x` after checking its variant with `is_some` [INFO] [stdout] --> src/game/ball.rs:368:21 [INFO] [stdout] | [INFO] [stdout] 362 | if self.control_params.x.is_some() && self.control_params.x.is_some() { [INFO] [stdout] | ------------------------------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 368 | self.control_params.x.unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/ball.rs:473:5 [INFO] [stdout] | [INFO] [stdout] 473 | return path_builder; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 473 - return path_builder; [INFO] [stdout] 473 + path_builder [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/app/ui/timer.rs:4:30 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct AppUiRefreshTimer(pub Timer); [INFO] [stdout] | ----------------- ^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = help: consider removing this field [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/app/ui/timer.rs:7:28 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct AppUiBuildTimer(pub Timer); [INFO] [stdout] | --------------- ^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = help: consider removing this field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/app/ui/timer.rs:10:31 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct AppUiThrottleTimer(pub Timer); [INFO] [stdout] | ------------------ ^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = help: consider removing this field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LV_CIRCLE_R` is never used [INFO] [stdout] --> src/book/page/game.rs:54:7 [INFO] [stdout] | [INFO] [stdout] 54 | const LV_CIRCLE_R: f32 = ui::FONT_SIZE * 3.0; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LV_LINE_W` is never used [INFO] [stdout] --> src/book/page/game.rs:55:7 [INFO] [stdout] | [INFO] [stdout] 55 | const LV_LINE_W: f32 = ui::FONT_SIZE * 0.2; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LV_CONTROL_SIZE` is never used [INFO] [stdout] --> src/book/page/game.rs:56:7 [INFO] [stdout] | [INFO] [stdout] 56 | const LV_CONTROL_SIZE: f32 = ui::FONT_SIZE / 9.0 * 20.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LV_CONTROL_GAP` is never used [INFO] [stdout] --> src/book/page/game.rs:57:7 [INFO] [stdout] | [INFO] [stdout] 57 | const LV_CONTROL_GAP: f32 = LV_CONTROL_SIZE * 0.2; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LV_CONTROL_FS` is never used [INFO] [stdout] --> src/book/page/game.rs:58:7 [INFO] [stdout] | [INFO] [stdout] 58 | const LV_CONTROL_FS: f32 = LV_CONTROL_SIZE * 0.5; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LV_TITLE_FS` is never used [INFO] [stdout] --> src/book/page/game.rs:59:7 [INFO] [stdout] | [INFO] [stdout] 59 | const LV_TITLE_FS: f32 = ui::FONT_SIZE * 2.0; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LV_NUM_FS` is never used [INFO] [stdout] --> src/book/page/game.rs:60:7 [INFO] [stdout] | [INFO] [stdout] 60 | const LV_NUM_FS: f32 = ui::FONT_SIZE * 1.5; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LV_SUB_NUM_FS` is never used [INFO] [stdout] --> src/book/page/game.rs:61:7 [INFO] [stdout] | [INFO] [stdout] 61 | const LV_SUB_NUM_FS: f32 = LV_NUM_FS * 0.6; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LV_TITLE_W` is never used [INFO] [stdout] --> src/book/page/game.rs:62:7 [INFO] [stdout] | [INFO] [stdout] 62 | const LV_TITLE_W: f32 = ui::FONT_SIZE * 12.0; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LV_SHADOW_OFFSET` is never used [INFO] [stdout] --> src/book/page/game.rs:63:7 [INFO] [stdout] | [INFO] [stdout] 63 | const LV_SHADOW_OFFSET: f32 = LV_LINE_W; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LV_SHADOW_W` is never used [INFO] [stdout] --> src/book/page/game.rs:64:7 [INFO] [stdout] | [INFO] [stdout] 64 | const LV_SHADOW_W: f32 = LV_LINE_W * 0.5; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `GAME_FG_REFRESH_TARGET` is never used [INFO] [stdout] --> src/book/page/game.rs:66:7 [INFO] [stdout] | [INFO] [stdout] 66 | const GAME_FG_REFRESH_TARGET: &str = "GAME_FG_REFRESH_TARGET"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `InteractionDefaultFocus` is never constructed [INFO] [stdout] --> src/book/page/settings/control.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 57 | struct InteractionDefaultFocus; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DemoPanelUi` is never constructed [INFO] [stdout] --> src/book/page/settings/control.rs:66:8 [INFO] [stdout] | [INFO] [stdout] 66 | struct DemoPanelUi; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DemoControlThumb` is never constructed [INFO] [stdout] --> src/book/page/settings/control.rs:69:8 [INFO] [stdout] | [INFO] [stdout] 69 | struct DemoControlThumb; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DemoControlThumbSelection` is never constructed [INFO] [stdout] --> src/book/page/settings/control.rs:72:8 [INFO] [stdout] | [INFO] [stdout] 72 | struct DemoControlThumbSelection; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DemoControlCircle` is never constructed [INFO] [stdout] --> src/book/page/settings/control.rs:75:8 [INFO] [stdout] | [INFO] [stdout] 75 | struct DemoControlCircle; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DemoInDragging` is never constructed [INFO] [stdout] --> src/book/page/settings/control.rs:78:8 [INFO] [stdout] | [INFO] [stdout] 78 | struct DemoInDragging; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `InteractionDefaultFocus` is never constructed [INFO] [stdout] --> src/book/page/settings/display.rs:54:8 [INFO] [stdout] | [INFO] [stdout] 54 | struct InteractionDefaultFocus; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ACH_DONE_ANIME_END` is never used [INFO] [stdout] --> src/game/anime_end.rs:4:11 [INFO] [stdout] | [INFO] [stdout] 4 | pub const ACH_DONE_ANIME_END: u64 = 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LEVELS` is never used [INFO] [stdout] --> src/game/level_builder.rs:21:11 [INFO] [stdout] | [INFO] [stdout] 21 | pub const LEVELS: [&str; 7] = ["hello", "timing", "twice", "maze", "star", "chaser", "pool"]; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `start_running` is never used [INFO] [stdout] --> src/game/phase/preparing.rs:185:4 [INFO] [stdout] | [INFO] [stdout] 185 | fn start_running() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/ball_interaction.rs:78:13 [INFO] [stdout] | [INFO] [stdout] 78 | return HitType::Inside; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 78 - return HitType::Inside; [INFO] [stdout] 78 + HitType::Inside [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/ball_interaction.rs:80:13 [INFO] [stdout] | [INFO] [stdout] 80 | return HitType::None; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 80 - return HitType::None; [INFO] [stdout] 80 + HitType::None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/ball_interaction.rs:84:13 [INFO] [stdout] | [INFO] [stdout] 84 | return HitType::Inside; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 84 - return HitType::Inside; [INFO] [stdout] 84 + HitType::Inside [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/ball_interaction.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | return HitType::None; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 86 - return HitType::None; [INFO] [stdout] 86 + HitType::None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/game/field.rs:250:13 [INFO] [stdout] | [INFO] [stdout] 250 | lv_y = lv_y - LV_CONTROL_GAP * 6.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `lv_y -= LV_CONTROL_GAP * 6.0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&level_code).is_none()` [INFO] [stdout] --> src/game/leaderboard/model.rs:32:27 [INFO] [stdout] | [INFO] [stdout] 32 | if self.level_map.get(&level_code).is_none() { [INFO] [stdout] | ---------------^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!self.level_map.contains_key(&level_code)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] = note: `#[warn(clippy::unnecessary_get_then_check)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind/cross_panel.rs:52:47 [INFO] [stdout] | [INFO] [stdout] 52 | let center_pos = fetch_center_pos(&window, &g_trans); [INFO] [stdout] | ^^^^^^^ help: change this to: `window` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind/cross_panel.rs:52:56 [INFO] [stdout] | [INFO] [stdout] 52 | let center_pos = fetch_center_pos(&window, &g_trans); [INFO] [stdout] | ^^^^^^^^ help: change this to: `g_trans` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `panel_poses` [INFO] [stdout] --> src/app/element/kind/cross_panel.rs:73:22 [INFO] [stdout] | [INFO] [stdout] 73 | for i in 1..8 { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 73 - for i in 1..8 { [INFO] [stdout] 73 + for in panel_poses.iter().skip(1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/game/phase/preparing.rs:53:13 [INFO] [stdout] | [INFO] [stdout] 53 | / Ball::create_sprite( [INFO] [stdout] 54 | | ball_config.ball_type.clone(), [INFO] [stdout] 55 | | parent, [INFO] [stdout] 56 | | {}, [INFO] [stdout] 57 | | ball_config.property.clone(), [INFO] [stdout] 58 | | ball_config.control_params.clone(), [INFO] [stdout] 59 | | ); [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] = note: `#[warn(clippy::unit_arg)]` on by default [INFO] [stdout] help: use a unit literal instead [INFO] [stdout] | [INFO] [stdout] 56 - {}, [INFO] [stdout] 56 + (), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/app/element/kind/cross_panel.rs:105:1 [INFO] [stdout] | [INFO] [stdout] 105 | / pub fn update_display( [INFO] [stdout] 106 | | commands: &mut Commands, [INFO] [stdout] 107 | | window: &Query<&Window>, [INFO] [stdout] 108 | | g_trans: &GlobalTransform, [INFO] [stdout] ... | [INFO] [stdout] 113 | | is_locked: &bool, [INFO] [stdout] 114 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind/cross_panel.rs:119:47 [INFO] [stdout] | [INFO] [stdout] 119 | let center_pos = fetch_center_pos(&window, &g_trans); [INFO] [stdout] | ^^^^^^^ help: change this to: `window` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (10/7) [INFO] [stdout] --> src/game/phase/preparing.rs:64:1 [INFO] [stdout] | [INFO] [stdout] 64 | / fn state_update( [INFO] [stdout] 65 | | mut commands: Commands, [INFO] [stdout] 66 | | mut ball_query: Query<(Entity, &mut Ball, &mut Transform), With>, [INFO] [stdout] 67 | | mut ae_query: Query<(Entity, &mut anime_effect::AnimeEffect), With>, [INFO] [stdout] ... | [INFO] [stdout] 75 | | mut game_status: ResMut, [INFO] [stdout] 76 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind/cross_panel.rs:119:56 [INFO] [stdout] | [INFO] [stdout] 119 | let center_pos = fetch_center_pos(&window, &g_trans); [INFO] [stdout] | ^^^^^^^^ help: change this to: `g_trans` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/game/phase/preparing.rs:103:25 [INFO] [stdout] | [INFO] [stdout] 103 | / match action { [INFO] [stdout] 104 | | HitAction::Move(info) => { [INFO] [stdout] 105 | | if b.check_hit_window(info.opponent_entity) { [INFO] [stdout] 106 | | let new_v = calcuate_v_after_hit( [INFO] [stdout] ... | [INFO] [stdout] 118 | | _ => (), [INFO] [stdout] 119 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 103 ~ if let HitAction::Move(info) = action { [INFO] [stdout] 104 + if b.check_hit_window(info.opponent_entity) { [INFO] [stdout] 105 + let new_v = calcuate_v_after_hit( [INFO] [stdout] 106 + &info.hit_type, [INFO] [stdout] 107 + &bp, [INFO] [stdout] 108 + &info.opponent_property, [INFO] [stdout] 109 + ); [INFO] [stdout] 110 + bp.pos = bp.pos + new_v; [INFO] [stdout] 111 + bp.v = new_v; [INFO] [stdout] 112 + b.store_hit_entity(info.opponent_entity); [INFO] [stdout] 113 + is_hit = true [INFO] [stdout] 114 + } [INFO] [stdout] 115 + is_no_hit_detected = false; [INFO] [stdout] 116 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/game/phase/preparing.rs:111:37 [INFO] [stdout] | [INFO] [stdout] 111 | ... bp.pos = bp.pos + new_v; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `bp.pos += new_v` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind/cross_panel.rs:248:39 [INFO] [stdout] | [INFO] [stdout] 248 | let center_pos = fetch_center_pos(&window, &g_trans); [INFO] [stdout] | ^^^^^^^ help: change this to: `window` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind/cross_panel.rs:248:48 [INFO] [stdout] | [INFO] [stdout] 248 | let center_pos = fetch_center_pos(&window, &g_trans); [INFO] [stdout] | ^^^^^^^^ help: change this to: `g_trans` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind/cross_panel.rs:324:19 [INFO] [stdout] | [INFO] [stdout] 324 | to_canvas_pos(&window, world_pos) [INFO] [stdout] | ^^^^^^^ help: change this to: `window` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind/sensitivity_demo.rs:51:47 [INFO] [stdout] | [INFO] [stdout] 51 | let center_pos = fetch_center_pos(&window, &g_trans); [INFO] [stdout] | ^^^^^^^ help: change this to: `window` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind/sensitivity_demo.rs:51:56 [INFO] [stdout] | [INFO] [stdout] 51 | let center_pos = fetch_center_pos(&window, &g_trans); [INFO] [stdout] | ^^^^^^^^ help: change this to: `g_trans` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind/sensitivity_demo.rs:102:47 [INFO] [stdout] | [INFO] [stdout] 102 | let center_pos = fetch_center_pos(&window, &g_trans); [INFO] [stdout] | ^^^^^^^ help: change this to: `window` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind/sensitivity_demo.rs:102:56 [INFO] [stdout] | [INFO] [stdout] 102 | let center_pos = fetch_center_pos(&window, &g_trans); [INFO] [stdout] | ^^^^^^^^ help: change this to: `g_trans` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.iter().next()` on an array [INFO] [stdout] --> src/app/element/kind/sensitivity_demo.rs:171:33 [INFO] [stdout] | [INFO] [stdout] 171 | if let Some(motion_event) = motion_events.iter().next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try calling: `motion_events.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_next_slice [INFO] [stdout] = note: `#[warn(clippy::iter_next_slice)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind/sensitivity_demo.rs:216:19 [INFO] [stdout] | [INFO] [stdout] 216 | to_canvas_pos(&window, world_pos) [INFO] [stdout] | ^^^^^^^ help: change this to: `window` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind/slider.rs:76:62 [INFO] [stdout] | [INFO] [stdout] 76 | let (bar_start_pos, bar_end_pos) = fetch_bar_pos(&window, &g_trans); [INFO] [stdout] | ^^^^^^^ help: change this to: `window` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind/slider.rs:76:71 [INFO] [stdout] | [INFO] [stdout] 76 | let (bar_start_pos, bar_end_pos) = fetch_bar_pos(&window, &g_trans); [INFO] [stdout] | ^^^^^^^^ help: change this to: `g_trans` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind/slider.rs:135:62 [INFO] [stdout] | [INFO] [stdout] 135 | let (bar_start_pos, bar_end_pos) = fetch_bar_pos(&window, &g_trans); [INFO] [stdout] | ^^^^^^^ help: change this to: `window` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind/slider.rs:135:71 [INFO] [stdout] | [INFO] [stdout] 135 | let (bar_start_pos, bar_end_pos) = fetch_bar_pos(&window, &g_trans); [INFO] [stdout] | ^^^^^^^^ help: change this to: `g_trans` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind/slider.rs:225:44 [INFO] [stdout] | [INFO] [stdout] 225 | let (bar_start_pos, _) = fetch_bar_pos(&window, &g_trans); [INFO] [stdout] | ^^^^^^^ help: change this to: `window` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind/slider.rs:225:53 [INFO] [stdout] | [INFO] [stdout] 225 | let (bar_start_pos, _) = fetch_bar_pos(&window, &g_trans); [INFO] [stdout] | ^^^^^^^^ help: change this to: `g_trans` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind/slider.rs:269:31 [INFO] [stdout] | [INFO] [stdout] 269 | let g_pos = to_canvas_pos(&window, world_pos); [INFO] [stdout] | ^^^^^^^ help: change this to: `window` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/app/element/kind.rs:148:17 [INFO] [stdout] | [INFO] [stdout] 148 | / if data.target == target_value.target && target_value.bool_value.is_some() { [INFO] [stdout] 149 | | data.bool_value = target_value.bool_value; [INFO] [stdout] 150 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 147 ~ ElementData::Switcher { ref mut data } [INFO] [stdout] 148 ~ if data.target == target_value.target && target_value.bool_value.is_some() => { [INFO] [stdout] 149 | data.bool_value = target_value.bool_value; [INFO] [stdout] 150 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/app/element/kind.rs:157:17 [INFO] [stdout] | [INFO] [stdout] 157 | / if data.target == target_value.target && target_value.u8_value.is_some() { [INFO] [stdout] 158 | | data.u8_value = target_value.u8_value; [INFO] [stdout] 159 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 156 ~ } [INFO] [stdout] 157 ~ if data.target == target_value.target && target_value.u8_value.is_some() => { [INFO] [stdout] 158 | data.u8_value = target_value.u8_value; [INFO] [stdout] 159 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/app/element/kind.rs:167:17 [INFO] [stdout] | [INFO] [stdout] 167 | / if target_value.u8_value.is_some() { [INFO] [stdout] 168 | | if x.target == target_value.target { [INFO] [stdout] 169 | | x.u8_value = target_value.u8_value; [INFO] [stdout] ... | [INFO] [stdout] 174 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 166 ~ } [INFO] [stdout] 167 ~ if target_value.u8_value.is_some() => { [INFO] [stdout] 168 | if x.target == target_value.target { [INFO] [stdout] ... [INFO] [stdout] 173 | } [INFO] [stdout] 174 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/app/element/kind.rs:183:17 [INFO] [stdout] | [INFO] [stdout] 183 | / if target_value.u8_value.is_some() { [INFO] [stdout] 184 | | if default_sensitivity.target == target_value.target { [INFO] [stdout] 185 | | default_sensitivity.u8_value = target_value.u8_value; [INFO] [stdout] ... | [INFO] [stdout] 190 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 182 ~ } [INFO] [stdout] 183 ~ if target_value.u8_value.is_some() => { [INFO] [stdout] 184 | if default_sensitivity.target == target_value.target { [INFO] [stdout] ... [INFO] [stdout] 189 | } [INFO] [stdout] 190 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/app/element/kind.rs:226:9 [INFO] [stdout] | [INFO] [stdout] 226 | let is_ui_locked; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `is_ui_locked` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 226 ~ [INFO] [stdout] 227 | let data = data.as_mut(); [INFO] [stdout] 228 ~ let is_ui_locked = match data { [INFO] [stdout] 229 | ElementData::Slider { [INFO] [stdout] ... [INFO] [stdout] 233 | } => { [INFO] [stdout] 234 ~ is_locked [INFO] [stdout] 235 | } [INFO] [stdout] ... [INFO] [stdout] 241 | } => { [INFO] [stdout] 242 ~ is_locked [INFO] [stdout] 243 | } [INFO] [stdout] ... [INFO] [stdout] 250 | } => { [INFO] [stdout] 251 ~ is_locked [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression assigns a bool literal [INFO] [stdout] --> src/app/element/kind.rs:256:13 [INFO] [stdout] | [INFO] [stdout] 256 | / if ele_entity == entity { [INFO] [stdout] 257 | | *is_ui_locked = true; [INFO] [stdout] 258 | | } else { [INFO] [stdout] 259 | | *is_ui_locked = false; [INFO] [stdout] 260 | | } [INFO] [stdout] | |_____________^ help: you can reduce it to: `*is_ui_locked = ele_entity == entity;` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool_assign [INFO] [stdout] = note: `#[warn(clippy::needless_bool_assign)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (12/7) [INFO] [stdout] --> src/app/element/kind.rs:267:1 [INFO] [stdout] | [INFO] [stdout] 267 | / fn refresh_elements( [INFO] [stdout] 268 | | mut commands: Commands, [INFO] [stdout] 269 | | ele_query: Query<(&GlobalTransform, &Node, Entity, &mut ElementData), With>, [INFO] [stdout] 270 | | bg_query: Query>, [INFO] [stdout] ... | [INFO] [stdout] 279 | | asset_server: Res, [INFO] [stdout] 280 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:297:67 [INFO] [stdout] | [INFO] [stdout] 297 | } => slider::init_display(&mut commands, &window, &g_trans, fg_entity), [INFO] [stdout] | ^^^^^^^^ help: change this to: `g_trans` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:303:72 [INFO] [stdout] | [INFO] [stdout] 303 | } => cross_panel::init_display(&mut commands, &window, &g_trans, fg_entity), [INFO] [stdout] | ^^^^^^^^ help: change this to: `g_trans` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:310:77 [INFO] [stdout] | [INFO] [stdout] 310 | } => sensitivity_demo::init_display(&mut commands, &window, &g_trans, fg_entity), [INFO] [stdout] | ^^^^^^^^ help: change this to: `g_trans` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/app/element/kind.rs:322:21 [INFO] [stdout] | [INFO] [stdout] 322 | / match ele_data { [INFO] [stdout] 323 | | ElementData::Slider { [INFO] [stdout] 324 | | data, [INFO] [stdout] 325 | | is_modifier_on: _, [INFO] [stdout] ... | [INFO] [stdout] 328 | | _ => (), [INFO] [stdout] 329 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 322 ~ if let ElementData::Slider { [INFO] [stdout] 323 + data, [INFO] [stdout] 324 + is_modifier_on: _, [INFO] [stdout] 325 + is_locked: _, [INFO] [stdout] 326 + } = ele_data { slider::update_text(&mut ui_text, &data) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:327:64 [INFO] [stdout] | [INFO] [stdout] 327 | } => slider::update_text(&mut ui_text, &data), [INFO] [stdout] | ^^^^^ help: change this to: `data` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/app/element/kind.rs:334:21 [INFO] [stdout] | [INFO] [stdout] 334 | / match ele_data { [INFO] [stdout] 335 | | ElementData::Switcher { data } => { [INFO] [stdout] 336 | | switcher::update_ui_image(&mut ui_image, &data, &asset_server) [INFO] [stdout] ... | [INFO] [stdout] 339 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 334 ~ if let ElementData::Switcher { data } = ele_data { [INFO] [stdout] 335 + switcher::update_ui_image(&mut ui_image, &data, &asset_server) [INFO] [stdout] 336 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:336:70 [INFO] [stdout] | [INFO] [stdout] 336 | ... switcher::update_ui_image(&mut ui_image, &data, &asset_server) [INFO] [stdout] | ^^^^^ help: change this to: `data` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:350:21 [INFO] [stdout] | [INFO] [stdout] 350 | &g_trans, [INFO] [stdout] | ^^^^^^^^ help: change this to: `g_trans` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:352:21 [INFO] [stdout] | [INFO] [stdout] 352 | &data, [INFO] [stdout] | ^^^^^ help: change this to: `data` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:353:21 [INFO] [stdout] | [INFO] [stdout] 353 | &is_modifier_on, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `is_modifier_on` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:354:21 [INFO] [stdout] | [INFO] [stdout] 354 | &is_locked, [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `is_locked` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:364:21 [INFO] [stdout] | [INFO] [stdout] 364 | &g_trans, [INFO] [stdout] | ^^^^^^^^ help: change this to: `g_trans` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:366:21 [INFO] [stdout] | [INFO] [stdout] 366 | &x, [INFO] [stdout] | ^^ help: change this to: `x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:367:21 [INFO] [stdout] | [INFO] [stdout] 367 | &y, [INFO] [stdout] | ^^ help: change this to: `y` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:368:21 [INFO] [stdout] | [INFO] [stdout] 368 | &is_modifier_on, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `is_modifier_on` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:369:21 [INFO] [stdout] | [INFO] [stdout] 369 | &is_locked, [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `is_locked` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:380:21 [INFO] [stdout] | [INFO] [stdout] 380 | &g_trans, [INFO] [stdout] | ^^^^^^^^ help: change this to: `g_trans` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:382:21 [INFO] [stdout] | [INFO] [stdout] 382 | &ball_pos, [INFO] [stdout] | ^^^^^^^^^ help: change this to: `ball_pos` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:383:21 [INFO] [stdout] | [INFO] [stdout] 383 | &is_modifier_on, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `is_modifier_on` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:384:21 [INFO] [stdout] | [INFO] [stdout] 384 | &is_locked, [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `is_locked` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/app/element/kind.rs:452:37 [INFO] [stdout] | [INFO] [stdout] 452 | Interaction::Hovered => match &mut data.as_mut() { [INFO] [stdout] | _____________________________________^ [INFO] [stdout] 453 | | ElementData::SensitivityDemo { [INFO] [stdout] 454 | | default_sensitivity: _, [INFO] [stdout] 455 | | modified_sensitivity: _, [INFO] [stdout] ... | [INFO] [stdout] 462 | | _ => (), [INFO] [stdout] 463 | | }, [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 452 ~ Interaction::Hovered => if let ElementData::SensitivityDemo { [INFO] [stdout] 453 + default_sensitivity: _, [INFO] [stdout] 454 + modified_sensitivity: _, [INFO] [stdout] 455 + ball_pos: _, [INFO] [stdout] 456 + is_modifier_on: _, [INFO] [stdout] 457 + is_locked: _, [INFO] [stdout] 458 + } = &mut data.as_mut() { [INFO] [stdout] 459 + cursor_icon::set_cursor_icon(&mut cursor_icon_query, &asset_server, "pointer"); [INFO] [stdout] 460 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/app/element/kind.rs:464:34 [INFO] [stdout] | [INFO] [stdout] 464 | Interaction::None => match &mut data.as_mut() { [INFO] [stdout] | __________________________________^ [INFO] [stdout] 465 | | ElementData::SensitivityDemo { [INFO] [stdout] 466 | | default_sensitivity: _, [INFO] [stdout] 467 | | modified_sensitivity: _, [INFO] [stdout] ... | [INFO] [stdout] 474 | | _ => (), [INFO] [stdout] 475 | | }, [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 464 ~ Interaction::None => if let ElementData::SensitivityDemo { [INFO] [stdout] 465 + default_sensitivity: _, [INFO] [stdout] 466 + modified_sensitivity: _, [INFO] [stdout] 467 + ball_pos: _, [INFO] [stdout] 468 + is_modifier_on: _, [INFO] [stdout] 469 + is_locked: _, [INFO] [stdout] 470 + } = &mut data.as_mut() { [INFO] [stdout] 471 + cursor_icon::set_cursor_icon(&mut cursor_icon_query, &asset_server, "default"); [INFO] [stdout] 472 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/app/element/kind.rs:487:13 [INFO] [stdout] | [INFO] [stdout] 487 | let is_ui_locked; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `is_ui_locked` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 487 ~ [INFO] [stdout] 488 | let data = data.as_mut(); [INFO] [stdout] 489 ~ let is_ui_locked = match data { [INFO] [stdout] 490 | ElementData::Slider { [INFO] [stdout] ... [INFO] [stdout] 494 | } => { [INFO] [stdout] 495 ~ is_locked [INFO] [stdout] 496 | } [INFO] [stdout] ... [INFO] [stdout] 502 | } => { [INFO] [stdout] 503 ~ is_locked [INFO] [stdout] 504 | } [INFO] [stdout] ... [INFO] [stdout] 511 | } => { [INFO] [stdout] 512 ~ is_locked [INFO] [stdout] 513 | } [INFO] [stdout] ... [INFO] [stdout] 516 | } [INFO] [stdout] 517 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:583:25 [INFO] [stdout] | [INFO] [stdout] 583 | &is_modifier_on, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `is_modifier_on` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/app/element/kind.rs:641:21 [INFO] [stdout] | [INFO] [stdout] 641 | / if press_action == ElementAction::Confirm { [INFO] [stdout] 642 | | switcher::toggle_switcher(data); [INFO] [stdout] 643 | | event_writer.send(ElementEvent::DataChanged { data: data.clone() }); [INFO] [stdout] 644 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 640 ~ ElementData::Switcher { data } [INFO] [stdout] 641 ~ if press_action == ElementAction::Confirm => { [INFO] [stdout] 642 | switcher::toggle_switcher(data); [INFO] [stdout] 643 | event_writer.send(ElementEvent::DataChanged { data: data.clone() }); [INFO] [stdout] 644 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/app/element/kind.rs:828:8 [INFO] [stdout] | [INFO] [stdout] 828 | if key_actions.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `key_actions.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/app/element/kind.rs:857:13 [INFO] [stdout] | [INFO] [stdout] 857 | / if is_triggered { [INFO] [stdout] 858 | | slider::handle_element_changing( [INFO] [stdout] 859 | | &key_action, [INFO] [stdout] 860 | | data, [INFO] [stdout] ... | [INFO] [stdout] 864 | | ); [INFO] [stdout] 865 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 856 ~ } [INFO] [stdout] 857 ~ if is_triggered => { [INFO] [stdout] 858 | slider::handle_element_changing( [INFO] [stdout] ... [INFO] [stdout] 864 | ); [INFO] [stdout] 865 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/app/element/kind.rs:873:13 [INFO] [stdout] | [INFO] [stdout] 873 | / if is_triggered { [INFO] [stdout] 874 | | cross_panel::handle_element_changing( [INFO] [stdout] 875 | | &key_action, [INFO] [stdout] 876 | | x, [INFO] [stdout] ... | [INFO] [stdout] 881 | | ); [INFO] [stdout] 882 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 872 ~ } [INFO] [stdout] 873 ~ if is_triggered => { [INFO] [stdout] 874 | cross_panel::handle_element_changing( [INFO] [stdout] ... [INFO] [stdout] 881 | ); [INFO] [stdout] 882 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:859:21 [INFO] [stdout] | [INFO] [stdout] 859 | &key_action, [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `key_action` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:875:21 [INFO] [stdout] | [INFO] [stdout] 875 | &key_action, [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `key_action` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/element/kind.rs:892:17 [INFO] [stdout] | [INFO] [stdout] 892 | &key_action, [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `key_action` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/app/settings.rs:62:17 [INFO] [stdout] | [INFO] [stdout] 62 | / if self.bgm_enabled { [INFO] [stdout] 63 | | self.bgm_volume [INFO] [stdout] 64 | | } else { [INFO] [stdout] 65 | | 0 [INFO] [stdout] 66 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 61 ~ "bgm" [INFO] [stdout] 62 ~ if self.bgm_enabled => { [INFO] [stdout] 63 | self.bgm_volume [INFO] [stdout] 64 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/app/settings.rs:69:17 [INFO] [stdout] | [INFO] [stdout] 69 | / if self.se_enabled { [INFO] [stdout] 70 | | self.se_volume [INFO] [stdout] 71 | | } else { [INFO] [stdout] 72 | | 0 [INFO] [stdout] 73 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 68 ~ "se" [INFO] [stdout] 69 ~ if self.se_enabled => { [INFO] [stdout] 70 | self.se_volume [INFO] [stdout] 71 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/startup.rs:23:30 [INFO] [stdout] | [INFO] [stdout] 23 | audio::startup(commands, &asset_server, &settings); [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `asset_server` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/startup.rs:23:45 [INFO] [stdout] | [INFO] [stdout] 23 | audio::startup(commands, &asset_server, &settings); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `settings` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app/startup.rs:29:45 [INFO] [stdout] | [INFO] [stdout] 29 | cursor_icon::init_cursor_icon(commands, &asset_server); [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `asset_server` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/book/page/about.rs:35:17 [INFO] [stdout] | [INFO] [stdout] 35 | &asset_server, [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `asset_server` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/book/page/about.rs:71:59 [INFO] [stdout] | [INFO] [stdout] 71 | ... build_current_tab(parent, &asset_server, "circuitry-light_1.5x"); [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `asset_server` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/book/page/about.rs:75:37 [INFO] [stdout] | [INFO] [stdout] 75 | ... &asset_server, [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `asset_server` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/book/page/about.rs:101:37 [INFO] [stdout] | [INFO] [stdout] 101 | ... &asset_server, [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `asset_server` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/book/page/about.rs:107:37 [INFO] [stdout] | [INFO] [stdout] 107 | ... &asset_server, [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `asset_server` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/book/page/about.rs:131:59 [INFO] [stdout] | [INFO] [stdout] 131 | ... build_current_tab(parent, &asset_server, "paint-brush-light_1.5x"); [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `asset_server` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/book/page/about.rs:135:37 [INFO] [stdout] | [INFO] [stdout] 135 | ... &asset_server, [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `asset_server` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/book/page/settings/audio.rs:192:24 [INFO] [stdout] | [INFO] [stdout] 192 | if let Some(_) = data.bool_value { [INFO] [stdout] | -------^^^^^^^------------------ help: try: `if data.bool_value.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/book/page/settings/audio.rs:232:9 [INFO] [stdout] | [INFO] [stdout] 232 | / match event { [INFO] [stdout] 233 | | NavEvent::NoChanges { from, request } => match *request { [INFO] [stdout] 234 | | NavRequest::Action => { [INFO] [stdout] 235 | | for (entity, action) in action_query.iter() { [INFO] [stdout] ... | [INFO] [stdout] 257 | | _ => (), [INFO] [stdout] 258 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 232 ~ if let NavEvent::NoChanges { from, request } = event { match *request { [INFO] [stdout] 233 + NavRequest::Action => { [INFO] [stdout] 234 + for (entity, action) in action_query.iter() { [INFO] [stdout] 235 + if *from.first() == entity { [INFO] [stdout] 236 + match action { [INFO] [stdout] 237 + ButtonAction::PlaySe => { [INFO] [stdout] 238 + app::audio::play_se( [INFO] [stdout] 239 + "success", [INFO] [stdout] 240 + &mut commands, [INFO] [stdout] 241 + &asset_server, [INFO] [stdout] 242 + settings.as_ref(), [INFO] [stdout] 243 + ); [INFO] [stdout] 244 + } [INFO] [stdout] 245 + ButtonAction::MoveToPage(state) => page_state.set(*state), [INFO] [stdout] 246 + _ => (), [INFO] [stdout] 247 + } [INFO] [stdout] 248 + } [INFO] [stdout] 249 + } [INFO] [stdout] 250 + } [INFO] [stdout] 251 + NavRequest::Unlock => { [INFO] [stdout] 252 + element::apply_element_lock(None, &mut ele_query); [INFO] [stdout] 253 + } [INFO] [stdout] 254 + _ => (), [INFO] [stdout] 255 + } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/book/page/settings/control.rs:283:9 [INFO] [stdout] | [INFO] [stdout] 283 | / match event { [INFO] [stdout] 284 | | NavEvent::NoChanges { from, request } => match *request { [INFO] [stdout] 285 | | NavRequest::Action => { [INFO] [stdout] 286 | | for (entity, action) in action_query.iter() { [INFO] [stdout] ... | [INFO] [stdout] 300 | | _ => (), [INFO] [stdout] 301 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 283 ~ if let NavEvent::NoChanges { from, request } = event { match *request { [INFO] [stdout] 284 + NavRequest::Action => { [INFO] [stdout] 285 + for (entity, action) in action_query.iter() { [INFO] [stdout] 286 + if *from.first() == entity { [INFO] [stdout] 287 + match action { [INFO] [stdout] 288 + ButtonAction::MoveToPage(state) => page_state.set(*state), [INFO] [stdout] 289 + _ => (), [INFO] [stdout] 290 + } [INFO] [stdout] 291 + } [INFO] [stdout] 292 + } [INFO] [stdout] 293 + } [INFO] [stdout] 294 + NavRequest::Unlock => { [INFO] [stdout] 295 + element::apply_element_lock(None, &mut ele_query); [INFO] [stdout] 296 + } [INFO] [stdout] 297 + _ => (), [INFO] [stdout] 298 + } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/book/page/settings/control.rs:288:29 [INFO] [stdout] | [INFO] [stdout] 288 | / ... match action { [INFO] [stdout] 289 | | ... ButtonAction::MoveToPage(state) => page_state.set(*state), [INFO] [stdout] 290 | | ... _ => (), [INFO] [stdout] 291 | | ... } [INFO] [stdout] | |_______________________^ help: try: `if let ButtonAction::MoveToPage(state) = action { page_state.set(*state) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` can be collapsed into the outer `match` [INFO] [stdout] --> src/book/page/settings/display.rs:127:54 [INFO] [stdout] | [INFO] [stdout] 127 | NavEvent::NoChanges { from, request } => match *request { [INFO] [stdout] | ______________________________________________________^ [INFO] [stdout] 128 | | NavRequest::Action => { [INFO] [stdout] 129 | | for (entity, action) in action_query.iter() { [INFO] [stdout] 130 | | if *from.first() == entity { [INFO] [stdout] ... | [INFO] [stdout] 138 | | _ => (), [INFO] [stdout] 139 | | }, [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> src/book/page/settings/display.rs:127:41 [INFO] [stdout] | [INFO] [stdout] 126 | match event { [INFO] [stdout] | ----- use: `event.copied()` [INFO] [stdout] 127 | NavEvent::NoChanges { from, request } => match *request { [INFO] [stdout] | ^^^^^^^ replace this binding [INFO] [stdout] 128 | NavRequest::Action => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ with this pattern, prefixed by `request: ` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/book/page/settings/display.rs:126:9 [INFO] [stdout] | [INFO] [stdout] 126 | / match event { [INFO] [stdout] 127 | | NavEvent::NoChanges { from, request } => match *request { [INFO] [stdout] 128 | | NavRequest::Action => { [INFO] [stdout] 129 | | for (entity, action) in action_query.iter() { [INFO] [stdout] ... | [INFO] [stdout] 140 | | _ => (), [INFO] [stdout] 141 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 126 ~ if let NavEvent::NoChanges { from, request } = event { match *request { [INFO] [stdout] 127 + NavRequest::Action => { [INFO] [stdout] 128 + for (entity, action) in action_query.iter() { [INFO] [stdout] 129 + if *from.first() == entity { [INFO] [stdout] 130 + match action { [INFO] [stdout] 131 + ButtonAction::MoveToPage(state) => page_state.set(*state), [INFO] [stdout] 132 + _ => (), [INFO] [stdout] 133 + } [INFO] [stdout] 134 + } [INFO] [stdout] 135 + } [INFO] [stdout] 136 + } [INFO] [stdout] 137 + _ => (), [INFO] [stdout] 138 + } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/book/page/settings/display.rs:127:54 [INFO] [stdout] | [INFO] [stdout] 127 | NavEvent::NoChanges { from, request } => match *request { [INFO] [stdout] | ______________________________________________________^ [INFO] [stdout] 128 | | NavRequest::Action => { [INFO] [stdout] 129 | | for (entity, action) in action_query.iter() { [INFO] [stdout] 130 | | if *from.first() == entity { [INFO] [stdout] ... | [INFO] [stdout] 138 | | _ => (), [INFO] [stdout] 139 | | }, [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 127 ~ NavEvent::NoChanges { from, request } => if *request == NavRequest::Action { [INFO] [stdout] 128 + for (entity, action) in action_query.iter() { [INFO] [stdout] 129 + if *from.first() == entity { [INFO] [stdout] 130 + match action { [INFO] [stdout] 131 + ButtonAction::MoveToPage(state) => page_state.set(*state), [INFO] [stdout] 132 + _ => (), [INFO] [stdout] 133 + } [INFO] [stdout] 134 + } [INFO] [stdout] 135 + } [INFO] [stdout] 136 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/book/page/settings/display.rs:131:29 [INFO] [stdout] | [INFO] [stdout] 131 | / ... match action { [INFO] [stdout] 132 | | ... ButtonAction::MoveToPage(state) => page_state.set(*state), [INFO] [stdout] 133 | | ... _ => (), [INFO] [stdout] 134 | | ... } [INFO] [stdout] | |_______________________^ help: try: `if let ButtonAction::MoveToPage(state) = action { page_state.set(*state) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/book/page/settings/display.rs:154:24 [INFO] [stdout] | [INFO] [stdout] 154 | if let Some(_) = data.bool_value { [INFO] [stdout] | -------^^^^^^^------------------ help: try: `if data.bool_value.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/book/page/settings.rs:36:17 [INFO] [stdout] | [INFO] [stdout] 36 | &asset_server, [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `asset_server` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/book/page/settings.rs:74:37 [INFO] [stdout] | [INFO] [stdout] 74 | ... &asset_server, [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `asset_server` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/book/page/settings.rs:80:37 [INFO] [stdout] | [INFO] [stdout] 80 | ... &asset_server, [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `asset_server` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/book/page/settings.rs:104:59 [INFO] [stdout] | [INFO] [stdout] 104 | ... build_current_tab(parent, &asset_server, "monitor-light_1.5x"); [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `asset_server` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/book/page/settings.rs:108:37 [INFO] [stdout] | [INFO] [stdout] 108 | ... &asset_server, [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `asset_server` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/book/page/settings.rs:134:37 [INFO] [stdout] | [INFO] [stdout] 134 | ... &asset_server, [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `asset_server` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/book/page/settings.rs:140:37 [INFO] [stdout] | [INFO] [stdout] 140 | ... &asset_server, [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `asset_server` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this match could be replaced by its body itself [INFO] [stdout] --> src/game/anime_end.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | / match tween_event.user_data { [INFO] [stdout] ... | [INFO] [stdout] 13 | | } [INFO] [stdout] | |_________^ help: consider using the match body instead: `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_single_binding [INFO] [stdout] = note: `#[warn(clippy::match_single_binding)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct implementation of `ToString` [INFO] [stdout] --> src/game/ball.rs:43:1 [INFO] [stdout] | [INFO] [stdout] 43 | / impl ToString for BallType { [INFO] [stdout] 44 | | fn to_string(&self) -> String { [INFO] [stdout] 45 | | match self { [INFO] [stdout] 46 | | BallType::Stone => String::from("stone"), [INFO] [stdout] ... | [INFO] [stdout] 51 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: prefer implementing `Display` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_trait_impl [INFO] [stdout] = note: `#[warn(clippy::to_string_trait_impl)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct implementation of `ToString` [INFO] [stdout] --> src/game/ball.rs:71:1 [INFO] [stdout] | [INFO] [stdout] 71 | / impl ToString for BallControlType { [INFO] [stdout] 72 | | fn to_string(&self) -> String { [INFO] [stdout] 73 | | match self { [INFO] [stdout] 74 | | BallControlType::Angle => String::from("angle"), [INFO] [stdout] ... | [INFO] [stdout] 80 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: prefer implementing `Display` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_trait_impl [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/ball.rs:301:17 [INFO] [stdout] | [INFO] [stdout] 301 | return false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 301 - return false; [INFO] [stdout] 301 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/ball.rs:304:17 [INFO] [stdout] | [INFO] [stdout] 304 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 304 - return true; [INFO] [stdout] 304 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/ball.rs:307:13 [INFO] [stdout] | [INFO] [stdout] 307 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 307 - return true; [INFO] [stdout] 307 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `self.control_params.x` after checking its variant with `is_some` [INFO] [stdout] --> src/game/ball.rs:368:21 [INFO] [stdout] | [INFO] [stdout] 362 | if self.control_params.x.is_some() && self.control_params.x.is_some() { [INFO] [stdout] | ------------------------------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 368 | self.control_params.x.unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/ball.rs:473:5 [INFO] [stdout] | [INFO] [stdout] 473 | return path_builder; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 473 - return path_builder; [INFO] [stdout] 473 + path_builder [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/ball_interaction.rs:78:13 [INFO] [stdout] | [INFO] [stdout] 78 | return HitType::Inside; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 78 - return HitType::Inside; [INFO] [stdout] 78 + HitType::Inside [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/ball_interaction.rs:80:13 [INFO] [stdout] | [INFO] [stdout] 80 | return HitType::None; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 80 - return HitType::None; [INFO] [stdout] 80 + HitType::None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/ball_interaction.rs:84:13 [INFO] [stdout] | [INFO] [stdout] 84 | return HitType::Inside; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 84 - return HitType::Inside; [INFO] [stdout] 84 + HitType::Inside [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/game/ball_interaction.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | return HitType::None; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 86 - return HitType::None; [INFO] [stdout] 86 + HitType::None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/game/field.rs:250:13 [INFO] [stdout] | [INFO] [stdout] 250 | lv_y = lv_y - LV_CONTROL_GAP * 6.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `lv_y -= LV_CONTROL_GAP * 6.0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&level_code).is_none()` [INFO] [stdout] --> src/game/leaderboard/model.rs:32:27 [INFO] [stdout] | [INFO] [stdout] 32 | if self.level_map.get(&level_code).is_none() { [INFO] [stdout] | ---------------^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!self.level_map.contains_key(&level_code)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] = note: `#[warn(clippy::unnecessary_get_then_check)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/game/phase/preparing.rs:53:13 [INFO] [stdout] | [INFO] [stdout] 53 | / Ball::create_sprite( [INFO] [stdout] 54 | | ball_config.ball_type.clone(), [INFO] [stdout] 55 | | parent, [INFO] [stdout] 56 | | {}, [INFO] [stdout] 57 | | ball_config.property.clone(), [INFO] [stdout] 58 | | ball_config.control_params.clone(), [INFO] [stdout] 59 | | ); [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] = note: `#[warn(clippy::unit_arg)]` on by default [INFO] [stdout] help: use a unit literal instead [INFO] [stdout] | [INFO] [stdout] 56 - {}, [INFO] [stdout] 56 + (), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (10/7) [INFO] [stdout] --> src/game/phase/preparing.rs:64:1 [INFO] [stdout] | [INFO] [stdout] 64 | / fn state_update( [INFO] [stdout] 65 | | mut commands: Commands, [INFO] [stdout] 66 | | mut ball_query: Query<(Entity, &mut Ball, &mut Transform), With>, [INFO] [stdout] 67 | | mut ae_query: Query<(Entity, &mut anime_effect::AnimeEffect), With>, [INFO] [stdout] ... | [INFO] [stdout] 75 | | mut game_status: ResMut, [INFO] [stdout] 76 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/game/phase/preparing.rs:103:25 [INFO] [stdout] | [INFO] [stdout] 103 | / match action { [INFO] [stdout] 104 | | HitAction::Move(info) => { [INFO] [stdout] 105 | | if b.check_hit_window(info.opponent_entity) { [INFO] [stdout] 106 | | let new_v = calcuate_v_after_hit( [INFO] [stdout] ... | [INFO] [stdout] 118 | | _ => (), [INFO] [stdout] 119 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 103 ~ if let HitAction::Move(info) = action { [INFO] [stdout] 104 + if b.check_hit_window(info.opponent_entity) { [INFO] [stdout] 105 + let new_v = calcuate_v_after_hit( [INFO] [stdout] 106 + &info.hit_type, [INFO] [stdout] 107 + &bp, [INFO] [stdout] 108 + &info.opponent_property, [INFO] [stdout] 109 + ); [INFO] [stdout] 110 + bp.pos = bp.pos + new_v; [INFO] [stdout] 111 + bp.v = new_v; [INFO] [stdout] 112 + b.store_hit_entity(info.opponent_entity); [INFO] [stdout] 113 + is_hit = true [INFO] [stdout] 114 + } [INFO] [stdout] 115 + is_no_hit_detected = false; [INFO] [stdout] 116 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/game/phase/preparing.rs:111:37 [INFO] [stdout] | [INFO] [stdout] 111 | ... bp.pos = bp.pos + new_v; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `bp.pos += new_v` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [optimized + debuginfo] target(s) in 3m 56s [INFO] running `Command { std: "docker" "inspect" "d642fc213696946a58aef511eb665d6cc24736524d9939b77b6d09a01e6b767c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d642fc213696946a58aef511eb665d6cc24736524d9939b77b6d09a01e6b767c", kill_on_drop: false }` [INFO] [stdout] d642fc213696946a58aef511eb665d6cc24736524d9939b77b6d09a01e6b767c