@@ -435,44 +435,39 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
435435 /// opt.map(|param| { takes_ref(param) });
436436 /// ```
437437 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 ;
441440 } ;
442441
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 ;
446444 } ;
447445
448446 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 ;
452449 } ;
453450
454451 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 ;
462458 } ;
463459
464460 let expr_parent = self . tcx . hir ( ) . get_parent_node ( * expr_hir_id) ;
465461 let hir = self . tcx . hir ( ) . find ( expr_parent) ;
466462 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 ;
476471 } ;
477472
478473 let self_ty = self . typeck_results . borrow ( ) . node_type ( method_expr[ 0 ] . hir_id ) ;
0 commit comments