`let_underscore_lock` suggestion crosses macro boundaries
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
- #165661 de @2Zest — cerrado sin fusionar
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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
- Lenguaje dominante
- Rust
- Estrellas
- 121k
- Forks
- 17.3k
- Merge medio
- 2 d 21 h
- PR fusionados (30 d)
- 531
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de rust-lang/rust
-
A-run-make relnotes relnotes-needs-review relnotes-tracking-issue T-lang T-libs
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
relnotes relnotes-needs-review relnotes-tracking-issue T-compiler T-libs
Dificultad 1/5 Menos de una hora Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
A-LLVM O-Arm O-UEFI O-x86_64 relnotes relnotes-needs-review relnotes-tracking-issue T-compiler
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
rust-lang/rust#165504 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
relnotes relnotes-tracking-issue T-libs
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
unclear wording in vec macroPosiblemente ocupada @Suhird la tomó hace 5 días. AbiertoA-docs A-slice-vec T-libs
Dificultad 1/5 1-3 horas Aptitud para principiantes 70/100
rust-lang/rust#165360 · 6 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
Todos los issues de rust-lang/rust
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 69/100
bytecodealliance/rustix#1736 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
longbridge/gpui-kit#3871 ·
Los mantenedores suelen responder en 1 día
-
area:models enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
Los mantenedores suelen responder en 1 día
-
fix v1 repository metadataAbiertogood first issue help wanted
Dificultad 1/5 Menos de una hora Aptitud para principiantes 84/100
servo/rust-smallvec#864 ·