The Wire · Showcase
CLIPPY'S --EXPLAIN IS BROKEN ON BETA
By RepoJournal · Filed · About Rust
Every lint lookup on beta and nightly reports unknown lint, and it took a from-scratch rewrite to see why.
Clippy's --explain command has been silently broken on beta and nightly: the argument gets lowercased but Lint::name is uppercase, so every lookup fails. The fix restores a line dropped in the config parsing rewrite, and stable 0.1.98 is unaffected because it predates the break [1]. The same repair ships with a regression test that finally covers this untested path [2]. Meanwhile, redundant_clone was missing every clone() inside a loop body because visit_local_usage returned None on cyclic blocks; that hole is now closed in a PR that fixes rust-lang/rust-clippy#16096 [3]. Over on rust-lang/rust, a wasm32-unknown-unknown bug leaves cfg(target_has_threads) unset when -Ctarget-feature=+atomics is passed, and this PR fixes the session initialization ordering [4]. Another fix stops UEFI ExitStatus::code() from silently truncating error codes. As the UEFI patch notes, "the previous `as i32` cast silently dropped the upper bits, losing all error information" [5]. The Rust project also announced its first batch of Maintainers in Residence. The blog post author wrote, "I ended up writing a small Python script that takes their description and generates HTML with the MiR descriptions," and asked the new MiRs to double-check their bios [6]. With 87 commits and 24 PRs across these repos, the notable changes are here: a Rustc merge that allows -Ldependency search paths for panic runtimes, a step toward the build-std=always RFC [7]. The crates.io-index updates are routine maintenance and can be ignored unless you depend on those crates . The Zola debug-build change cuts blog publish latency, which the author flagged after waiting over five minutes for a rebuild almost missed a synchronized deadline [8].
One email a day. Unsubscribe in one click.
Keep up with Rust in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.
One email a day. Unsubscribe in one click. Read a past issue →
Action items
- → Update to a clippy version that includes the --explain fix once it lands on beta/nightly rust-lang/rust-clippy [immediate]
- → Watch the wasm32-unknown-unknown cfg fix in rust-lang/rust; it will affect your build if you use -Ctarget-feature=+atomics rust-lang/rust [plan]
- → Review the redundant_clone fix in clippy; it will surface new lints in loops, so you'll want to silence them deliberately rust-lang/rust-clippy [plan]
- → Ignore the crates.io-index updates unless you depend on saorsa-gossip-rendezvous, caixa-helm, or caixa-flux rust-lang/crates.io-index [monitor]
References
- [1] Fix `--explain` lint lookup being case-mismatched (#17632) rust-lang/rust-clippy
- [2] fix: restore uppercase lint lookup in `--explain` rust-lang/rust-clippy
- [3] fix(redundant_clone): Make `visit_local_usage` analyse loop bodies instead of giving up on them ↗ rust-lang/rust-clippy
- [4] Fix the wasm32-unknown-unknown target feature/cfg bug ↗ rust-lang/rust
- [5] std::process: fix UEFI ExitStatus::code() silent truncation of error codes rust-lang/rust
- [6] Add `Announcing our first Maintainers in Residence` blog post ↗ rust-lang/blog.rust-lang.org
- [7] Auto merge of #160007 - Bryanskiy:load-injected, r=petrochenkov rust-lang/rust
- [8] Build Zola in debug mode ↗ rust-lang/blog.rust-lang.org