From 6573b6259b97198850ad1c37924641bb48f9c65b Mon Sep 17 00:00:00 2001 From: Kornel Date: Fri, 7 Feb 2025 20:30:29 +0000 Subject: [PATCH 1/3] super_local_decl should visit source_info before copying it Visiting source_info first makes it consistent with other visitors --- compiler/rustc_middle/src/mir/visit.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/compiler/rustc_middle/src/mir/visit.rs b/compiler/rustc_middle/src/mir/visit.rs index 8d04bbb95bd9f..24e73a506be85 100644 --- a/compiler/rustc_middle/src/mir/visit.rs +++ b/compiler/rustc_middle/src/mir/visit.rs @@ -853,6 +853,8 @@ macro_rules! make_mir_visitor { local_info: _, } = local_decl; + self.visit_source_info(source_info); + self.visit_ty($(& $mutability)? *ty, TyContext::LocalDecl { local, source_info: *source_info, @@ -862,7 +864,6 @@ macro_rules! make_mir_visitor { self.visit_user_type_projection(user_ty); } } - self.visit_source_info(source_info); } fn super_var_debug_info( From 699567058fe0dbc605fdb641ea6e0759d7e874f9 Mon Sep 17 00:00:00 2001 From: Kornel Date: Fri, 7 Feb 2025 20:58:48 +0000 Subject: [PATCH 2/3] Visit SourceInfo of all Terminators --- compiler/rustc_mir_transform/src/inline.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/compiler/rustc_mir_transform/src/inline.rs b/compiler/rustc_mir_transform/src/inline.rs index f8b0688dfdcc0..ca8c684ab03d8 100644 --- a/compiler/rustc_mir_transform/src/inline.rs +++ b/compiler/rustc_mir_transform/src/inline.rs @@ -1254,6 +1254,8 @@ impl<'tcx> MutVisitor<'tcx> for Integrator<'_, 'tcx> { // replaced down below anyways). if !matches!(terminator.kind, TerminatorKind::Return) { self.super_terminator(terminator, loc); + } else { + self.visit_source_info(&mut terminator.source_info); } match terminator.kind { From da4cf03f827d5f42f91c8076f68f21ccc4414d88 Mon Sep 17 00:00:00 2001 From: Kornel Date: Fri, 7 Feb 2025 23:41:31 +0000 Subject: [PATCH 3/3] Visit fn_span of calls in MIR Visitor --- compiler/rustc_middle/src/mir/visit.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/compiler/rustc_middle/src/mir/visit.rs b/compiler/rustc_middle/src/mir/visit.rs index 24e73a506be85..8ad88fbda7c89 100644 --- a/compiler/rustc_middle/src/mir/visit.rs +++ b/compiler/rustc_middle/src/mir/visit.rs @@ -527,8 +527,9 @@ macro_rules! make_mir_visitor { target: _, unwind: _, call_source: _, - fn_span: _ + fn_span, } => { + self.visit_span($(& $mutability)? *fn_span); self.visit_operand(func, location); for arg in args { self.visit_operand(&$($mutability)? arg.node, location); @@ -543,8 +544,9 @@ macro_rules! make_mir_visitor { TerminatorKind::TailCall { func, args, - fn_span: _, + fn_span, } => { + self.visit_span($(& $mutability)? *fn_span); self.visit_operand(func, location); for arg in args { self.visit_operand(&$($mutability)? arg.node, location);