mirror of
https://github.com/rust-lang/rust.git
synced 2025-02-16 17:03:35 +00:00
rustc_lint: make let-underscore-lock
translatable
This commit is contained in:
parent
66e5852c3b
commit
c9346a1f05
@ -518,8 +518,8 @@ lint_non_binding_let_multi_suggestion =
|
||||
lint_non_binding_let_on_drop_type =
|
||||
non-binding let on a type that implements `Drop`
|
||||
|
||||
lint_non_binding_let_on_sync_lock =
|
||||
non-binding let on a synchronization lock
|
||||
lint_non_binding_let_on_sync_lock = non-binding let on a synchronization lock
|
||||
.label = this lock is not assigned to a binding and is immediately dropped
|
||||
|
||||
lint_non_binding_let_suggestion =
|
||||
consider binding to an unused variable to avoid immediately dropping the value
|
||||
|
@ -104,7 +104,6 @@ const SYNC_GUARD_SYMBOLS: [Symbol; 3] = [
|
||||
];
|
||||
|
||||
impl<'tcx> LateLintPass<'tcx> for LetUnderscore {
|
||||
#[allow(rustc::untranslatable_diagnostic)] // FIXME: make this translatable
|
||||
fn check_local(&mut self, cx: &LateContext<'_>, local: &hir::LetStmt<'_>) {
|
||||
if matches!(local.source, rustc_hir::LocalSource::AsyncFn) {
|
||||
return;
|
||||
@ -156,12 +155,12 @@ impl<'tcx> LateLintPass<'tcx> for LetUnderscore {
|
||||
is_assign_desugar: matches!(local.source, rustc_hir::LocalSource::AssignDesugar(_)),
|
||||
};
|
||||
if is_sync_lock {
|
||||
let mut span = MultiSpan::from_span(pat.span);
|
||||
span.push_span_label(
|
||||
pat.span,
|
||||
"this lock is not assigned to a binding and is immediately dropped".to_string(),
|
||||
let span = MultiSpan::from_span(pat.span);
|
||||
cx.emit_span_lint(
|
||||
LET_UNDERSCORE_LOCK,
|
||||
span,
|
||||
NonBindingLet::SyncLock { sub, pat: pat.span },
|
||||
);
|
||||
cx.emit_span_lint(LET_UNDERSCORE_LOCK, span, NonBindingLet::SyncLock { sub });
|
||||
// Only emit let_underscore_drop for top-level `_` patterns.
|
||||
} else if can_use_init.is_some() {
|
||||
cx.emit_span_lint(LET_UNDERSCORE_DROP, local.span, NonBindingLet::DropType { sub });
|
||||
|
@ -957,6 +957,8 @@ pub struct BadOptAccessDiag<'a> {
|
||||
pub enum NonBindingLet {
|
||||
#[diag(lint_non_binding_let_on_sync_lock)]
|
||||
SyncLock {
|
||||
#[label]
|
||||
pat: Span,
|
||||
#[subdiagnostic]
|
||||
sub: NonBindingLetSub,
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user