`let_underscore_lock` suggestion crosses macro boundaries
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
- #165661 di @2Zest — chiusa senza merge
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
Direzione di ricerca
Start by tracing the let_underscore_lock lint’s diagnostic and suggestion code, then inspect compiler UI tests for suggestions involving macro expansions. Reproduce the issue with the provided dbg!(m.lock().unwrap()) example and add a regression test showing the suggestion stays at the call site. Done means the output suggests drop(dbg!(m.lock().unwrap())); without pointing into the standard library macro.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Code
pub fn f(m: std::sync::Mutex<String>) {
let _ = dbg!(m.lock().unwrap());
}
Current output
error: non-binding let on a synchronization lock
--> src/lib.rs:2:9
|
2 | let _ = dbg!(m.lock().unwrap());
| ^ this lock is not assigned to a binding and is immediately dropped
|
= note: `#[deny(let_underscore_lock)]` (part of `#[deny(let_underscore)]`) on by default
help: consider binding to an unused variable to avoid immediately dropping the value
|
2 | let _unused = dbg!(m.lock().unwrap());
| ++++++
help: consider immediately dropping the value
--> /playground/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/macros.rs:369:9
|
369 - match $val {
370 - tmp => {
371 - $crate::eprintln!("[{}:{}:{}] {} = {:#?}",
372 - $crate::file!(),
373 - $crate::line!(),
374 - $crate::column!(),
375 - $crate::stringify!($val),
376 - // The `&T: Debug` check happens here (not in the format literal desugaring)
377 - // to avoid format literal related messages and suggestions.
378 - &&tmp as &dyn $crate::fmt::Debug,
379 - );
380 - tmp
381 - }
382 - }
369 + drop()
Desired output
drop(dbg!(m.lock().unwrap()));
Rationale and extra context
Other cases
Rust Version
Build using the Nightly version: 1.102.0-nightly
(2026-11-07 f5cedb83a788ea958109)
Anything else?
No response
- Lingua principale
- Rust
- Stelle
- 121k
- Fork
- 17.3k
- Merge medio
- 2g 21h
- PR unite (30g)
- 531
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di rust-lang/rust
-
A-run-make relnotes relnotes-needs-review relnotes-tracking-issue T-lang T-libs
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
relnotes relnotes-needs-review relnotes-tracking-issue T-compiler T-libs
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
A-LLVM O-Arm O-UEFI O-x86_64 relnotes relnotes-needs-review relnotes-tracking-issue T-compiler
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
rust-lang/rust#165504 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
relnotes relnotes-tracking-issue T-libs
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
unclear wording in vec macroForse già presa @Suhird l’ha presa 5 giorni fa. ApertaA-docs A-slice-vec T-libs
Difficoltà 1/5 1-3 ore Idoneità per principianti 70/100
rust-lang/rust#165360 · 6 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di rust-lang/rust
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 69/100
bytecodealliance/rustix#1736 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
longbridge/gpui-kit#3871 ·
I maintainer di solito rispondono entro 1 giorno
-
area:models enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
I maintainer di solito rispondono entro 1 giorno
-
fix v1 repository metadataApertagood first issue help wanted
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 84/100
servo/rust-smallvec#864 ·