@@ -930,35 +930,38 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
930
930
only_trait : only_trait. then_some ( ( ) ) ,
931
931
} ;
932
932
933
- self . visibility_not_permitted (
934
- & item. vis ,
935
- errors:: VisibilityNotPermittedNote :: IndividualImplItems ,
936
- ) ;
937
- if let & Unsafe :: Yes ( span) = unsafety {
938
- self . dcx ( ) . emit_err ( errors:: InherentImplCannotUnsafe {
939
- span : self_ty. span ,
940
- annotation_span : span,
941
- annotation : "unsafe" ,
942
- self_ty : self_ty. span ,
943
- } ) ;
944
- }
945
- if let & ImplPolarity :: Negative ( span) = polarity {
946
- self . dcx ( ) . emit_err ( error ( span, "negative" , false ) ) ;
947
- }
948
- if let & Defaultness :: Default ( def_span) = defaultness {
949
- self . dcx ( ) . emit_err ( error ( def_span, "`default`" , true ) ) ;
950
- }
951
- if let & Const :: Yes ( span) = constness {
952
- self . dcx ( ) . emit_err ( error ( span, "`const`" , true ) ) ;
953
- }
933
+ self . with_in_trait_impl ( None , |this| {
934
+ this. visibility_not_permitted (
935
+ & item. vis ,
936
+ errors:: VisibilityNotPermittedNote :: IndividualImplItems ,
937
+ ) ;
938
+ if let & Unsafe :: Yes ( span) = unsafety {
939
+ this. dcx ( ) . emit_err ( errors:: InherentImplCannotUnsafe {
940
+ span : self_ty. span ,
941
+ annotation_span : span,
942
+ annotation : "unsafe" ,
943
+ self_ty : self_ty. span ,
944
+ } ) ;
945
+ }
946
+ if let & ImplPolarity :: Negative ( span) = polarity {
947
+ this. dcx ( ) . emit_err ( error ( span, "negative" , false ) ) ;
948
+ }
949
+ if let & Defaultness :: Default ( def_span) = defaultness {
950
+ this. dcx ( ) . emit_err ( error ( def_span, "`default`" , true ) ) ;
951
+ }
952
+ if let & Const :: Yes ( span) = constness {
953
+ this. dcx ( ) . emit_err ( error ( span, "`const`" , true ) ) ;
954
+ }
954
955
955
- self . visit_vis ( & item. vis ) ;
956
- self . visit_ident ( item. ident ) ;
957
- self . with_tilde_const ( Some ( DisallowTildeConstContext :: Impl ( item. span ) ) , |this| {
958
- this. visit_generics ( generics)
956
+ this. visit_vis ( & item. vis ) ;
957
+ this. visit_ident ( item. ident ) ;
958
+ this. with_tilde_const (
959
+ Some ( DisallowTildeConstContext :: Impl ( item. span ) ) ,
960
+ |this| this. visit_generics ( generics) ,
961
+ ) ;
962
+ this. visit_ty ( self_ty) ;
963
+ walk_list ! ( this, visit_assoc_item, items, AssocCtxt :: Impl ) ;
959
964
} ) ;
960
- self . visit_ty ( self_ty) ;
961
- walk_list ! ( self , visit_assoc_item, items, AssocCtxt :: Impl ) ;
962
965
walk_list ! ( self , visit_attribute, & item. attrs) ;
963
966
return ; // Avoid visiting again.
964
967
}
0 commit comments