@@ -144,8 +144,8 @@ impl<'a, 'tcx> Visitor<'a, 'tcx> for MatchVisitor<'a, '_, 'tcx> {
144
144
ExprKind :: Let { box ref pat, expr } => {
145
145
self . check_let ( pat, expr, self . let_source , ex. span ) ;
146
146
}
147
- ExprKind :: LogicalOp { op : LogicalOp :: And , .. } => {
148
- self . check_let_chain ( ex , self . let_source ) ;
147
+ ExprKind :: LogicalOp { op : LogicalOp :: And , lhs , rhs } => {
148
+ self . check_let_chain ( self . let_source , ex . span , lhs , rhs ) ;
149
149
}
150
150
_ => { }
151
151
} ;
@@ -296,13 +296,17 @@ impl<'p, 'tcx> MatchVisitor<'_, 'p, 'tcx> {
296
296
}
297
297
298
298
#[ instrument( level = "trace" , skip( self ) ) ]
299
- fn check_let_chain ( & mut self , top_expr : & Expr < ' tcx > , let_source : LetSource ) {
299
+ fn check_let_chain (
300
+ & mut self ,
301
+ let_source : LetSource ,
302
+ top_expr_span : Span ,
303
+ mut lhs : ExprId ,
304
+ rhs : ExprId ,
305
+ ) {
300
306
if let LetSource :: None = let_source {
301
307
return ;
302
308
}
303
309
304
- let ExprKind :: LogicalOp { op : LogicalOp :: And , mut lhs, rhs } = top_expr. kind else { bug ! ( ) } ;
305
-
306
310
// Lint level enclosing the next `lhs`.
307
311
let mut cur_lint_level = self . lint_level ;
308
312
@@ -367,7 +371,7 @@ impl<'p, 'tcx> MatchVisitor<'_, 'p, 'tcx> {
367
371
self . lint_level ,
368
372
let_source,
369
373
chain_refutabilities. len ( ) ,
370
- top_expr . span ,
374
+ top_expr_span ,
371
375
) ;
372
376
return ;
373
377
}
0 commit comments