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