@@ -1124,7 +1124,9 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
11241124                        ) ; 
11251125                    } 
11261126                } 
1127-                 visit:: walk_item ( self ,  item) 
1127+                 self . with_tilde_const ( Some ( TildeConstReason :: Enum  {  span :  item. span  } ) ,  |this| { 
1128+                     visit:: walk_item ( this,  item) 
1129+                 } ) ; 
11281130            } 
11291131            ItemKind :: Trait ( box Trait  { 
11301132                constness, 
@@ -1175,26 +1177,32 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
11751177                } 
11761178                visit:: walk_item ( self ,  item) 
11771179            } 
1178-             ItemKind :: Struct ( ident,  generics,  vdata)  => match  vdata { 
1179-                 VariantData :: Struct  {  fields,  .. }  => { 
1180-                     self . visit_attrs_vis_ident ( & item. attrs ,  & item. vis ,  ident) ; 
1181-                     self . visit_generics ( generics) ; 
1182-                     walk_list ! ( self ,  visit_field_def,  fields) ; 
1183-                 } 
1184-                 _ => visit:: walk_item ( self ,  item) , 
1185-             } , 
1180+             ItemKind :: Struct ( ident,  generics,  vdata)  => { 
1181+                 self . with_tilde_const ( Some ( TildeConstReason :: Struct  {  span :  item. span  } ) ,  |this| { 
1182+                     match  vdata { 
1183+                         VariantData :: Struct  {  fields,  .. }  => { 
1184+                             this. visit_attrs_vis_ident ( & item. attrs ,  & item. vis ,  ident) ; 
1185+                             this. visit_generics ( generics) ; 
1186+                             walk_list ! ( this,  visit_field_def,  fields) ; 
1187+                         } 
1188+                         _ => visit:: walk_item ( this,  item) , 
1189+                     } 
1190+                 } ) 
1191+             } 
11861192            ItemKind :: Union ( ident,  generics,  vdata)  => { 
11871193                if  vdata. fields ( ) . is_empty ( )  { 
11881194                    self . dcx ( ) . emit_err ( errors:: FieldlessUnion  {  span :  item. span  } ) ; 
11891195                } 
1190-                 match  vdata { 
1191-                     VariantData :: Struct  {  fields,  .. }  => { 
1192-                         self . visit_attrs_vis_ident ( & item. attrs ,  & item. vis ,  ident) ; 
1193-                         self . visit_generics ( generics) ; 
1194-                         walk_list ! ( self ,  visit_field_def,  fields) ; 
1196+                 self . with_tilde_const ( Some ( TildeConstReason :: Union  {  span :  item. span  } ) ,  |this| { 
1197+                     match  vdata { 
1198+                         VariantData :: Struct  {  fields,  .. }  => { 
1199+                             this. visit_attrs_vis_ident ( & item. attrs ,  & item. vis ,  ident) ; 
1200+                             this. visit_generics ( generics) ; 
1201+                             walk_list ! ( this,  visit_field_def,  fields) ; 
1202+                         } 
1203+                         _ => visit:: walk_item ( this,  item) , 
11951204                    } 
1196-                     _ => visit:: walk_item ( self ,  item) , 
1197-                 } 
1205+                 } ) ; 
11981206            } 
11991207            ItemKind :: Const ( box ConstItem  {  defaultness,  expr,  .. } )  => { 
12001208                self . check_defaultness ( item. span ,  * defaultness) ; 
@@ -1623,6 +1631,13 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
16231631            _ => self . with_in_trait_impl ( None ,  |this| visit:: walk_assoc_item ( this,  item,  ctxt) ) , 
16241632        } 
16251633    } 
1634+ 
1635+     fn  visit_anon_const ( & mut  self ,  anon_const :  & ' a  AnonConst )  { 
1636+         self . with_tilde_const ( 
1637+             Some ( TildeConstReason :: AnonConst  {  span :  anon_const. value . span  } ) , 
1638+             |this| visit:: walk_anon_const ( this,  anon_const) , 
1639+         ) 
1640+     } 
16261641} 
16271642
16281643/// When encountering an equality constraint in a `where` clause, emit an error. If the code seems 
0 commit comments