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