@@ -435,44 +435,39 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
435
435
/// opt.map(|param| { takes_ref(param) });
436
436
/// ```
437
437
fn can_use_as_ref ( & self , expr : & hir:: Expr < ' _ > ) -> Option < ( Span , & ' static str , String ) > {
438
- let path = match expr. kind {
439
- hir:: ExprKind :: Path ( hir:: QPath :: Resolved ( _, ref path) ) => path,
440
- _ => return None ,
438
+ let hir:: ExprKind :: Path ( hir:: QPath :: Resolved ( _, ref path) ) = expr. kind else {
439
+ return None ;
441
440
} ;
442
441
443
- let local_id = match path. res {
444
- hir:: def:: Res :: Local ( id) => id,
445
- _ => return None ,
442
+ let hir:: def:: Res :: Local ( local_id) = path. res else {
443
+ return None ;
446
444
} ;
447
445
448
446
let local_parent = self . tcx . hir ( ) . get_parent_node ( local_id) ;
449
- let param_hir_id = match self . tcx . hir ( ) . find ( local_parent) {
450
- Some ( Node :: Param ( hir:: Param { hir_id, .. } ) ) => hir_id,
451
- _ => return None ,
447
+ let Some ( Node :: Param ( hir:: Param { hir_id : param_hir_id, .. } ) ) = self . tcx . hir ( ) . find ( local_parent) else {
448
+ return None ;
452
449
} ;
453
450
454
451
let param_parent = self . tcx . hir ( ) . get_parent_node ( * param_hir_id) ;
455
- let ( expr_hir_id, closure_fn_decl) = match self . tcx . hir ( ) . find ( param_parent) {
456
- Some ( Node :: Expr ( hir:: Expr {
457
- hir_id,
458
- kind : hir:: ExprKind :: Closure ( _, decl, ..) ,
459
- ..
460
- } ) ) => ( hir_id, decl) ,
461
- _ => return None ,
452
+ let Some ( Node :: Expr ( hir:: Expr {
453
+ hir_id : expr_hir_id,
454
+ kind : hir:: ExprKind :: Closure ( _, closure_fn_decl, ..) ,
455
+ ..
456
+ } ) ) = self . tcx . hir ( ) . find ( param_parent) else {
457
+ return None ;
462
458
} ;
463
459
464
460
let expr_parent = self . tcx . hir ( ) . get_parent_node ( * expr_hir_id) ;
465
461
let hir = self . tcx . hir ( ) . find ( expr_parent) ;
466
462
let closure_params_len = closure_fn_decl. inputs . len ( ) ;
467
- let ( method_path, method_expr) = match ( hir, closure_params_len) {
468
- (
469
- Some ( Node :: Expr ( hir:: Expr {
470
- kind : hir:: ExprKind :: MethodCall ( segment, expr, _) ,
471
- ..
472
- } ) ) ,
473
- 1 ,
474
- ) => ( segment, expr) ,
475
- _ => return None ,
463
+ let (
464
+ Some ( Node :: Expr ( hir:: Expr {
465
+ kind : hir:: ExprKind :: MethodCall ( method_path, method_expr, _) ,
466
+ ..
467
+ } ) ) ,
468
+ 1 ,
469
+ ) = ( hir, closure_params_len) else {
470
+ return None ;
476
471
} ;
477
472
478
473
let self_ty = self . typeck_results . borrow ( ) . node_type ( method_expr[ 0 ] . hir_id ) ;
0 commit comments