@@ -882,7 +882,7 @@ const CollectedTypeRepr = union(enum) {
882882 unit ,
883883 list : u64 ,
884884 function : struct { arg_ids : []const u64 , ret_id : u64 },
885- record : struct { name : []const u8 , fields : []const CollectedRecordField , size : u64 , alignment : u64 },
885+ record : struct { name : []const u8 , anonymous : bool , fields : []const CollectedRecordField , size : u64 , alignment : u64 },
886886 tag_union : struct { name : []const u8 , tags : []const CollectedTagInfo , size : u64 , alignment : u64 },
887887 unknown : []const u8 ,
888888};
@@ -1007,6 +1007,7 @@ const TypeTable = struct {
10071007 if (rec .name .len == 0 ) {
10081008 self .entries .items [@intCast (idx )] = .{ .record = .{
10091009 .name = try std .fmt .allocPrint (self .gpa , "__AnonStruct{d}" , .{idx }),
1010+ .anonymous = true ,
10101011 .fields = rec .fields ,
10111012 .size = rec .size ,
10121013 .alignment = rec .alignment ,
@@ -1124,6 +1125,7 @@ const TypeTable = struct {
11241125 return switch (backing_repr ) {
11251126 .record = > | rec | .{ .record = .{
11261127 .name = try self .gpa .dupe (u8 , display_name ),
1128+ .anonymous = false ,
11271129 .fields = rec .fields ,
11281130 .size = rec .size ,
11291131 .alignment = rec .alignment ,
@@ -1221,6 +1223,7 @@ const TypeTable = struct {
12211223
12221224 return .{ .record = .{
12231225 .name = "" ,
1226+ .anonymous = true ,
12241227 .fields = collected_fields ,
12251228 .size = record_size ,
12261229 .alignment = max_alignment ,
@@ -1307,6 +1310,7 @@ const TypeTable = struct {
13071310
13081311 return .{ .record = .{
13091312 .name = "" ,
1313+ .anonymous = true ,
13101314 .fields = collected_fields ,
13111315 .size = record_size ,
13121316 .alignment = max_alignment ,
@@ -1814,6 +1818,7 @@ fn writeTypeRepr(
18141818 writer .zeroValue (value_base , payload_layout );
18151819 const fields_slot = writer .recordField (value_base , payload_layout , "RecordRepr" , "fields" );
18161820 writer .writeField (value_base , payload_layout , "RecordRepr" , "alignment" , u64 , rec .alignment );
1821+ writer .writeField (value_base , payload_layout , "RecordRepr" , "anonymous" , bool , rec .anonymous );
18171822 writer .writeField (value_base , payload_layout , "RecordRepr" , "fields" , RocList , buildRecordFieldTypeReprList (writer , rec .fields , fields_slot .layout_idx ));
18181823 writer .writeField (value_base , payload_layout , "RecordRepr" , "name" , RocStr , createBigRocStr (rec .name , writer .roc_ops ));
18191824 writer .writeField (value_base , payload_layout , "RecordRepr" , "size" , u64 , rec .size );
0 commit comments