@@ -1293,15 +1293,39 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
12931293            TyKind :: Err  => { 
12941294                hir:: TyKind :: Err ( self . tcx . sess . delay_span_bug ( t. span ,  "TyKind::Err lowered" ) ) 
12951295            } 
1296-             TyKind :: AnonStruct ( fields)  => { 
1297-                 hir:: TyKind :: AnonStruct ( 
1298-                     self . arena . alloc_from_iter ( fields. iter ( ) . enumerate ( ) . map ( |f| self . lower_field_def ( f) ) ) , 
1299-                 ) 
1300-             } 
1301-             TyKind :: AnonUnion ( fields)  => { 
1302-                 hir:: TyKind :: AnonUnion ( 
1303-                     self . arena . alloc_from_iter ( fields. iter ( ) . enumerate ( ) . map ( |f| self . lower_field_def ( f) ) ) , 
1304-                 ) 
1296+             TyKind :: AnonStruct ( def_node_id,  fields)  | TyKind :: AnonUnion ( def_node_id,  fields)  => { 
1297+                 let  def_path_data = match  & t. kind  { 
1298+                     TyKind :: AnonStruct ( ..)  => DefPathData :: AnonStruct , 
1299+                     _ => DefPathData :: AnonUnion , 
1300+                 } ; 
1301+                 let  def_id = self . create_def ( 
1302+                     self . current_hir_id_owner . def_id , 
1303+                     * def_node_id, 
1304+                     def_path_data, 
1305+                     t. span , 
1306+                 ) ; 
1307+                 debug ! ( ?def_id) ; 
1308+                 let  owner_id = hir:: OwnerId  {  def_id } ; 
1309+                 self . with_hir_id_owner ( * def_node_id,  |this| { 
1310+                     let  fields = this. arena . alloc_from_iter ( 
1311+                         fields. iter ( ) . enumerate ( ) . map ( |f| this. lower_field_def ( f) ) , 
1312+                     ) ; 
1313+                     let  span = t. span ; 
1314+                     let  variant_data = hir:: VariantData :: Struct ( fields,  false ) ; 
1315+                     let  generics = hir:: Generics :: empty ( ) ; 
1316+                     let  kind = match  & t. kind  { 
1317+                         TyKind :: AnonStruct ( ..)  => hir:: ItemKind :: Struct ( variant_data,  generics) , 
1318+                         _ => hir:: ItemKind :: Union ( variant_data,  generics) , 
1319+                     } ; 
1320+                     hir:: OwnerNode :: Item ( this. arena . alloc ( hir:: Item  { 
1321+                         ident :  Ident :: empty ( ) , 
1322+                         owner_id, 
1323+                         kind, 
1324+                         span :  this. lower_span ( span) , 
1325+                         vis_span :  this. lower_span ( span. shrink_to_lo ( ) ) , 
1326+                     } ) ) 
1327+                 } ) ; 
1328+                 hir:: TyKind :: AnonAdt ( hir:: ItemId  {  owner_id } ) 
13051329            } 
13061330            TyKind :: Slice ( ty)  => hir:: TyKind :: Slice ( self . lower_ty ( ty,  itctx) ) , 
13071331            TyKind :: Ptr ( mt)  => hir:: TyKind :: Ptr ( self . lower_mt ( mt,  itctx) ) , 
0 commit comments