@@ -113,7 +113,6 @@ static inline i32 ast_kind_to_size(AstNode* node) {
113113 case Ast_Kind_Capture_Block : return sizeof (AstCaptureBlock );
114114 case Ast_Kind_Capture_Local : return sizeof (AstCaptureLocal );
115115 case Ast_Kind_Union_Type : return sizeof (AstUnionType );
116- case Ast_Kind_Union_Variant : return sizeof (AstUnionVariant );
117116 case Ast_Kind_Procedural_Expansion : return sizeof (AstProceduralExpansion );
118117 case Ast_Kind_Code_Block : return sizeof (AstCodeBlock );
119118
@@ -411,8 +410,16 @@ AstNode* ast_clone(Context *context, void* n) {
411410 du -> variants = NULL ;
412411 bh_arr_new (context -> gp_alloc , du -> variants , bh_arr_length (su -> variants ));
413412
414- bh_arr_each (AstUnionVariant * , uv , su -> variants ) {
415- bh_arr_push (du -> variants , (AstUnionVariant * ) ast_clone (context , * uv ));
413+ bh_arr_each (AstUnionVariant , uv , su -> variants ) {
414+ AstUnionVariant new_variant = * uv ;
415+
416+ new_variant .meta_tags = NULL ;
417+ bh_arr_new (context -> gp_alloc , new_variant .meta_tags , bh_arr_length (su -> meta_tags ));
418+ bh_arr_each (AstTyped * , tag , su -> meta_tags ) {
419+ bh_arr_push (new_variant .meta_tags , (AstTyped * ) ast_clone (context , * tag ));
420+ }
421+
422+ bh_arr_push (du -> variants , new_variant );
416423 }
417424
418425 du -> meta_tags = NULL ;
@@ -434,21 +441,6 @@ AstNode* ast_clone(Context *context, void* n) {
434441 break ;
435442 }
436443
437- case Ast_Kind_Union_Variant : {
438- C (AstUnionVariant , type_node );
439-
440- AstUnionVariant * du = (AstUnionVariant * ) nn ;
441- AstUnionVariant * su = (AstUnionVariant * ) node ;
442-
443- du -> meta_tags = NULL ;
444- bh_arr_new (context -> gp_alloc , du -> meta_tags , bh_arr_length (su -> meta_tags ));
445- bh_arr_each (AstTyped * , tag , su -> meta_tags ) {
446- bh_arr_push (du -> meta_tags , (AstTyped * ) ast_clone (context , * tag ));
447- }
448-
449- break ;
450- }
451-
452444 case Ast_Kind_Poly_Call_Type : {
453445 AstPolyCallType * pcd = (AstPolyCallType * ) nn ;
454446 AstPolyCallType * pcs = (AstPolyCallType * ) node ;
0 commit comments