@@ -683,38 +683,36 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
683
683
684
684
let encl_item_id = self . tcx . hir ( ) . get_parent_item ( expr. hir_id ) ;
685
685
686
- if self . tcx . hir ( ) . maybe_body_owned_by ( encl_item_id) . is_some ( ) {
687
- if let Some ( hir:: Node :: Item ( hir:: Item {
688
- kind : hir:: ItemKind :: Fn ( ..) ,
689
- span : encl_fn_span,
690
- ..
691
- } ) )
692
- | Some ( hir:: Node :: TraitItem ( hir:: TraitItem {
693
- kind : hir:: TraitItemKind :: Fn ( ..) ,
694
- span : encl_fn_span,
695
- ..
696
- } ) )
697
- | Some ( hir:: Node :: ImplItem ( hir:: ImplItem {
698
- kind : hir:: ImplItemKind :: Fn ( ..) ,
699
- span : encl_fn_span,
700
- ..
701
- } ) ) = self . tcx . hir ( ) . find ( encl_item_id)
702
- {
703
- // We are inside a function body, so reporting "return statement
704
- // outside of function body" needs an explanation.
705
-
706
- let encl_body_owner_id = self . tcx . hir ( ) . enclosing_body_owner ( expr. hir_id ) ;
707
-
708
- // If this didn't hold, we would not have to report an error in
709
- // the first place.
710
- assert_ne ! ( encl_item_id, encl_body_owner_id) ;
711
-
712
- let encl_body_id = self . tcx . hir ( ) . body_owned_by ( encl_body_owner_id) ;
713
- let encl_body = self . tcx . hir ( ) . body ( encl_body_id) ;
714
-
715
- err. encl_body_span = Some ( encl_body. value . span ) ;
716
- err. encl_fn_span = Some ( * encl_fn_span) ;
717
- }
686
+ if let Some ( hir:: Node :: Item ( hir:: Item {
687
+ kind : hir:: ItemKind :: Fn ( ..) ,
688
+ span : encl_fn_span,
689
+ ..
690
+ } ) )
691
+ | Some ( hir:: Node :: TraitItem ( hir:: TraitItem {
692
+ kind : hir:: TraitItemKind :: Fn ( _, hir:: TraitFn :: Provided ( _) ) ,
693
+ span : encl_fn_span,
694
+ ..
695
+ } ) )
696
+ | Some ( hir:: Node :: ImplItem ( hir:: ImplItem {
697
+ kind : hir:: ImplItemKind :: Fn ( ..) ,
698
+ span : encl_fn_span,
699
+ ..
700
+ } ) ) = self . tcx . hir ( ) . find ( encl_item_id)
701
+ {
702
+ // We are inside a function body, so reporting "return statement
703
+ // outside of function body" needs an explanation.
704
+
705
+ let encl_body_owner_id = self . tcx . hir ( ) . enclosing_body_owner ( expr. hir_id ) ;
706
+
707
+ // If this didn't hold, we would not have to report an error in
708
+ // the first place.
709
+ assert_ne ! ( encl_item_id, encl_body_owner_id) ;
710
+
711
+ let encl_body_id = self . tcx . hir ( ) . body_owned_by ( encl_body_owner_id) ;
712
+ let encl_body = self . tcx . hir ( ) . body ( encl_body_id) ;
713
+
714
+ err. encl_body_span = Some ( encl_body. value . span ) ;
715
+ err. encl_fn_span = Some ( * encl_fn_span) ;
718
716
}
719
717
720
718
self . tcx . sess . emit_err ( err) ;
0 commit comments