@@ -49,6 +49,8 @@ impl<'tcx> LateLintPass<'tcx> for ForLoopsOverFallibles {
49
49
fn check_expr ( & mut self , cx : & LateContext < ' tcx > , expr : & ' tcx Expr < ' _ > ) {
50
50
let Some ( ( pat, arg) ) = extract_for_loop ( expr) else { return } ;
51
51
52
+ let arg_span = arg. span . source_callsite ( ) ;
53
+
52
54
let ty = cx. typeck_results ( ) . expr_ty ( arg) ;
53
55
54
56
let ( adt, args, ref_mutability) = match ty. kind ( ) {
@@ -78,27 +80,27 @@ impl<'tcx> LateLintPass<'tcx> for ForLoopsOverFallibles {
78
80
&& let Ok ( recv_snip) = cx. sess ( ) . source_map ( ) . span_to_snippet ( recv. span )
79
81
{
80
82
ForLoopsOverFalliblesLoopSub :: RemoveNext {
81
- suggestion : recv. span . between ( arg . span . shrink_to_hi ( ) ) ,
83
+ suggestion : recv. span . between ( arg_span . shrink_to_hi ( ) ) ,
82
84
recv_snip,
83
85
}
84
86
} else {
85
87
ForLoopsOverFalliblesLoopSub :: UseWhileLet {
86
88
start_span : expr. span . with_hi ( pat. span . lo ( ) ) ,
87
- end_span : pat. span . between ( arg . span ) ,
89
+ end_span : pat. span . between ( arg_span ) ,
88
90
var,
89
91
}
90
92
} ;
91
93
let question_mark = suggest_question_mark ( cx, adt, args, expr. span )
92
- . then ( || ForLoopsOverFalliblesQuestionMark { suggestion : arg . span . shrink_to_hi ( ) } ) ;
94
+ . then ( || ForLoopsOverFalliblesQuestionMark { suggestion : arg_span . shrink_to_hi ( ) } ) ;
93
95
let suggestion = ForLoopsOverFalliblesSuggestion {
94
96
var,
95
97
start_span : expr. span . with_hi ( pat. span . lo ( ) ) ,
96
- end_span : pat. span . between ( arg . span ) ,
98
+ end_span : pat. span . between ( arg_span ) ,
97
99
} ;
98
100
99
101
cx. emit_span_lint (
100
102
FOR_LOOPS_OVER_FALLIBLES ,
101
- arg . span ,
103
+ arg_span ,
102
104
ForLoopsOverFalliblesDiag { article, ref_prefix, ty, sub, question_mark, suggestion } ,
103
105
) ;
104
106
}
0 commit comments