authorgravatar for justus@klausecker.deJustus Klausecker <justus@klausecker.de> 2025-08-08 15:30:40+02:00
committergravatar for justus@klausecker.deJustus Klausecker <justus@klausecker.de> 2025-08-12 16:33:58+02:00
log8f5ec2a1fb957f4cd0895064d7ff7534ea306f71
tree847d70912cee052cf68d2f02ab0dfc70458f68d0
parent79756e681d50d85576c890e4dd5c967f10d2e8ec

Sema: replace all remaining aggregate interns related to `@typeInfo`


2 files changed, 26 insertions(+), 101 deletions(-)

src/Sema.zig+25-100
...@@ -16798,10 +16798,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai...@@ -16798,10 +16798,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
16798 // type: ?type,16798 // type: ?type,
16799 param_ty_val,16799 param_ty_val,
16800 };16800 };
16801 param_val.* = try pt.intern(.{ .aggregate = .{16801 param_val.* = (try pt.aggregateValue(param_info_ty, &param_fields)).toIntern();
16802 .ty = param_info_ty.toIntern(),
16803 .storage = .{ .elems = &param_fields },
16804 } });
16805 }16802 }
1680616803
16807 const args_val = v: {16804 const args_val = v: {
...@@ -16809,10 +16806,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai...@@ -16809,10 +16806,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
16809 .len = param_vals.len,16806 .len = param_vals.len,
16810 .child = param_info_ty.toIntern(),16807 .child = param_info_ty.toIntern(),
16811 });16808 });
16812 const new_decl_val = try pt.intern(.{ .aggregate = .{16809 const new_decl_val = (try pt.aggregateValue(new_decl_ty, param_vals)).toIntern();
16813 .ty = new_decl_ty.toIntern(),
16814 .storage = .{ .elems = param_vals },
16815 } });
16816 const slice_ty = (try pt.ptrTypeSema(.{16810 const slice_ty = (try pt.ptrTypeSema(.{
16817 .child = param_info_ty.toIntern(),16811 .child = param_info_ty.toIntern(),
16818 .flags = .{16812 .flags = .{
...@@ -16870,10 +16864,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai...@@ -16870,10 +16864,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
16870 return Air.internedToRef((try pt.internUnion(.{16864 return Air.internedToRef((try pt.internUnion(.{
16871 .ty = type_info_ty.toIntern(),16865 .ty = type_info_ty.toIntern(),
16872 .tag = (try pt.enumValueFieldIndex(type_info_tag_ty, @intFromEnum(std.builtin.TypeId.@"fn"))).toIntern(),16866 .tag = (try pt.enumValueFieldIndex(type_info_tag_ty, @intFromEnum(std.builtin.TypeId.@"fn"))).toIntern(),
16873 .val = try pt.intern(.{ .aggregate = .{16867 .val = (try pt.aggregateValue(fn_info_ty, &field_values)).toIntern(),
16874 .ty = fn_info_ty.toIntern(),
16875 .storage = .{ .elems = &field_values },
16876 } }),
16877 })));16868 })));
16878 },16869 },
16879 .int => {16870 .int => {
...@@ -16889,10 +16880,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai...@@ -16889,10 +16880,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
16889 return Air.internedToRef((try pt.internUnion(.{16880 return Air.internedToRef((try pt.internUnion(.{
16890 .ty = type_info_ty.toIntern(),16881 .ty = type_info_ty.toIntern(),
16891 .tag = (try pt.enumValueFieldIndex(type_info_tag_ty, @intFromEnum(std.builtin.TypeId.int))).toIntern(),16882 .tag = (try pt.enumValueFieldIndex(type_info_tag_ty, @intFromEnum(std.builtin.TypeId.int))).toIntern(),
16892 .val = try pt.intern(.{ .aggregate = .{16883 .val = (try pt.aggregateValue(int_info_ty, &field_values)).toIntern(),
16893 .ty = int_info_ty.toIntern(),
16894 .storage = .{ .elems = &field_values },
16895 } }),
16896 })));16884 })));
16897 },16885 },
16898 .float => {16886 .float => {
...@@ -16905,10 +16893,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai...@@ -16905,10 +16893,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
16905 return Air.internedToRef((try pt.internUnion(.{16893 return Air.internedToRef((try pt.internUnion(.{
16906 .ty = type_info_ty.toIntern(),16894 .ty = type_info_ty.toIntern(),
16907 .tag = (try pt.enumValueFieldIndex(type_info_tag_ty, @intFromEnum(std.builtin.TypeId.float))).toIntern(),16895 .tag = (try pt.enumValueFieldIndex(type_info_tag_ty, @intFromEnum(std.builtin.TypeId.float))).toIntern(),
16908 .val = try pt.intern(.{ .aggregate = .{16896 .val = (try pt.aggregateValue(float_info_ty, &field_vals)).toIntern(),
16909 .ty = float_info_ty.toIntern(),
16910 .storage = .{ .elems = &field_vals },
16911 } }),
16912 })));16897 })));
16913 },16898 },
16914 .pointer => {16899 .pointer => {
...@@ -16946,10 +16931,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai...@@ -16946,10 +16931,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
16946 return Air.internedToRef((try pt.internUnion(.{16931 return Air.internedToRef((try pt.internUnion(.{
16947 .ty = type_info_ty.toIntern(),16932 .ty = type_info_ty.toIntern(),
16948 .tag = (try pt.enumValueFieldIndex(type_info_tag_ty, @intFromEnum(std.builtin.TypeId.pointer))).toIntern(),16933 .tag = (try pt.enumValueFieldIndex(type_info_tag_ty, @intFromEnum(std.builtin.TypeId.pointer))).toIntern(),
16949 .val = try pt.intern(.{ .aggregate = .{16934 .val = (try pt.aggregateValue(pointer_ty, &field_values)).toIntern(),
16950 .ty = pointer_ty.toIntern(),
16951 .storage = .{ .elems = &field_values },
16952 } }),
16953 })));16935 })));
16954 },16936 },
16955 .array => {16937 .array => {
...@@ -16967,10 +16949,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai...@@ -16967,10 +16949,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
16967 return Air.internedToRef((try pt.internUnion(.{16949 return Air.internedToRef((try pt.internUnion(.{
16968 .ty = type_info_ty.toIntern(),16950 .ty = type_info_ty.toIntern(),
16969 .tag = (try pt.enumValueFieldIndex(type_info_tag_ty, @intFromEnum(std.builtin.TypeId.array))).toIntern(),16951 .tag = (try pt.enumValueFieldIndex(type_info_tag_ty, @intFromEnum(std.builtin.TypeId.array))).toIntern(),
16970 .val = try pt.intern(.{ .aggregate = .{16952 .val = (try pt.aggregateValue(array_field_ty, &field_values)).toIntern(),
16971 .ty = array_field_ty.toIntern(),
16972 .storage = .{ .elems = &field_values },
16973 } }),
16974 })));16953 })));
16975 },16954 },
16976 .vector => {16955 .vector => {
...@@ -16986,10 +16965,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai...@@ -16986,10 +16965,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
16986 return Air.internedToRef((try pt.internUnion(.{16965 return Air.internedToRef((try pt.internUnion(.{
16987 .ty = type_info_ty.toIntern(),16966 .ty = type_info_ty.toIntern(),
16988 .tag = (try pt.enumValueFieldIndex(type_info_tag_ty, @intFromEnum(std.builtin.TypeId.vector))).toIntern(),16967 .tag = (try pt.enumValueFieldIndex(type_info_tag_ty, @intFromEnum(std.builtin.TypeId.vector))).toIntern(),
16989 .val = try pt.intern(.{ .aggregate = .{16968 .val = (try pt.aggregateValue(vector_field_ty, &field_values)).toIntern(),
16990 .ty = vector_field_ty.toIntern(),
16991 .storage = .{ .elems = &field_values },
16992 } }),
16993 })));16969 })));
16994 },16970 },
16995 .optional => {16971 .optional => {
...@@ -17002,10 +16978,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai...@@ -17002,10 +16978,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
17002 return Air.internedToRef((try pt.internUnion(.{16978 return Air.internedToRef((try pt.internUnion(.{
17003 .ty = type_info_ty.toIntern(),16979 .ty = type_info_ty.toIntern(),
17004 .tag = (try pt.enumValueFieldIndex(type_info_tag_ty, @intFromEnum(std.builtin.TypeId.optional))).toIntern(),16980 .tag = (try pt.enumValueFieldIndex(type_info_tag_ty, @intFromEnum(std.builtin.TypeId.optional))).toIntern(),
17005 .val = try pt.intern(.{ .aggregate = .{16981 .val = (try pt.aggregateValue(optional_field_ty, &field_values)).toIntern(),
17006 .ty = optional_field_ty.toIntern(),
17007 .storage = .{ .elems = &field_values },
17008 } }),
17009 })));16982 })));
17010 },16983 },
17011 .error_set => {16984 .error_set => {
...@@ -17051,10 +17024,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai...@@ -17051,10 +17024,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
17051 // name: [:0]const u8,17024 // name: [:0]const u8,
17052 error_name_val,17025 error_name_val,
17053 };17026 };
17054 field_val.* = try pt.intern(.{ .aggregate = .{17027 field_val.* = (try pt.aggregateValue(error_field_ty, &error_field_fields)).toIntern();
17055 .ty = error_field_ty.toIntern(),
17056 .storage = .{ .elems = &error_field_fields },
17057 } });
17058 }17028 }
1705917029
17060 break :blk vals;17030 break :blk vals;
...@@ -17075,10 +17045,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai...@@ -17075,10 +17045,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
17075 .len = vals.len,17045 .len = vals.len,
17076 .child = error_field_ty.toIntern(),17046 .child = error_field_ty.toIntern(),
17077 });17047 });
17078 const new_decl_val = try pt.intern(.{ .aggregate = .{17048 const new_decl_val = (try pt.aggregateValue(array_errors_ty, vals)).toIntern();
17079 .ty = array_errors_ty.toIntern(),
17080 .storage = .{ .elems = vals },
17081 } });
17082 const manyptr_errors_ty = slice_errors_ty.slicePtrFieldType(zcu).toIntern();17049 const manyptr_errors_ty = slice_errors_ty.slicePtrFieldType(zcu).toIntern();
17083 break :v try pt.intern(.{ .slice = .{17050 break :v try pt.intern(.{ .slice = .{
17084 .ty = slice_errors_ty.toIntern(),17051 .ty = slice_errors_ty.toIntern(),
...@@ -17117,10 +17084,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai...@@ -17117,10 +17084,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
17117 return Air.internedToRef((try pt.internUnion(.{17084 return Air.internedToRef((try pt.internUnion(.{
17118 .ty = type_info_ty.toIntern(),17085 .ty = type_info_ty.toIntern(),
17119 .tag = (try pt.enumValueFieldIndex(type_info_tag_ty, @intFromEnum(std.builtin.TypeId.error_union))).toIntern(),17086 .tag = (try pt.enumValueFieldIndex(type_info_tag_ty, @intFromEnum(std.builtin.TypeId.error_union))).toIntern(),
17120 .val = try pt.intern(.{ .aggregate = .{17087 .val = (try pt.aggregateValue(error_union_field_ty, &field_values)).toIntern(),
17121 .ty = error_union_field_ty.toIntern(),
17122 .storage = .{ .elems = &field_values },
17123 } }),
17124 })));17088 })));
17125 },17089 },
17126 .@"enum" => {17090 .@"enum" => {
...@@ -17174,10 +17138,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai...@@ -17174,10 +17138,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
17174 // value: comptime_int,17138 // value: comptime_int,
17175 value_val,17139 value_val,
17176 };17140 };
17177 field_val.* = try pt.intern(.{ .aggregate = .{17141 field_val.* = (try pt.aggregateValue(enum_field_ty, &enum_field_fields)).toIntern();
17178 .ty = enum_field_ty.toIntern(),
17179 .storage = .{ .elems = &enum_field_fields },
17180 } });
17181 }17142 }
1718217143
17183 const fields_val = v: {17144 const fields_val = v: {
...@@ -17185,10 +17146,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai...@@ -17185,10 +17146,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
17185 .len = enum_field_vals.len,17146 .len = enum_field_vals.len,
17186 .child = enum_field_ty.toIntern(),17147 .child = enum_field_ty.toIntern(),
17187 });17148 });
17188 const new_decl_val = try pt.intern(.{ .aggregate = .{17149 const new_decl_val = (try pt.aggregateValue(fields_array_ty, enum_field_vals)).toIntern();
17189 .ty = fields_array_ty.toIntern(),
17190 .storage = .{ .elems = enum_field_vals },
17191 } });
17192 const slice_ty = (try pt.ptrTypeSema(.{17150 const slice_ty = (try pt.ptrTypeSema(.{
17193 .child = enum_field_ty.toIntern(),17151 .child = enum_field_ty.toIntern(),
17194 .flags = .{17152 .flags = .{
...@@ -17228,10 +17186,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai...@@ -17228,10 +17186,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
17228 return Air.internedToRef((try pt.internUnion(.{17186 return Air.internedToRef((try pt.internUnion(.{
17229 .ty = type_info_ty.toIntern(),17187 .ty = type_info_ty.toIntern(),
17230 .tag = (try pt.enumValueFieldIndex(type_info_tag_ty, @intFromEnum(std.builtin.TypeId.@"enum"))).toIntern(),17188 .tag = (try pt.enumValueFieldIndex(type_info_tag_ty, @intFromEnum(std.builtin.TypeId.@"enum"))).toIntern(),
17231 .val = try pt.intern(.{ .aggregate = .{17189 .val = (try pt.aggregateValue(type_enum_ty, &field_values)).toIntern(),
17232 .ty = type_enum_ty.toIntern(),
17233 .storage = .{ .elems = &field_values },
17234 } }),
17235 })));17190 })));
17236 },17191 },
17237 .@"union" => {17192 .@"union" => {
...@@ -17287,10 +17242,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai...@@ -17287,10 +17242,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
17287 // alignment: comptime_int,17242 // alignment: comptime_int,
17288 (try pt.intValue(.comptime_int, alignment.toByteUnits() orelse 0)).toIntern(),17243 (try pt.intValue(.comptime_int, alignment.toByteUnits() orelse 0)).toIntern(),
17289 };17244 };
17290 field_val.* = try pt.intern(.{ .aggregate = .{17245 field_val.* = (try pt.aggregateValue(union_field_ty, &union_field_fields)).toIntern();
17291 .ty = union_field_ty.toIntern(),
17292 .storage = .{ .elems = &union_field_fields },
17293 } });
17294 }17246 }
1729517247
17296 const fields_val = v: {17248 const fields_val = v: {
...@@ -17298,10 +17250,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai...@@ -17298,10 +17250,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
17298 .len = union_field_vals.len,17250 .len = union_field_vals.len,
17299 .child = union_field_ty.toIntern(),17251 .child = union_field_ty.toIntern(),
17300 });17252 });
17301 const new_decl_val = try pt.intern(.{ .aggregate = .{17253 const new_decl_val = (try pt.aggregateValue(array_fields_ty, union_field_vals)).toIntern();
17302 .ty = array_fields_ty.toIntern(),
17303 .storage = .{ .elems = union_field_vals },
17304 } });
17305 const slice_ty = (try pt.ptrTypeSema(.{17254 const slice_ty = (try pt.ptrTypeSema(.{
17306 .child = union_field_ty.toIntern(),17255 .child = union_field_ty.toIntern(),
17307 .flags = .{17256 .flags = .{
...@@ -17347,10 +17296,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai...@@ -17347,10 +17296,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
17347 return Air.internedToRef((try pt.internUnion(.{17296 return Air.internedToRef((try pt.internUnion(.{
17348 .ty = type_info_ty.toIntern(),17297 .ty = type_info_ty.toIntern(),
17349 .tag = (try pt.enumValueFieldIndex(type_info_tag_ty, @intFromEnum(std.builtin.TypeId.@"union"))).toIntern(),17298 .tag = (try pt.enumValueFieldIndex(type_info_tag_ty, @intFromEnum(std.builtin.TypeId.@"union"))).toIntern(),
17350 .val = try pt.intern(.{ .aggregate = .{17299 .val = (try pt.aggregateValue(type_union_ty, &field_values)).toIntern(),
17351 .ty = type_union_ty.toIntern(),
17352 .storage = .{ .elems = &field_values },
17353 } }),
17354 })));17300 })));
17355 },17301 },
17356 .@"struct" => {17302 .@"struct" => {
...@@ -17411,10 +17357,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai...@@ -17411,10 +17357,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
17411 // alignment: comptime_int,17357 // alignment: comptime_int,
17412 (try pt.intValue(.comptime_int, Type.fromInterned(field_ty).abiAlignment(zcu).toByteUnits() orelse 0)).toIntern(),17358 (try pt.intValue(.comptime_int, Type.fromInterned(field_ty).abiAlignment(zcu).toByteUnits() orelse 0)).toIntern(),
17413 };17359 };
17414 struct_field_val.* = try pt.intern(.{ .aggregate = .{17360 struct_field_val.* = (try pt.aggregateValue(struct_field_ty, &struct_field_fields)).toIntern();
17415 .ty = struct_field_ty.toIntern(),
17416 .storage = .{ .elems = &struct_field_fields },
17417 } });
17418 }17361 }
17419 break :fv;17362 break :fv;
17420 },17363 },
...@@ -17481,10 +17424,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai...@@ -17481,10 +17424,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
17481 // alignment: comptime_int,17424 // alignment: comptime_int,
17482 (try pt.intValue(.comptime_int, alignment.toByteUnits() orelse 0)).toIntern(),17425 (try pt.intValue(.comptime_int, alignment.toByteUnits() orelse 0)).toIntern(),
17483 };17426 };
17484 field_val.* = try pt.intern(.{ .aggregate = .{17427 field_val.* = (try pt.aggregateValue(struct_field_ty, &struct_field_fields)).toIntern();
17485 .ty = struct_field_ty.toIntern(),
17486 .storage = .{ .elems = &struct_field_fields },
17487 } });
17488 }17428 }
17489 }17429 }
1749017430
...@@ -17493,10 +17433,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai...@@ -17493,10 +17433,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
17493 .len = struct_field_vals.len,17433 .len = struct_field_vals.len,
17494 .child = struct_field_ty.toIntern(),17434 .child = struct_field_ty.toIntern(),
17495 });17435 });
17496 const new_decl_val = try pt.intern(.{ .aggregate = .{17436 const new_decl_val = (try pt.aggregateValue(array_fields_ty, struct_field_vals)).toIntern();
17497 .ty = array_fields_ty.toIntern(),
17498 .storage = .{ .elems = struct_field_vals },
17499 } });
17500 const slice_ty = (try pt.ptrTypeSema(.{17437 const slice_ty = (try pt.ptrTypeSema(.{
17501 .child = struct_field_ty.toIntern(),17438 .child = struct_field_ty.toIntern(),
17502 .flags = .{17439 .flags = .{
...@@ -17548,10 +17485,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai...@@ -17548,10 +17485,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
17548 return Air.internedToRef((try pt.internUnion(.{17485 return Air.internedToRef((try pt.internUnion(.{
17549 .ty = type_info_ty.toIntern(),17486 .ty = type_info_ty.toIntern(),
17550 .tag = (try pt.enumValueFieldIndex(type_info_tag_ty, @intFromEnum(std.builtin.TypeId.@"struct"))).toIntern(),17487 .tag = (try pt.enumValueFieldIndex(type_info_tag_ty, @intFromEnum(std.builtin.TypeId.@"struct"))).toIntern(),
17551 .val = try pt.intern(.{ .aggregate = .{17488 .val = (try pt.aggregateValue(type_struct_ty, &field_values)).toIntern(),
17552 .ty = type_struct_ty.toIntern(),
17553 .storage = .{ .elems = &field_values },
17554 } }),
17555 })));17489 })));
17556 },17490 },
17557 .@"opaque" => {17491 .@"opaque" => {
...@@ -17567,10 +17501,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai...@@ -17567,10 +17501,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
17567 return Air.internedToRef((try pt.internUnion(.{17501 return Air.internedToRef((try pt.internUnion(.{
17568 .ty = type_info_ty.toIntern(),17502 .ty = type_info_ty.toIntern(),
17569 .tag = (try pt.enumValueFieldIndex(type_info_tag_ty, @intFromEnum(std.builtin.TypeId.@"opaque"))).toIntern(),17503 .tag = (try pt.enumValueFieldIndex(type_info_tag_ty, @intFromEnum(std.builtin.TypeId.@"opaque"))).toIntern(),
17570 .val = try pt.intern(.{ .aggregate = .{17504 .val = (try pt.aggregateValue(type_opaque_ty, &field_values)).toIntern(),
17571 .ty = type_opaque_ty.toIntern(),
17572 .storage = .{ .elems = &field_values },
17573 } }),
17574 })));17505 })));
17575 },17506 },
17576 .frame => return sema.failWithUseOfAsync(block, src),17507 .frame => return sema.failWithUseOfAsync(block, src),
...@@ -17601,10 +17532,7 @@ fn typeInfoDecls(...@@ -17601,10 +17532,7 @@ fn typeInfoDecls(
17601 .len = decl_vals.items.len,17532 .len = decl_vals.items.len,
17602 .child = declaration_ty.toIntern(),17533 .child = declaration_ty.toIntern(),
17603 });17534 });
17604 const new_decl_val = try pt.intern(.{ .aggregate = .{17535 const new_decl_val = (try pt.aggregateValue(array_decl_ty, decl_vals.items)).toIntern();
17605 .ty = array_decl_ty.toIntern(),
17606 .storage = .{ .elems = decl_vals.items },
17607 } });
17608 const slice_ty = (try pt.ptrTypeSema(.{17536 const slice_ty = (try pt.ptrTypeSema(.{
17609 .child = declaration_ty.toIntern(),17537 .child = declaration_ty.toIntern(),
17610 .flags = .{17538 .flags = .{
...@@ -17679,10 +17607,7 @@ fn typeInfoNamespaceDecls(...@@ -17679,10 +17607,7 @@ fn typeInfoNamespaceDecls(
17679 // name: [:0]const u8,17607 // name: [:0]const u8,
17680 name_val,17608 name_val,
17681 };17609 };
17682 try decl_vals.append(try pt.intern(.{ .aggregate = .{17610 try decl_vals.append((try pt.aggregateValue(declaration_ty, &fields)).toIntern());
17683 .ty = declaration_ty.toIntern(),
17684 .storage = .{ .elems = &fields },
17685 } }));
17686 }17611 }
17687}17612}
1768817613
src/codegen/spirv/CodeGen.zig+1-1
...@@ -779,7 +779,7 @@ fn constant(cg: *CodeGen, ty: Type, val: Value, repr: Repr) Error!Id {...@@ -779,7 +779,7 @@ fn constant(cg: *CodeGen, ty: Type, val: Value, repr: Repr) Error!Id {
779 const ip = &zcu.intern_pool;779 const ip = &zcu.intern_pool;
780780
781 log.debug("lowering constant: ty = {f}, val = {f}, key = {s}", .{ ty.fmt(pt), val.fmtValue(pt), @tagName(ip.indexToKey(val.toIntern())) });781 log.debug("lowering constant: ty = {f}, val = {f}, key = {s}", .{ ty.fmt(pt), val.fmtValue(pt), @tagName(ip.indexToKey(val.toIntern())) });
782 if (val.isUndefDeep(zcu)) {782 if (val.isUndef(zcu)) {
783 return cg.module.constUndef(result_ty_id);783 return cg.module.constUndef(result_ty_id);
784 }784 }
785785