@@ -59,49 +59,45 @@ impl<'a, 'tcx> InferCtxt<'a, 'tcx> {
5959 fn describe_enclosure ( & self , hir_id : hir:: HirId ) -> Option < & ' static str > {
6060 let hir = & self . tcx . hir ( ) ;
6161 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+ } )
6870 } )
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 ( || {
8280 Some ( if let hir:: FnHeader { asyncness : hir:: IsAsync :: Async , .. } = sig. header {
8381 "an async method"
8482 } else {
8583 "a method"
8684 } )
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 ( || {
9490 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+ }
10299 }
103- } else {
104- None
100+ _ => None ,
105101 }
106102 }
107103
0 commit comments