for large assignment lint, use the correct span for checking for duplicate lints

This commit is contained in:
Jonathan Gruner 2025-04-08 21:22:20 +02:00
parent df6254f7a2
commit 6d71fc15d8

View file

@ -148,11 +148,7 @@ impl<'tcx> MoveCheckVisitor<'tcx> {
span: Span, span: Span,
) { ) {
let source_info = self.body.source_info(location); let source_info = self.body.source_info(location);
for reported_span in &self.move_size_spans {
if reported_span.overlaps(span) {
return;
}
}
let lint_root = source_info.scope.lint_root(&self.body.source_scopes); let lint_root = source_info.scope.lint_root(&self.body.source_scopes);
let Some(lint_root) = lint_root else { let Some(lint_root) = lint_root else {
// This happens when the issue is in a function from a foreign crate that // This happens when the issue is in a function from a foreign crate that
@ -172,6 +168,12 @@ impl<'tcx> MoveCheckVisitor<'tcx> {
.map(|(_, call_site)| call_site) .map(|(_, call_site)| call_site)
.unwrap_or(span); .unwrap_or(span);
for previously_reported_span in &self.move_size_spans {
if previously_reported_span.overlaps(reported_span) {
return;
}
}
self.tcx.emit_node_span_lint( self.tcx.emit_node_span_lint(
LARGE_ASSIGNMENTS, LARGE_ASSIGNMENTS,
lint_root, lint_root,
@ -182,6 +184,7 @@ impl<'tcx> MoveCheckVisitor<'tcx> {
limit: limit as u64, limit: limit as u64,
}, },
); );
self.move_size_spans.push(reported_span); self.move_size_spans.push(reported_span);
} }
} }