Skip to content

Commit b01c541

Browse files
committed
use var_debug_info for arg_name
1 parent ab7b29d commit b01c541

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

compiler/rustc_borrowck/src/diagnostics/conflict_errors.rs

+10-9
Original file line numberDiff line numberDiff line change
@@ -524,20 +524,21 @@ impl<'infcx, 'tcx> MirBorrowckCtxt<'_, '_, 'infcx, 'tcx> {
524524
body: &hir::Expr<'_>,
525525
span: Option<Span>,
526526
move_span: Span,
527-
err: &mut Diag<'tcx>,
527+
err: &mut Diag<'infcx>,
528528
) {
529-
let sm = self.infcx.tcx.sess.source_map();
530-
let arg_code = if let Some(span) = span
531-
&& let Ok(code) = sm.span_to_snippet(span)
532-
{
533-
code
529+
let Some(span) = span else {
530+
return;
531+
};
532+
let var_info = self.body.var_debug_info.iter().find(|info| info.source_info.span == span);
533+
let arg_name = if let Some(var_info) = var_info {
534+
var_info.name.to_string()
534535
} else {
535536
return;
536537
};
537538
struct MatchArgFinder {
538539
expr_span: Span,
539540
match_arg_span: Option<Span>,
540-
arg_code: String,
541+
arg_name: String,
541542
}
542543
impl Visitor<'_> for MatchArgFinder {
543544
fn visit_expr(&mut self, e: &hir::Expr<'_>) {
@@ -547,7 +548,7 @@ impl<'infcx, 'tcx> MirBorrowckCtxt<'_, '_, 'infcx, 'tcx> {
547548
_,
548549
path @ Path { segments: [seg], .. },
549550
)) = &expr.kind
550-
&& seg.ident.name.as_str() == &self.arg_code
551+
&& seg.ident.name.as_str() == &self.arg_name
551552
&& self.expr_span.source_callsite().contains(expr.span)
552553
{
553554
self.match_arg_span = Some(path.span);
@@ -556,7 +557,7 @@ impl<'infcx, 'tcx> MirBorrowckCtxt<'_, '_, 'infcx, 'tcx> {
556557
}
557558
}
558559

559-
let mut finder = MatchArgFinder { expr_span: move_span, match_arg_span: None, arg_code };
560+
let mut finder = MatchArgFinder { expr_span: move_span, match_arg_span: None, arg_name };
560561
finder.visit_expr(body);
561562
if let Some(macro_arg_span) = finder.match_arg_span {
562563
err.span_suggestion_verbose(

0 commit comments

Comments
 (0)