Skip to content

[Bug]: stale allow(unused_mut) on the main window builder hides future regressions #2582

Description

@1688mengdie

Summary

The main window creation path in the desktop crate carries an #[allow(unused_mut)] attribute that can never fire, and it silently suppresses the compiler check for that binding.

src/apps/desktop/src/appearance.rs:578 marks the main window builder binding with #[allow(unused_mut)]. Removing the attribute changes nothing: the binding's mutability is genuinely consumed on every platform, so the suppression has no warning to silence — it is permanently inert.

The binding is unconditionally reassigned via builder.disable_drag_drop_handler() (appearance.rs:610) on all platforms, with further reassignments in the #[cfg(target_os = "macos")] and #[cfg(target_os = "windows")] blocks (:617-629). Because the mut requirement is satisfied unconditionally, the allow attribute can never trigger — but as long as it sits on the binding, any future regression that actually removes all mutating uses would be silently swallowed instead of reported.

Area

Desktop app

Reproduction or evidence

  1. Delete the #[allow(unused_mut)] line at appearance.rs:578 on main.
  2. Run cargo check --release -p bitfun-desktop.
  3. Observe: no new warning appears for appearance.rs — confirming the allow was suppressing nothing.

A deletion-only fix (remove the attribute) is ready to submit; it restores the lint's coverage for this binding at zero behavior cost. PR to follow referencing this issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions