@@ -59,49 +59,45 @@ impl<'a, 'tcx> InferCtxt<'a, 'tcx> {
59
59
fn describe_enclosure ( & self , hir_id : hir:: HirId ) -> Option < & ' static str > {
60
60
let hir = & self . tcx . hir ( ) ;
61
61
let node = hir. find ( hir_id) ?;
62
- if let hir:: Node :: Item ( hir:: Item { kind : hir:: ItemKind :: Fn ( sig, _, body_id) , .. } ) = & node {
63
- self . describe_generator ( * body_id) . or_else ( || {
64
- Some ( if let hir:: FnHeader { asyncness : hir:: IsAsync :: Async , .. } = sig. header {
65
- "an async function"
66
- } else {
67
- "a function"
62
+ match & node {
63
+ hir:: Node :: Item ( hir:: Item { kind : hir:: ItemKind :: Fn ( sig, _, body_id) , .. } ) => {
64
+ self . describe_generator ( * body_id) . or_else ( || {
65
+ Some ( if let hir:: FnHeader { asyncness : hir:: IsAsync :: Async , .. } = sig. header {
66
+ "an async function"
67
+ } else {
68
+ "a function"
69
+ } )
68
70
} )
69
- } )
70
- } else if let hir:: Node :: TraitItem ( hir:: TraitItem {
71
- kind : hir:: TraitItemKind :: Method ( _, hir:: TraitMethod :: Provided ( body_id) ) ,
72
- ..
73
- } ) = & node
74
- {
75
- self . describe_generator ( * body_id) . or_else ( || Some ( "a trait method" ) )
76
- } else if let hir:: Node :: ImplItem ( hir:: ImplItem {
77
- kind : hir:: ImplItemKind :: Method ( sig, body_id) ,
78
- ..
79
- } ) = & node
80
- {
81
- self . describe_generator ( * body_id) . or_else ( || {
71
+ }
72
+ hir:: Node :: TraitItem ( hir:: TraitItem {
73
+ kind : hir:: TraitItemKind :: Method ( _, hir:: TraitMethod :: Provided ( body_id) ) ,
74
+ ..
75
+ } ) => self . describe_generator ( * body_id) . or_else ( || Some ( "a trait method" ) ) ,
76
+ hir:: Node :: ImplItem ( hir:: ImplItem {
77
+ kind : hir:: ImplItemKind :: Method ( sig, body_id) ,
78
+ ..
79
+ } ) => self . describe_generator ( * body_id) . or_else ( || {
82
80
Some ( if let hir:: FnHeader { asyncness : hir:: IsAsync :: Async , .. } = sig. header {
83
81
"an async method"
84
82
} else {
85
83
"a method"
86
84
} )
87
- } )
88
- } else if let hir:: Node :: Expr ( hir:: Expr {
89
- kind : hir:: ExprKind :: Closure ( _is_move, _, body_id, _, gen_movability) ,
90
- ..
91
- } ) = & node
92
- {
93
- self . describe_generator ( * body_id) . or_else ( || {
85
+ } ) ,
86
+ hir:: Node :: Expr ( hir:: Expr {
87
+ kind : hir:: ExprKind :: Closure ( _is_move, _, body_id, _, gen_movability) ,
88
+ ..
89
+ } ) => self . describe_generator ( * body_id) . or_else ( || {
94
90
Some ( if gen_movability. is_some ( ) { "an async closure" } else { "a closure" } )
95
- } )
96
- } else if let hir:: Node :: Expr ( hir:: Expr { .. } ) = & node {
97
- let parent_hid = hir. get_parent_node ( hir_id) ;
98
- if parent_hid != hir_id {
99
- return self . describe_enclosure ( parent_hid) ;
100
- } else {
101
- None
91
+ } ) ,
92
+ hir:: Node :: Expr ( hir:: Expr { .. } ) => {
93
+ let parent_hid = hir. get_parent_node ( hir_id) ;
94
+ if parent_hid != hir_id {
95
+ return self . describe_enclosure ( parent_hid) ;
96
+ } else {
97
+ None
98
+ }
102
99
}
103
- } else {
104
- None
100
+ _ => None ,
105
101
}
106
102
}
107
103
0 commit comments