Skip to content

Commit ff57074

Browse files
committed
Sema: replace all remaining aggregate interns related to @typeInfo
1 parent dae102c commit ff57074

File tree

2 files changed

+26
-101
lines changed

2 files changed

+26
-101
lines changed

src/Sema.zig

Lines changed: 25 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -16799,21 +16799,15 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
1679916799
// type: ?type,
1680016800
param_ty_val,
1680116801
};
16802-
param_val.* = try pt.intern(.{ .aggregate = .{
16803-
.ty = param_info_ty.toIntern(),
16804-
.storage = .{ .elems = &param_fields },
16805-
} });
16802+
param_val.* = (try pt.aggregateValue(param_info_ty, &param_fields)).toIntern();
1680616803
}
1680716804

1680816805
const args_val = v: {
1680916806
const new_decl_ty = try pt.arrayType(.{
1681016807
.len = param_vals.len,
1681116808
.child = param_info_ty.toIntern(),
1681216809
});
16813-
const new_decl_val = try pt.intern(.{ .aggregate = .{
16814-
.ty = new_decl_ty.toIntern(),
16815-
.storage = .{ .elems = param_vals },
16816-
} });
16810+
const new_decl_val = (try pt.aggregateValue(new_decl_ty, param_vals)).toIntern();
1681716811
const slice_ty = (try pt.ptrTypeSema(.{
1681816812
.child = param_info_ty.toIntern(),
1681916813
.flags = .{
@@ -16871,10 +16865,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
1687116865
return Air.internedToRef((try pt.internUnion(.{
1687216866
.ty = type_info_ty.toIntern(),
1687316867
.tag = (try pt.enumValueFieldIndex(type_info_tag_ty, @intFromEnum(std.builtin.TypeId.@"fn"))).toIntern(),
16874-
.val = try pt.intern(.{ .aggregate = .{
16875-
.ty = fn_info_ty.toIntern(),
16876-
.storage = .{ .elems = &field_values },
16877-
} }),
16868+
.val = (try pt.aggregateValue(fn_info_ty, &field_values)).toIntern(),
1687816869
})));
1687916870
},
1688016871
.int => {
@@ -16890,10 +16881,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
1689016881
return Air.internedToRef((try pt.internUnion(.{
1689116882
.ty = type_info_ty.toIntern(),
1689216883
.tag = (try pt.enumValueFieldIndex(type_info_tag_ty, @intFromEnum(std.builtin.TypeId.int))).toIntern(),
16893-
.val = try pt.intern(.{ .aggregate = .{
16894-
.ty = int_info_ty.toIntern(),
16895-
.storage = .{ .elems = &field_values },
16896-
} }),
16884+
.val = (try pt.aggregateValue(int_info_ty, &field_values)).toIntern(),
1689716885
})));
1689816886
},
1689916887
.float => {
@@ -16906,10 +16894,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
1690616894
return Air.internedToRef((try pt.internUnion(.{
1690716895
.ty = type_info_ty.toIntern(),
1690816896
.tag = (try pt.enumValueFieldIndex(type_info_tag_ty, @intFromEnum(std.builtin.TypeId.float))).toIntern(),
16909-
.val = try pt.intern(.{ .aggregate = .{
16910-
.ty = float_info_ty.toIntern(),
16911-
.storage = .{ .elems = &field_vals },
16912-
} }),
16897+
.val = (try pt.aggregateValue(float_info_ty, &field_vals)).toIntern(),
1691316898
})));
1691416899
},
1691516900
.pointer => {
@@ -16947,10 +16932,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
1694716932
return Air.internedToRef((try pt.internUnion(.{
1694816933
.ty = type_info_ty.toIntern(),
1694916934
.tag = (try pt.enumValueFieldIndex(type_info_tag_ty, @intFromEnum(std.builtin.TypeId.pointer))).toIntern(),
16950-
.val = try pt.intern(.{ .aggregate = .{
16951-
.ty = pointer_ty.toIntern(),
16952-
.storage = .{ .elems = &field_values },
16953-
} }),
16935+
.val = (try pt.aggregateValue(pointer_ty, &field_values)).toIntern(),
1695416936
})));
1695516937
},
1695616938
.array => {
@@ -16968,10 +16950,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
1696816950
return Air.internedToRef((try pt.internUnion(.{
1696916951
.ty = type_info_ty.toIntern(),
1697016952
.tag = (try pt.enumValueFieldIndex(type_info_tag_ty, @intFromEnum(std.builtin.TypeId.array))).toIntern(),
16971-
.val = try pt.intern(.{ .aggregate = .{
16972-
.ty = array_field_ty.toIntern(),
16973-
.storage = .{ .elems = &field_values },
16974-
} }),
16953+
.val = (try pt.aggregateValue(array_field_ty, &field_values)).toIntern(),
1697516954
})));
1697616955
},
1697716956
.vector => {
@@ -16987,10 +16966,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
1698716966
return Air.internedToRef((try pt.internUnion(.{
1698816967
.ty = type_info_ty.toIntern(),
1698916968
.tag = (try pt.enumValueFieldIndex(type_info_tag_ty, @intFromEnum(std.builtin.TypeId.vector))).toIntern(),
16990-
.val = try pt.intern(.{ .aggregate = .{
16991-
.ty = vector_field_ty.toIntern(),
16992-
.storage = .{ .elems = &field_values },
16993-
} }),
16969+
.val = (try pt.aggregateValue(vector_field_ty, &field_values)).toIntern(),
1699416970
})));
1699516971
},
1699616972
.optional => {
@@ -17003,10 +16979,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
1700316979
return Air.internedToRef((try pt.internUnion(.{
1700416980
.ty = type_info_ty.toIntern(),
1700516981
.tag = (try pt.enumValueFieldIndex(type_info_tag_ty, @intFromEnum(std.builtin.TypeId.optional))).toIntern(),
17006-
.val = try pt.intern(.{ .aggregate = .{
17007-
.ty = optional_field_ty.toIntern(),
17008-
.storage = .{ .elems = &field_values },
17009-
} }),
16982+
.val = (try pt.aggregateValue(optional_field_ty, &field_values)).toIntern(),
1701016983
})));
1701116984
},
1701216985
.error_set => {
@@ -17052,10 +17025,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
1705217025
// name: [:0]const u8,
1705317026
error_name_val,
1705417027
};
17055-
field_val.* = try pt.intern(.{ .aggregate = .{
17056-
.ty = error_field_ty.toIntern(),
17057-
.storage = .{ .elems = &error_field_fields },
17058-
} });
17028+
field_val.* = (try pt.aggregateValue(error_field_ty, &error_field_fields)).toIntern();
1705917029
}
1706017030

1706117031
break :blk vals;
@@ -17076,10 +17046,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
1707617046
.len = vals.len,
1707717047
.child = error_field_ty.toIntern(),
1707817048
});
17079-
const new_decl_val = try pt.intern(.{ .aggregate = .{
17080-
.ty = array_errors_ty.toIntern(),
17081-
.storage = .{ .elems = vals },
17082-
} });
17049+
const new_decl_val = (try pt.aggregateValue(array_errors_ty, vals)).toIntern();
1708317050
const manyptr_errors_ty = slice_errors_ty.slicePtrFieldType(zcu).toIntern();
1708417051
break :v try pt.intern(.{ .slice = .{
1708517052
.ty = slice_errors_ty.toIntern(),
@@ -17118,10 +17085,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
1711817085
return Air.internedToRef((try pt.internUnion(.{
1711917086
.ty = type_info_ty.toIntern(),
1712017087
.tag = (try pt.enumValueFieldIndex(type_info_tag_ty, @intFromEnum(std.builtin.TypeId.error_union))).toIntern(),
17121-
.val = try pt.intern(.{ .aggregate = .{
17122-
.ty = error_union_field_ty.toIntern(),
17123-
.storage = .{ .elems = &field_values },
17124-
} }),
17088+
.val = (try pt.aggregateValue(error_union_field_ty, &field_values)).toIntern(),
1712517089
})));
1712617090
},
1712717091
.@"enum" => {
@@ -17175,21 +17139,15 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
1717517139
// value: comptime_int,
1717617140
value_val,
1717717141
};
17178-
field_val.* = try pt.intern(.{ .aggregate = .{
17179-
.ty = enum_field_ty.toIntern(),
17180-
.storage = .{ .elems = &enum_field_fields },
17181-
} });
17142+
field_val.* = (try pt.aggregateValue(enum_field_ty, &enum_field_fields)).toIntern();
1718217143
}
1718317144

1718417145
const fields_val = v: {
1718517146
const fields_array_ty = try pt.arrayType(.{
1718617147
.len = enum_field_vals.len,
1718717148
.child = enum_field_ty.toIntern(),
1718817149
});
17189-
const new_decl_val = try pt.intern(.{ .aggregate = .{
17190-
.ty = fields_array_ty.toIntern(),
17191-
.storage = .{ .elems = enum_field_vals },
17192-
} });
17150+
const new_decl_val = (try pt.aggregateValue(fields_array_ty, enum_field_vals)).toIntern();
1719317151
const slice_ty = (try pt.ptrTypeSema(.{
1719417152
.child = enum_field_ty.toIntern(),
1719517153
.flags = .{
@@ -17229,10 +17187,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
1722917187
return Air.internedToRef((try pt.internUnion(.{
1723017188
.ty = type_info_ty.toIntern(),
1723117189
.tag = (try pt.enumValueFieldIndex(type_info_tag_ty, @intFromEnum(std.builtin.TypeId.@"enum"))).toIntern(),
17232-
.val = try pt.intern(.{ .aggregate = .{
17233-
.ty = type_enum_ty.toIntern(),
17234-
.storage = .{ .elems = &field_values },
17235-
} }),
17190+
.val = (try pt.aggregateValue(type_enum_ty, &field_values)).toIntern(),
1723617191
})));
1723717192
},
1723817193
.@"union" => {
@@ -17288,21 +17243,15 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
1728817243
// alignment: comptime_int,
1728917244
(try pt.intValue(.comptime_int, alignment.toByteUnits() orelse 0)).toIntern(),
1729017245
};
17291-
field_val.* = try pt.intern(.{ .aggregate = .{
17292-
.ty = union_field_ty.toIntern(),
17293-
.storage = .{ .elems = &union_field_fields },
17294-
} });
17246+
field_val.* = (try pt.aggregateValue(union_field_ty, &union_field_fields)).toIntern();
1729517247
}
1729617248

1729717249
const fields_val = v: {
1729817250
const array_fields_ty = try pt.arrayType(.{
1729917251
.len = union_field_vals.len,
1730017252
.child = union_field_ty.toIntern(),
1730117253
});
17302-
const new_decl_val = try pt.intern(.{ .aggregate = .{
17303-
.ty = array_fields_ty.toIntern(),
17304-
.storage = .{ .elems = union_field_vals },
17305-
} });
17254+
const new_decl_val = (try pt.aggregateValue(array_fields_ty, union_field_vals)).toIntern();
1730617255
const slice_ty = (try pt.ptrTypeSema(.{
1730717256
.child = union_field_ty.toIntern(),
1730817257
.flags = .{
@@ -17348,10 +17297,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
1734817297
return Air.internedToRef((try pt.internUnion(.{
1734917298
.ty = type_info_ty.toIntern(),
1735017299
.tag = (try pt.enumValueFieldIndex(type_info_tag_ty, @intFromEnum(std.builtin.TypeId.@"union"))).toIntern(),
17351-
.val = try pt.intern(.{ .aggregate = .{
17352-
.ty = type_union_ty.toIntern(),
17353-
.storage = .{ .elems = &field_values },
17354-
} }),
17300+
.val = (try pt.aggregateValue(type_union_ty, &field_values)).toIntern(),
1735517301
})));
1735617302
},
1735717303
.@"struct" => {
@@ -17412,10 +17358,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
1741217358
// alignment: comptime_int,
1741317359
(try pt.intValue(.comptime_int, Type.fromInterned(field_ty).abiAlignment(zcu).toByteUnits() orelse 0)).toIntern(),
1741417360
};
17415-
struct_field_val.* = try pt.intern(.{ .aggregate = .{
17416-
.ty = struct_field_ty.toIntern(),
17417-
.storage = .{ .elems = &struct_field_fields },
17418-
} });
17361+
struct_field_val.* = (try pt.aggregateValue(struct_field_ty, &struct_field_fields)).toIntern();
1741917362
}
1742017363
break :fv;
1742117364
},
@@ -17482,10 +17425,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
1748217425
// alignment: comptime_int,
1748317426
(try pt.intValue(.comptime_int, alignment.toByteUnits() orelse 0)).toIntern(),
1748417427
};
17485-
field_val.* = try pt.intern(.{ .aggregate = .{
17486-
.ty = struct_field_ty.toIntern(),
17487-
.storage = .{ .elems = &struct_field_fields },
17488-
} });
17428+
field_val.* = (try pt.aggregateValue(struct_field_ty, &struct_field_fields)).toIntern();
1748917429
}
1749017430
}
1749117431

@@ -17494,10 +17434,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
1749417434
.len = struct_field_vals.len,
1749517435
.child = struct_field_ty.toIntern(),
1749617436
});
17497-
const new_decl_val = try pt.intern(.{ .aggregate = .{
17498-
.ty = array_fields_ty.toIntern(),
17499-
.storage = .{ .elems = struct_field_vals },
17500-
} });
17437+
const new_decl_val = (try pt.aggregateValue(array_fields_ty, struct_field_vals)).toIntern();
1750117438
const slice_ty = (try pt.ptrTypeSema(.{
1750217439
.child = struct_field_ty.toIntern(),
1750317440
.flags = .{
@@ -17549,10 +17486,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
1754917486
return Air.internedToRef((try pt.internUnion(.{
1755017487
.ty = type_info_ty.toIntern(),
1755117488
.tag = (try pt.enumValueFieldIndex(type_info_tag_ty, @intFromEnum(std.builtin.TypeId.@"struct"))).toIntern(),
17552-
.val = try pt.intern(.{ .aggregate = .{
17553-
.ty = type_struct_ty.toIntern(),
17554-
.storage = .{ .elems = &field_values },
17555-
} }),
17489+
.val = (try pt.aggregateValue(type_struct_ty, &field_values)).toIntern(),
1755617490
})));
1755717491
},
1755817492
.@"opaque" => {
@@ -17568,10 +17502,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
1756817502
return Air.internedToRef((try pt.internUnion(.{
1756917503
.ty = type_info_ty.toIntern(),
1757017504
.tag = (try pt.enumValueFieldIndex(type_info_tag_ty, @intFromEnum(std.builtin.TypeId.@"opaque"))).toIntern(),
17571-
.val = try pt.intern(.{ .aggregate = .{
17572-
.ty = type_opaque_ty.toIntern(),
17573-
.storage = .{ .elems = &field_values },
17574-
} }),
17505+
.val = (try pt.aggregateValue(type_opaque_ty, &field_values)).toIntern(),
1757517506
})));
1757617507
},
1757717508
.frame => return sema.failWithUseOfAsync(block, src),
@@ -17602,10 +17533,7 @@ fn typeInfoDecls(
1760217533
.len = decl_vals.items.len,
1760317534
.child = declaration_ty.toIntern(),
1760417535
});
17605-
const new_decl_val = try pt.intern(.{ .aggregate = .{
17606-
.ty = array_decl_ty.toIntern(),
17607-
.storage = .{ .elems = decl_vals.items },
17608-
} });
17536+
const new_decl_val = (try pt.aggregateValue(array_decl_ty, decl_vals.items)).toIntern();
1760917537
const slice_ty = (try pt.ptrTypeSema(.{
1761017538
.child = declaration_ty.toIntern(),
1761117539
.flags = .{
@@ -17680,10 +17608,7 @@ fn typeInfoNamespaceDecls(
1768017608
// name: [:0]const u8,
1768117609
name_val,
1768217610
};
17683-
try decl_vals.append(try pt.intern(.{ .aggregate = .{
17684-
.ty = declaration_ty.toIntern(),
17685-
.storage = .{ .elems = &fields },
17686-
} }));
17611+
try decl_vals.append((try pt.aggregateValue(declaration_ty, &fields)).toIntern());
1768717612
}
1768817613
}
1768917614

src/codegen/spirv/CodeGen.zig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -772,7 +772,7 @@ fn constant(cg: *CodeGen, ty: Type, val: Value, repr: Repr) Error!Id {
772772
const ip = &zcu.intern_pool;
773773

774774
log.debug("lowering constant: ty = {f}, val = {f}, key = {s}", .{ ty.fmt(pt), val.fmtValue(pt), @tagName(ip.indexToKey(val.toIntern())) });
775-
if (val.isUndefDeep(zcu)) {
775+
if (val.isUndef(zcu)) {
776776
return cg.module.constUndef(result_ty_id);
777777
}
778778

0 commit comments

Comments
 (0)