@@ -1124,7 +1124,9 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
1124
1124
) ;
1125
1125
}
1126
1126
}
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
+ } ) ;
1128
1130
}
1129
1131
ItemKind :: Trait ( box Trait {
1130
1132
constness,
@@ -1175,26 +1177,32 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
1175
1177
}
1176
1178
visit:: walk_item ( self , item)
1177
1179
}
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
+ }
1186
1192
ItemKind :: Union ( ident, generics, vdata) => {
1187
1193
if vdata. fields ( ) . is_empty ( ) {
1188
1194
self . dcx ( ) . emit_err ( errors:: FieldlessUnion { span : item. span } ) ;
1189
1195
}
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) ,
1195
1204
}
1196
- _ => visit:: walk_item ( self , item) ,
1197
- }
1205
+ } ) ;
1198
1206
}
1199
1207
ItemKind :: Const ( box ConstItem { defaultness, expr, .. } ) => {
1200
1208
self . check_defaultness ( item. span , * defaultness) ;
@@ -1623,6 +1631,13 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
1623
1631
_ => self . with_in_trait_impl ( None , |this| visit:: walk_assoc_item ( this, item, ctxt) ) ,
1624
1632
}
1625
1633
}
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
+ }
1626
1641
}
1627
1642
1628
1643
/// When encountering an equality constraint in a `where` clause, emit an error. If the code seems
0 commit comments