@@ -1512,6 +1512,10 @@ mod redundant_pattern_match {
1512
1512
}
1513
1513
}
1514
1514
1515
+ let result_expr = match & op. kind {
1516
+ ExprKind :: AddrOf ( _, _, borrowed) => borrowed,
1517
+ _ => op,
1518
+ } ;
1515
1519
span_lint_and_then (
1516
1520
cx,
1517
1521
REDUNDANT_PATTERN_MATCHING ,
@@ -1524,7 +1528,7 @@ mod redundant_pattern_match {
1524
1528
1525
1529
// while let ... = ... { ... }
1526
1530
// ^^^
1527
- let op_span = op . span . source_callsite ( ) ;
1531
+ let op_span = result_expr . span . source_callsite ( ) ;
1528
1532
1529
1533
// while let ... = ... { ... }
1530
1534
// ^^^^^^^^^^^^^^^^^^^
@@ -1589,17 +1593,21 @@ mod redundant_pattern_match {
1589
1593
} ;
1590
1594
1591
1595
if let Some ( good_method) = found_good_method {
1596
+ let span = expr. span . to ( op. span ) ;
1597
+ let result_expr = match & op. kind {
1598
+ ExprKind :: AddrOf ( _, _, borrowed) => borrowed,
1599
+ _ => op,
1600
+ } ;
1592
1601
span_lint_and_then (
1593
1602
cx,
1594
1603
REDUNDANT_PATTERN_MATCHING ,
1595
1604
expr. span ,
1596
1605
& format ! ( "redundant pattern matching, consider using `{}`" , good_method) ,
1597
1606
|diag| {
1598
- let span = expr. span . to ( op. span ) ;
1599
1607
diag. span_suggestion (
1600
1608
span,
1601
1609
"try this" ,
1602
- format ! ( "{}.{}" , snippet( cx, op . span, "_" ) , good_method) ,
1610
+ format ! ( "{}.{}" , snippet( cx, result_expr . span, "_" ) , good_method) ,
1603
1611
Applicability :: MaybeIncorrect , // snippet
1604
1612
) ;
1605
1613
} ,
0 commit comments