aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2021-04-13 12:38:06 -0700
committerAndrew Kelley <andrew@ziglang.org>2021-04-15 19:06:39 -0700
commit9088d40e838b62c8f8ea0e6e68616b72e7704b27 (patch)
tree7434f7064b0f1bd4fada91c3969c65eb5e437265
parent0170a242bb99e96fcb127e26e1b2fcbe5a19c4ee (diff)
downloadzig-9088d40e838b62c8f8ea0e6e68616b72e7704b27.tar.gz
zig-9088d40e838b62c8f8ea0e6e68616b72e7704b27.zip
stage2: rename zir to Zir
since it now uses top level fields
-rw-r--r--src/AstGen.zig460
-rw-r--r--src/Module.zig2
-rw-r--r--src/Sema.zig2
-rw-r--r--src/Zir.zig (renamed from src/zir.zig)0
-rw-r--r--src/main.zig1
-rw-r--r--src/test.zig1
6 files changed, 232 insertions, 234 deletions
diff --git a/src/AstGen.zig b/src/AstGen.zig
index 8bd71b8228..bea4df82ce 100644
--- a/src/AstGen.zig
+++ b/src/AstGen.zig
@@ -15,7 +15,7 @@ const ArrayListUnmanaged = std.ArrayListUnmanaged;
const Value = @import("value.zig").Value;
const Type = @import("type.zig").Type;
const TypedValue = @import("TypedValue.zig");
-const zir = @import("zir.zig");
+const Zir = @import("Zir.zig");
const Module = @import("Module.zig");
const trace = @import("tracy.zig").trace;
const Scope = Module.Scope;
@@ -25,12 +25,12 @@ const Decl = Module.Decl;
const LazySrcLoc = Module.LazySrcLoc;
const BuiltinFn = @import("BuiltinFn.zig");
-instructions: std.MultiArrayList(zir.Inst) = .{},
+instructions: std.MultiArrayList(Zir.Inst) = .{},
string_bytes: ArrayListUnmanaged(u8) = .{},
extra: ArrayListUnmanaged(u32) = .{},
-/// The end of special indexes. `zir.Inst.Ref` subtracts against this number to convert
-/// to `zir.Inst.Index`. The default here is correct if there are 0 parameters.
-ref_start_index: u32 = zir.Inst.Ref.typed_value_map.len,
+/// The end of special indexes. `Zir.Inst.Ref` subtracts against this number to convert
+/// to `Zir.Inst.Index`. The default here is correct if there are 0 parameters.
+ref_start_index: u32 = Zir.Inst.Ref.typed_value_map.len,
mod: *Module,
decl: *Decl,
arena: *Allocator,
@@ -65,24 +65,24 @@ pub fn addExtraAssumeCapacity(astgen: *AstGen, extra: anytype) u32 {
inline for (fields) |field| {
astgen.extra.appendAssumeCapacity(switch (field.field_type) {
u32 => @field(extra, field.name),
- zir.Inst.Ref => @enumToInt(@field(extra, field.name)),
+ Zir.Inst.Ref => @enumToInt(@field(extra, field.name)),
else => @compileError("bad field type"),
});
}
return result;
}
-pub fn appendRefs(astgen: *AstGen, refs: []const zir.Inst.Ref) !void {
+pub fn appendRefs(astgen: *AstGen, refs: []const Zir.Inst.Ref) !void {
const coerced = @bitCast([]const u32, refs);
return astgen.extra.appendSlice(astgen.mod.gpa, coerced);
}
-pub fn appendRefsAssumeCapacity(astgen: *AstGen, refs: []const zir.Inst.Ref) void {
+pub fn appendRefsAssumeCapacity(astgen: *AstGen, refs: []const Zir.Inst.Ref) void {
const coerced = @bitCast([]const u32, refs);
astgen.extra.appendSliceAssumeCapacity(coerced);
}
-pub fn refIsNoReturn(astgen: AstGen, inst_ref: zir.Inst.Ref) bool {
+pub fn refIsNoReturn(astgen: AstGen, inst_ref: Zir.Inst.Ref) bool {
if (inst_ref == .unreachable_value) return true;
if (astgen.refToIndex(inst_ref)) |inst_index| {
return astgen.instructions.items(.tag)[inst_index].isNoReturn();
@@ -90,11 +90,11 @@ pub fn refIsNoReturn(astgen: AstGen, inst_ref: zir.Inst.Ref) bool {
return false;
}
-pub fn indexToRef(astgen: AstGen, inst: zir.Inst.Index) zir.Inst.Ref {
- return @intToEnum(zir.Inst.Ref, astgen.ref_start_index + inst);
+pub fn indexToRef(astgen: AstGen, inst: Zir.Inst.Index) Zir.Inst.Ref {
+ return @intToEnum(Zir.Inst.Ref, astgen.ref_start_index + inst);
}
-pub fn refToIndex(astgen: AstGen, inst: zir.Inst.Ref) ?zir.Inst.Index {
+pub fn refToIndex(astgen: AstGen, inst: Zir.Inst.Ref) ?Zir.Inst.Index {
const ref_int = @enumToInt(inst);
if (ref_int >= astgen.ref_start_index) {
return ref_int - astgen.ref_start_index;
@@ -124,16 +124,16 @@ pub const ResultLoc = union(enum) {
/// may be treated as `none` instead.
none_or_ref,
/// The expression will be coerced into this type, but it will be evaluated as an rvalue.
- ty: zir.Inst.Ref,
+ ty: Zir.Inst.Ref,
/// The expression must store its result into this typed pointer. The result instruction
/// from the expression must be ignored.
- ptr: zir.Inst.Ref,
+ ptr: Zir.Inst.Ref,
/// The expression must store its result into this allocation, which has an inferred type.
/// The result instruction from the expression must be ignored.
/// Always an instruction with tag `alloc_inferred`.
- inferred_ptr: zir.Inst.Ref,
+ inferred_ptr: Zir.Inst.Ref,
/// There is a pointer for the expression to store its result into, however, its type
- /// is inferred based on peer type resolution for a `zir.Inst.Block`.
+ /// is inferred based on peer type resolution for a `Zir.Inst.Block`.
/// The result instruction from the expression must be ignored.
block_ptr: *GenZir,
@@ -188,11 +188,11 @@ pub const ResultLoc = union(enum) {
}
};
-pub fn typeExpr(gz: *GenZir, scope: *Scope, type_node: ast.Node.Index) InnerError!zir.Inst.Ref {
+pub fn typeExpr(gz: *GenZir, scope: *Scope, type_node: ast.Node.Index) InnerError!Zir.Inst.Ref {
return expr(gz, scope, .{ .ty = .type_type }, type_node);
}
-fn lvalExpr(gz: *GenZir, scope: *Scope, node: ast.Node.Index) InnerError!zir.Inst.Ref {
+fn lvalExpr(gz: *GenZir, scope: *Scope, node: ast.Node.Index) InnerError!Zir.Inst.Ref {
const tree = gz.tree();
const node_tags = tree.nodes.items(.tag);
const main_tokens = tree.nodes.items(.main_token);
@@ -386,7 +386,7 @@ fn lvalExpr(gz: *GenZir, scope: *Scope, node: ast.Node.Index) InnerError!zir.Ins
/// When `rl` is discard, ptr, inferred_ptr, or inferred_ptr, the
/// result instruction can be used to inspect whether it is isNoReturn() but that is it,
/// it must otherwise not be used.
-pub fn expr(gz: *GenZir, scope: *Scope, rl: ResultLoc, node: ast.Node.Index) InnerError!zir.Inst.Ref {
+pub fn expr(gz: *GenZir, scope: *Scope, rl: ResultLoc, node: ast.Node.Index) InnerError!Zir.Inst.Ref {
const mod = gz.astgen.mod;
const tree = gz.tree();
const main_tokens = tree.nodes.items(.main_token);
@@ -551,7 +551,7 @@ pub fn expr(gz: *GenZir, scope: *Scope, rl: ResultLoc, node: ast.Node.Index) Inn
.src_node = gz.astgen.decl.nodeIndexToRelative(node),
} },
});
- return zir.Inst.Ref.unreachable_value;
+ return Zir.Inst.Ref.unreachable_value;
},
.@"return" => return ret(gz, scope, node),
.field_access => return fieldAccess(gz, scope, rl, node),
@@ -570,7 +570,7 @@ pub fn expr(gz: *GenZir, scope: *Scope, rl: ResultLoc, node: ast.Node.Index) Inn
.slice_open => {
const lhs = try expr(gz, scope, .ref, node_datas[node].lhs);
const start = try expr(gz, scope, .{ .ty = .usize_type }, node_datas[node].rhs);
- const result = try gz.addPlNode(.slice_start, node, zir.Inst.SliceStart{
+ const result = try gz.addPlNode(.slice_start, node, Zir.Inst.SliceStart{
.lhs = lhs,
.start = start,
});
@@ -581,7 +581,7 @@ pub fn expr(gz: *GenZir, scope: *Scope, rl: ResultLoc, node: ast.Node.Index) Inn
const extra = tree.extraData(node_datas[node].rhs, ast.Node.Slice);
const start = try expr(gz, scope, .{ .ty = .usize_type }, extra.start);
const end = try expr(gz, scope, .{ .ty = .usize_type }, extra.end);
- const result = try gz.addPlNode(.slice_end, node, zir.Inst.SliceEnd{
+ const result = try gz.addPlNode(.slice_end, node, Zir.Inst.SliceEnd{
.lhs = lhs,
.start = start,
.end = end,
@@ -594,7 +594,7 @@ pub fn expr(gz: *GenZir, scope: *Scope, rl: ResultLoc, node: ast.Node.Index) Inn
const start = try expr(gz, scope, .{ .ty = .usize_type }, extra.start);
const end = try expr(gz, scope, .{ .ty = .usize_type }, extra.end);
const sentinel = try expr(gz, scope, .{ .ty = .usize_type }, extra.sentinel);
- const result = try gz.addPlNode(.slice_sentinel, node, zir.Inst.SliceSentinel{
+ const result = try gz.addPlNode(.slice_sentinel, node, Zir.Inst.SliceSentinel{
.lhs = lhs,
.start = start,
.end = end,
@@ -803,7 +803,7 @@ pub fn structInitExpr(
rl: ResultLoc,
node: ast.Node.Index,
struct_init: ast.full.StructInit,
-) InnerError!zir.Inst.Ref {
+) InnerError!Zir.Inst.Ref {
const tree = gz.tree();
const astgen = gz.astgen;
const mod = astgen.mod;
@@ -823,14 +823,14 @@ pub fn structInitExpr(
.none, .none_or_ref => return mod.failNode(scope, node, "TODO implement structInitExpr none", .{}),
.ref => unreachable, // struct literal not valid as l-value
.ty => |ty_inst| {
- const fields_list = try gpa.alloc(zir.Inst.StructInit.Item, struct_init.ast.fields.len);
+ const fields_list = try gpa.alloc(Zir.Inst.StructInit.Item, struct_init.ast.fields.len);
defer gpa.free(fields_list);
for (struct_init.ast.fields) |field_init, i| {
const name_token = tree.firstToken(field_init) - 2;
const str_index = try gz.identAsString(name_token);
- const field_ty_inst = try gz.addPlNode(.field_type, field_init, zir.Inst.FieldType{
+ const field_ty_inst = try gz.addPlNode(.field_type, field_init, Zir.Inst.FieldType{
.container_type = ty_inst,
.name_start = str_index,
});
@@ -839,31 +839,31 @@ pub fn structInitExpr(
.init = try expr(gz, scope, .{ .ty = field_ty_inst }, field_init),
};
}
- const init_inst = try gz.addPlNode(.struct_init, node, zir.Inst.StructInit{
+ const init_inst = try gz.addPlNode(.struct_init, node, Zir.Inst.StructInit{
.fields_len = @intCast(u32, fields_list.len),
});
try astgen.extra.ensureCapacity(gpa, astgen.extra.items.len +
- fields_list.len * @typeInfo(zir.Inst.StructInit.Item).Struct.fields.len);
+ fields_list.len * @typeInfo(Zir.Inst.StructInit.Item).Struct.fields.len);
for (fields_list) |field| {
_ = gz.astgen.addExtraAssumeCapacity(field);
}
return rvalue(gz, scope, rl, init_inst, node);
},
.ptr => |ptr_inst| {
- const field_ptr_list = try gpa.alloc(zir.Inst.Index, struct_init.ast.fields.len);
+ const field_ptr_list = try gpa.alloc(Zir.Inst.Index, struct_init.ast.fields.len);
defer gpa.free(field_ptr_list);
for (struct_init.ast.fields) |field_init, i| {
const name_token = tree.firstToken(field_init) - 2;
const str_index = try gz.identAsString(name_token);
- const field_ptr = try gz.addPlNode(.field_ptr, field_init, zir.Inst.Field{
+ const field_ptr = try gz.addPlNode(.field_ptr, field_init, Zir.Inst.Field{
.lhs = ptr_inst,
.field_name_start = str_index,
});
field_ptr_list[i] = astgen.refToIndex(field_ptr).?;
_ = try expr(gz, scope, .{ .ptr = field_ptr }, field_init);
}
- const validate_inst = try gz.addPlNode(.validate_struct_init_ptr, node, zir.Inst.Block{
+ const validate_inst = try gz.addPlNode(.validate_struct_init_ptr, node, Zir.Inst.Block{
.body_len = @intCast(u32, field_ptr_list.len),
});
try astgen.extra.appendSlice(gpa, field_ptr_list);
@@ -883,7 +883,7 @@ pub fn comptimeExpr(
scope: *Scope,
rl: ResultLoc,
node: ast.Node.Index,
-) InnerError!zir.Inst.Ref {
+) InnerError!Zir.Inst.Ref {
const prev_force_comptime = gz.force_comptime;
gz.force_comptime = true;
const result = try expr(gz, scope, rl, node);
@@ -891,7 +891,7 @@ pub fn comptimeExpr(
return result;
}
-fn breakExpr(parent_gz: *GenZir, parent_scope: *Scope, node: ast.Node.Index) InnerError!zir.Inst.Ref {
+fn breakExpr(parent_gz: *GenZir, parent_scope: *Scope, node: ast.Node.Index) InnerError!Zir.Inst.Ref {
const mod = parent_gz.astgen.mod;
const tree = parent_gz.tree();
const node_datas = tree.nodes.items(.data);
@@ -922,7 +922,7 @@ fn breakExpr(parent_gz: *GenZir, parent_scope: *Scope, node: ast.Node.Index) Inn
if (rhs == 0) {
_ = try parent_gz.addBreak(.@"break", block_inst, .void_value);
- return zir.Inst.Ref.unreachable_value;
+ return Zir.Inst.Ref.unreachable_value;
}
block_gz.break_count += 1;
const prev_rvalue_rl_count = block_gz.rvalue_rl_count;
@@ -943,7 +943,7 @@ fn breakExpr(parent_gz: *GenZir, parent_scope: *Scope, node: ast.Node.Index) Inn
try block_gz.labeled_store_to_block_ptr_list.append(mod.gpa, store_inst);
}
}
- return zir.Inst.Ref.unreachable_value;
+ return Zir.Inst.Ref.unreachable_value;
},
.local_val => scope = scope.cast(Scope.LocalVal).?.parent,
.local_ptr => scope = scope.cast(Scope.LocalPtr).?.parent,
@@ -957,7 +957,7 @@ fn breakExpr(parent_gz: *GenZir, parent_scope: *Scope, node: ast.Node.Index) Inn
}
}
-fn continueExpr(parent_gz: *GenZir, parent_scope: *Scope, node: ast.Node.Index) InnerError!zir.Inst.Ref {
+fn continueExpr(parent_gz: *GenZir, parent_scope: *Scope, node: ast.Node.Index) InnerError!Zir.Inst.Ref {
const mod = parent_gz.astgen.mod;
const tree = parent_gz.tree();
const node_datas = tree.nodes.items(.data);
@@ -988,7 +988,7 @@ fn continueExpr(parent_gz: *GenZir, parent_scope: *Scope, node: ast.Node.Index)
// TODO emit a break_inline if the loop being continued is inline
_ = try parent_gz.addBreak(.@"break", continue_block, .void_value);
- return zir.Inst.Ref.unreachable_value;
+ return Zir.Inst.Ref.unreachable_value;
},
.local_val => scope = scope.cast(Scope.LocalVal).?.parent,
.local_ptr => scope = scope.cast(Scope.LocalPtr).?.parent,
@@ -1008,7 +1008,7 @@ pub fn blockExpr(
rl: ResultLoc,
block_node: ast.Node.Index,
statements: []const ast.Node.Index,
-) InnerError!zir.Inst.Ref {
+) InnerError!Zir.Inst.Ref {
const tracy = trace(@src());
defer tracy.end();
@@ -1075,8 +1075,8 @@ fn labeledBlockExpr(
rl: ResultLoc,
block_node: ast.Node.Index,
statements: []const ast.Node.Index,
- zir_tag: zir.Inst.Tag,
-) InnerError!zir.Inst.Ref {
+ zir_tag: Zir.Inst.Tag,
+) InnerError!Zir.Inst.Ref {
const tracy = trace(@src());
defer tracy.end();
@@ -1520,8 +1520,8 @@ fn varDecl(
};
defer init_scope.instructions.deinit(gpa);
- var resolve_inferred_alloc: zir.Inst.Ref = .none;
- var opt_type_inst: zir.Inst.Ref = .none;
+ var resolve_inferred_alloc: Zir.Inst.Ref = .none;
+ var opt_type_inst: Zir.Inst.Ref = .none;
if (var_decl.ast.type_node != 0) {
const type_inst = try typeExpr(gz, &init_scope.base, var_decl.ast.type_node);
opt_type_inst = type_inst;
@@ -1593,10 +1593,10 @@ fn varDecl(
return &sub_scope.base;
},
.keyword_var => {
- var resolve_inferred_alloc: zir.Inst.Ref = .none;
+ var resolve_inferred_alloc: Zir.Inst.Ref = .none;
const var_data: struct {
result_loc: ResultLoc,
- alloc: zir.Inst.Ref,
+ alloc: Zir.Inst.Ref,
} = if (var_decl.ast.type_node != 0) a: {
const type_inst = try typeExpr(gz, scope, var_decl.ast.type_node);
@@ -1649,7 +1649,7 @@ fn assignOp(
gz: *GenZir,
scope: *Scope,
infix_node: ast.Node.Index,
- op_inst_tag: zir.Inst.Tag,
+ op_inst_tag: Zir.Inst.Tag,
) InnerError!void {
const tree = gz.tree();
const node_datas = tree.nodes.items(.data);
@@ -1659,14 +1659,14 @@ fn assignOp(
const lhs_type = try gz.addUnNode(.typeof, lhs, infix_node);
const rhs = try expr(gz, scope, .{ .ty = lhs_type }, node_datas[infix_node].rhs);
- const result = try gz.addPlNode(op_inst_tag, infix_node, zir.Inst.Bin{
+ const result = try gz.addPlNode(op_inst_tag, infix_node, Zir.Inst.Bin{
.lhs = lhs,
.rhs = rhs,
});
_ = try gz.addBin(.store, lhs_ptr, result);
}
-fn boolNot(gz: *GenZir, scope: *Scope, rl: ResultLoc, node: ast.Node.Index) InnerError!zir.Inst.Ref {
+fn boolNot(gz: *GenZir, scope: *Scope, rl: ResultLoc, node: ast.Node.Index) InnerError!Zir.Inst.Ref {
const tree = gz.tree();
const node_datas = tree.nodes.items(.data);
@@ -1675,7 +1675,7 @@ fn boolNot(gz: *GenZir, scope: *Scope, rl: ResultLoc, node: ast.Node.Index) Inne
return rvalue(gz, scope, rl, result, node);
}
-fn bitNot(gz: *GenZir, scope: *Scope, rl: ResultLoc, node: ast.Node.Index) InnerError!zir.Inst.Ref {
+fn bitNot(gz: *GenZir, scope: *Scope, rl: ResultLoc, node: ast.Node.Index) InnerError!Zir.Inst.Ref {
const tree = gz.tree();
const node_datas = tree.nodes.items(.data);
@@ -1689,8 +1689,8 @@ fn negation(
scope: *Scope,
rl: ResultLoc,
node: ast.Node.Index,
- tag: zir.Inst.Tag,
-) InnerError!zir.Inst.Ref {
+ tag: Zir.Inst.Tag,
+) InnerError!Zir.Inst.Ref {
const tree = gz.tree();
const node_datas = tree.nodes.items(.data);
@@ -1705,7 +1705,7 @@ fn ptrType(
rl: ResultLoc,
node: ast.Node.Index,
ptr_info: ast.full.PtrType,
-) InnerError!zir.Inst.Ref {
+) InnerError!Zir.Inst.Ref {
const tree = gz.tree();
const elem_type = try typeExpr(gz, scope, ptr_info.ast.child_type);
@@ -1727,10 +1727,10 @@ fn ptrType(
return rvalue(gz, scope, rl, result, node);
}
- var sentinel_ref: zir.Inst.Ref = .none;
- var align_ref: zir.Inst.Ref = .none;
- var bit_start_ref: zir.Inst.Ref = .none;
- var bit_end_ref: zir.Inst.Ref = .none;
+ var sentinel_ref: Zir.Inst.Ref = .none;
+ var align_ref: Zir.Inst.Ref = .none;
+ var bit_start_ref: Zir.Inst.Ref = .none;
+ var bit_end_ref: Zir.Inst.Ref = .none;
var trailing_count: u32 = 0;
if (ptr_info.ast.sentinel != 0) {
@@ -1752,9 +1752,9 @@ fn ptrType(
try gz.instructions.ensureCapacity(gpa, gz.instructions.items.len + 1);
try gz.astgen.instructions.ensureCapacity(gpa, gz.astgen.instructions.len + 1);
try gz.astgen.extra.ensureCapacity(gpa, gz.astgen.extra.items.len +
- @typeInfo(zir.Inst.PtrType).Struct.fields.len + trailing_count);
+ @typeInfo(Zir.Inst.PtrType).Struct.fields.len + trailing_count);
- const payload_index = gz.astgen.addExtraAssumeCapacity(zir.Inst.PtrType{ .elem_type = elem_type });
+ const payload_index = gz.astgen.addExtraAssumeCapacity(Zir.Inst.PtrType{ .elem_type = elem_type });
if (sentinel_ref != .none) {
gz.astgen.extra.appendAssumeCapacity(@enumToInt(sentinel_ref));
}
@@ -1766,7 +1766,7 @@ fn ptrType(
gz.astgen.extra.appendAssumeCapacity(@enumToInt(bit_end_ref));
}
- const new_index = @intCast(zir.Inst.Index, gz.astgen.instructions.len);
+ const new_index = @intCast(Zir.Inst.Index, gz.astgen.instructions.len);
const result = gz.astgen.indexToRef(new_index);
gz.astgen.instructions.appendAssumeCapacity(.{ .tag = .ptr_type, .data = .{
.ptr_type = .{
@@ -1787,7 +1787,7 @@ fn ptrType(
return rvalue(gz, scope, rl, result, node);
}
-fn arrayType(gz: *GenZir, scope: *Scope, rl: ResultLoc, node: ast.Node.Index) !zir.Inst.Ref {
+fn arrayType(gz: *GenZir, scope: *Scope, rl: ResultLoc, node: ast.Node.Index) !Zir.Inst.Ref {
const tree = gz.tree();
const node_datas = tree.nodes.items(.data);
@@ -1799,7 +1799,7 @@ fn arrayType(gz: *GenZir, scope: *Scope, rl: ResultLoc, node: ast.Node.Index) !z
return rvalue(gz, scope, rl, result, node);
}
-fn arrayTypeSentinel(gz: *GenZir, scope: *Scope, rl: ResultLoc, node: ast.Node.Index) !zir.Inst.Ref {
+fn arrayTypeSentinel(gz: *GenZir, scope: *Scope, rl: ResultLoc, node: ast.Node.Index) !Zir.Inst.Ref {
const tree = gz.tree();
const node_datas = tree.nodes.items(.data);
const extra = tree.extraData(node_datas[node].rhs, ast.Node.ArrayTypeSentinel);
@@ -1818,10 +1818,10 @@ pub fn structDeclInner(
scope: *Scope,
node: ast.Node.Index,
container_decl: ast.full.ContainerDecl,
- tag: zir.Inst.Tag,
-) InnerError!zir.Inst.Ref {
+ tag: Zir.Inst.Tag,
+) InnerError!Zir.Inst.Ref {
if (container_decl.ast.members.len == 0) {
- return gz.addPlNode(tag, node, zir.Inst.StructDecl{ .fields_len = 0, .body_len = 0 });
+ return gz.addPlNode(tag, node, Zir.Inst.StructDecl{ .fields_len = 0, .body_len = 0 });
}
const astgen = gz.astgen;
@@ -1891,7 +1891,7 @@ pub fn structDeclInner(
field_index += 1;
}
if (field_index == 0) {
- return gz.addPlNode(tag, node, zir.Inst.StructDecl{ .fields_len = 0, .body_len = 0 });
+ return gz.addPlNode(tag, node, Zir.Inst.StructDecl{ .fields_len = 0, .body_len = 0 });
}
const empty_slot_count = 16 - (field_index % 16);
cur_bit_bag >>= @intCast(u5, empty_slot_count * 2);
@@ -1901,11 +1901,11 @@ pub fn structDeclInner(
_ = try block_scope.addBreak(.break_inline, decl_inst, .void_value);
try astgen.extra.ensureCapacity(gpa, astgen.extra.items.len +
- @typeInfo(zir.Inst.StructDecl).Struct.fields.len +
+ @typeInfo(Zir.Inst.StructDecl).Struct.fields.len +
bit_bag.items.len + 1 + fields_data.items.len +
block_scope.instructions.items.len);
const zir_datas = astgen.instructions.items(.data);
- zir_datas[decl_inst].pl_node.payload_index = astgen.addExtraAssumeCapacity(zir.Inst.StructDecl{
+ zir_datas[decl_inst].pl_node.payload_index = astgen.addExtraAssumeCapacity(Zir.Inst.StructDecl{
.body_len = @intCast(u32, block_scope.instructions.items.len),
.fields_len = @intCast(u32, field_index),
});
@@ -1922,7 +1922,7 @@ fn containerDecl(
rl: ResultLoc,
node: ast.Node.Index,
container_decl: ast.full.ContainerDecl,
-) InnerError!zir.Inst.Ref {
+) InnerError!Zir.Inst.Ref {
const astgen = gz.astgen;
const mod = astgen.mod;
const gpa = mod.gpa;
@@ -1933,7 +1933,7 @@ fn containerDecl(
// We must not create any types until Sema. Here the goal is only to generate
// ZIR for all the field types, alignments, and default value expressions.
- const arg_inst: zir.Inst.Ref = if (container_decl.ast.arg != 0)
+ const arg_inst: Zir.Inst.Ref = if (container_decl.ast.arg != 0)
try comptimeExpr(gz, scope, .{ .ty = .type_type }, container_decl.ast.arg)
else
.none;
@@ -1941,10 +1941,10 @@ fn containerDecl(
switch (token_tags[container_decl.ast.main_token]) {
.keyword_struct => {
const tag = if (container_decl.layout_token) |t| switch (token_tags[t]) {
- .keyword_packed => zir.Inst.Tag.struct_decl_packed,
- .keyword_extern => zir.Inst.Tag.struct_decl_extern,
+ .keyword_packed => Zir.Inst.Tag.struct_decl_packed,
+ .keyword_extern => Zir.Inst.Tag.struct_decl_extern,
else => unreachable,
- } else zir.Inst.Tag.struct_decl;
+ } else Zir.Inst.Tag.struct_decl;
assert(arg_inst == .none);
@@ -2123,12 +2123,12 @@ fn containerDecl(
// In this case we must generate ZIR code for the tag values, similar to
// how structs are handled above. The new anonymous Decl will be created in
// Sema, not AstGen.
- const tag: zir.Inst.Tag = if (counts.nonexhaustive_node == 0)
+ const tag: Zir.Inst.Tag = if (counts.nonexhaustive_node == 0)
.enum_decl
else
.enum_decl_nonexhaustive;
if (counts.total_fields == 0) {
- return gz.addPlNode(tag, node, zir.Inst.EnumDecl{
+ return gz.addPlNode(tag, node, Zir.Inst.EnumDecl{
.tag_type = arg_inst,
.fields_len = 0,
.body_len = 0,
@@ -2194,11 +2194,11 @@ fn containerDecl(
_ = try block_scope.addBreak(.break_inline, decl_inst, .void_value);
try astgen.extra.ensureCapacity(gpa, astgen.extra.items.len +
- @typeInfo(zir.Inst.EnumDecl).Struct.fields.len +
+ @typeInfo(Zir.Inst.EnumDecl).Struct.fields.len +
bit_bag.items.len + 1 + fields_data.items.len +
block_scope.instructions.items.len);
const zir_datas = astgen.instructions.items(.data);
- zir_datas[decl_inst].pl_node.payload_index = astgen.addExtraAssumeCapacity(zir.Inst.EnumDecl{
+ zir_datas[decl_inst].pl_node.payload_index = astgen.addExtraAssumeCapacity(Zir.Inst.EnumDecl{
.tag_type = arg_inst,
.body_len = @intCast(u32, block_scope.instructions.items.len),
.fields_len = @intCast(u32, field_index),
@@ -2222,7 +2222,7 @@ fn errorSetDecl(
scope: *Scope,
rl: ResultLoc,
node: ast.Node.Index,
-) InnerError!zir.Inst.Ref {
+) InnerError!Zir.Inst.Ref {
const astgen = gz.astgen;
const mod = astgen.mod;
const tree = gz.tree();
@@ -2289,12 +2289,12 @@ fn orelseCatchExpr(
rl: ResultLoc,
node: ast.Node.Index,
lhs: ast.Node.Index,
- cond_op: zir.Inst.Tag,
- unwrap_op: zir.Inst.Tag,
- unwrap_code_op: zir.Inst.Tag,
+ cond_op: Zir.Inst.Tag,
+ unwrap_op: Zir.Inst.Tag,
+ unwrap_code_op: Zir.Inst.Tag,
rhs: ast.Node.Index,
payload_token: ?ast.TokenIndex,
-) InnerError!zir.Inst.Ref {
+) InnerError!Zir.Inst.Ref {
const mod = parent_gz.astgen.mod;
const tree = parent_gz.tree();
@@ -2408,16 +2408,16 @@ fn finishThenElseBlock(
block_scope: *GenZir,
then_scope: *GenZir,
else_scope: *GenZir,
- condbr: zir.Inst.Index,
- cond: zir.Inst.Ref,
+ condbr: Zir.Inst.Index,
+ cond: Zir.Inst.Ref,
then_src: ast.Node.Index,
else_src: ast.Node.Index,
- then_result: zir.Inst.Ref,
- else_result: zir.Inst.Ref,
- main_block: zir.Inst.Index,
- then_break_block: zir.Inst.Index,
- break_tag: zir.Inst.Tag,
-) InnerError!zir.Inst.Ref {
+ then_result: Zir.Inst.Ref,
+ else_result: Zir.Inst.Ref,
+ main_block: Zir.Inst.Index,
+ then_break_block: Zir.Inst.Index,
+ break_tag: Zir.Inst.Tag,
+) InnerError!Zir.Inst.Ref {
// We now have enough information to decide whether the result instruction should
// be communicated via result location pointer or break instructions.
const strat = rl.strategy(block_scope);
@@ -2475,7 +2475,7 @@ pub fn fieldAccess(
scope: *Scope,
rl: ResultLoc,
node: ast.Node.Index,
-) InnerError!zir.Inst.Ref {
+) InnerError!Zir.Inst.Ref {
const astgen = gz.astgen;
const mod = astgen.mod;
const tree = gz.tree();
@@ -2487,11 +2487,11 @@ pub fn fieldAccess(
const field_ident = dot_token + 1;
const str_index = try gz.identAsString(field_ident);
switch (rl) {
- .ref => return gz.addPlNode(.field_ptr, node, zir.Inst.Field{
+ .ref => return gz.addPlNode(.field_ptr, node, Zir.Inst.Field{
.lhs = try expr(gz, scope, .ref, object_node),
.field_name_start = str_index,
}),
- else => return rvalue(gz, scope, rl, try gz.addPlNode(.field_val, node, zir.Inst.Field{
+ else => return rvalue(gz, scope, rl, try gz.addPlNode(.field_val, node, Zir.Inst.Field{
.lhs = try expr(gz, scope, .none_or_ref, object_node),
.field_name_start = str_index,
}), node),
@@ -2503,7 +2503,7 @@ fn arrayAccess(
scope: *Scope,
rl: ResultLoc,
node: ast.Node.Index,
-) InnerError!zir.Inst.Ref {
+) InnerError!Zir.Inst.Ref {
const tree = gz.tree();
const main_tokens = tree.nodes.items(.main_token);
const node_datas = tree.nodes.items(.data);
@@ -2526,12 +2526,12 @@ fn simpleBinOp(
scope: *Scope,
rl: ResultLoc,
node: ast.Node.Index,
- op_inst_tag: zir.Inst.Tag,
-) InnerError!zir.Inst.Ref {
+ op_inst_tag: Zir.Inst.Tag,
+) InnerError!Zir.Inst.Ref {
const tree = gz.tree();
const node_datas = tree.nodes.items(.data);
- const result = try gz.addPlNode(op_inst_tag, node, zir.Inst.Bin{
+ const result = try gz.addPlNode(op_inst_tag, node, Zir.Inst.Bin{
.lhs = try expr(gz, scope, .none, node_datas[node].lhs),
.rhs = try expr(gz, scope, .none, node_datas[node].rhs),
});
@@ -2544,8 +2544,8 @@ fn simpleStrTok(
rl: ResultLoc,
ident_token: ast.TokenIndex,
node: ast.Node.Index,
- op_inst_tag: zir.Inst.Tag,
-) InnerError!zir.Inst.Ref {
+ op_inst_tag: Zir.Inst.Tag,
+) InnerError!Zir.Inst.Ref {
const str_index = try gz.identAsString(ident_token);
const result = try gz.addStrTok(op_inst_tag, str_index, ident_token);
return rvalue(gz, scope, rl, result, node);
@@ -2556,8 +2556,8 @@ fn boolBinOp(
scope: *Scope,
rl: ResultLoc,
node: ast.Node.Index,
- zir_tag: zir.Inst.Tag,
-) InnerError!zir.Inst.Ref {
+ zir_tag: Zir.Inst.Tag,
+) InnerError!Zir.Inst.Ref {
const node_datas = gz.tree().nodes.items(.data);
const lhs = try expr(gz, scope, .{ .ty = .bool_type }, node_datas[node].lhs);
@@ -2583,7 +2583,7 @@ fn ifExpr(
rl: ResultLoc,
node: ast.Node.Index,
if_full: ast.full.If,
-) InnerError!zir.Inst.Ref {
+) InnerError!Zir.Inst.Ref {
const mod = parent_gz.astgen.mod;
var block_scope: GenZir = .{
@@ -2640,7 +2640,7 @@ fn ifExpr(
const else_node = if_full.ast.else_expr;
const else_info: struct {
src: ast.Node.Index,
- result: zir.Inst.Ref,
+ result: Zir.Inst.Ref,
} = if (else_node != 0) blk: {
block_scope.break_count += 1;
const sub_scope = &else_scope.base;
@@ -2674,19 +2674,19 @@ fn ifExpr(
}
fn setCondBrPayload(
- condbr: zir.Inst.Index,
- cond: zir.Inst.Ref,
+ condbr: Zir.Inst.Index,
+ cond: Zir.Inst.Ref,
then_scope: *GenZir,
else_scope: *GenZir,
) !void {
const astgen = then_scope.astgen;
try astgen.extra.ensureCapacity(astgen.mod.gpa, astgen.extra.items.len +
- @typeInfo(zir.Inst.CondBr).Struct.fields.len +
+ @typeInfo(Zir.Inst.CondBr).Struct.fields.len +
then_scope.instructions.items.len + else_scope.instructions.items.len);
const zir_datas = astgen.instructions.items(.data);
- zir_datas[condbr].pl_node.payload_index = astgen.addExtraAssumeCapacity(zir.Inst.CondBr{
+ zir_datas[condbr].pl_node.payload_index = astgen.addExtraAssumeCapacity(Zir.Inst.CondBr{
.condition = cond,
.then_body_len = @intCast(u32, then_scope.instructions.items.len),
.else_body_len = @intCast(u32, else_scope.instructions.items.len),
@@ -2697,19 +2697,19 @@ fn setCondBrPayload(
/// If `elide_block_store_ptr` is set, expects to find exactly 1 .store_to_block_ptr instruction.
fn setCondBrPayloadElideBlockStorePtr(
- condbr: zir.Inst.Index,
- cond: zir.Inst.Ref,
+ condbr: Zir.Inst.Index,
+ cond: Zir.Inst.Ref,
then_scope: *GenZir,
else_scope: *GenZir,
) !void {
const astgen = then_scope.astgen;
try astgen.extra.ensureCapacity(astgen.mod.gpa, astgen.extra.items.len +
- @typeInfo(zir.Inst.CondBr).Struct.fields.len +
+ @typeInfo(Zir.Inst.CondBr).Struct.fields.len +
then_scope.instructions.items.len + else_scope.instructions.items.len - 2);
const zir_datas = astgen.instructions.items(.data);
- zir_datas[condbr].pl_node.payload_index = astgen.addExtraAssumeCapacity(zir.Inst.CondBr{
+ zir_datas[condbr].pl_node.payload_index = astgen.addExtraAssumeCapacity(Zir.Inst.CondBr{
.condition = cond,
.then_body_len = @intCast(u32, then_scope.instructions.items.len - 1),
.else_body_len = @intCast(u32, else_scope.instructions.items.len - 1),
@@ -2731,14 +2731,14 @@ fn whileExpr(
rl: ResultLoc,
node: ast.Node.Index,
while_full: ast.full.While,
-) InnerError!zir.Inst.Ref {
+) InnerError!Zir.Inst.Ref {
const mod = parent_gz.astgen.mod;
if (while_full.label_token) |label_token| {
try checkLabelRedefinition(mod, scope, label_token);
}
const is_inline = parent_gz.force_comptime or while_full.inline_token != null;
- const loop_tag: zir.Inst.Tag = if (is_inline) .block_inline else .loop;
+ const loop_tag: Zir.Inst.Tag = if (is_inline) .block_inline else .loop;
const loop_block = try parent_gz.addBlock(loop_tag, node);
try parent_gz.instructions.append(mod.gpa, loop_block);
@@ -2771,9 +2771,9 @@ fn whileExpr(
}
};
- const condbr_tag: zir.Inst.Tag = if (is_inline) .condbr_inline else .condbr;
+ const condbr_tag: Zir.Inst.Tag = if (is_inline) .condbr_inline else .condbr;
const condbr = try continue_scope.addCondBr(condbr_tag, node);
- const block_tag: zir.Inst.Tag = if (is_inline) .block_inline else .block;
+ const block_tag: Zir.Inst.Tag = if (is_inline) .block_inline else .block;
const cond_block = try loop_scope.addBlock(block_tag, node);
try loop_scope.instructions.append(mod.gpa, cond_block);
try continue_scope.setBlockBody(cond_block);
@@ -2784,7 +2784,7 @@ fn whileExpr(
if (while_full.ast.cont_expr != 0) {
_ = try expr(&loop_scope, &loop_scope.base, .{ .ty = .void_type }, while_full.ast.cont_expr);
}
- const repeat_tag: zir.Inst.Tag = if (is_inline) .repeat_inline else .repeat;
+ const repeat_tag: Zir.Inst.Tag = if (is_inline) .repeat_inline else .repeat;
_ = try loop_scope.addNode(repeat_tag, node);
try loop_scope.setBlockBody(loop_block);
@@ -2821,7 +2821,7 @@ fn whileExpr(
const else_node = while_full.ast.else_expr;
const else_info: struct {
src: ast.Node.Index,
- result: zir.Inst.Ref,
+ result: Zir.Inst.Ref,
} = if (else_node != 0) blk: {
loop_scope.break_count += 1;
const sub_scope = &else_scope.base;
@@ -2839,7 +2839,7 @@ fn whileExpr(
return mod.failTok(scope, some.token, "unused while loop label", .{});
}
}
- const break_tag: zir.Inst.Tag = if (is_inline) .break_inline else .@"break";
+ const break_tag: Zir.Inst.Tag = if (is_inline) .break_inline else .@"break";
return finishThenElseBlock(
parent_gz,
scope,
@@ -2866,7 +2866,7 @@ fn forExpr(
rl: ResultLoc,
node: ast.Node.Index,
for_full: ast.full.While,
-) InnerError!zir.Inst.Ref {
+) InnerError!Zir.Inst.Ref {
const mod = parent_gz.astgen.mod;
if (for_full.label_token) |label_token| {
try checkLabelRedefinition(mod, scope, label_token);
@@ -2886,7 +2886,7 @@ fn forExpr(
break :blk index_ptr;
};
- const loop_tag: zir.Inst.Tag = if (is_inline) .block_inline else .loop;
+ const loop_tag: Zir.Inst.Tag = if (is_inline) .block_inline else .loop;
const loop_block = try parent_gz.addBlock(loop_tag, node);
try parent_gz.instructions.append(mod.gpa, loop_block);
@@ -2909,26 +2909,26 @@ fn forExpr(
// check condition i < array_expr.len
const index = try cond_scope.addUnNode(.load, index_ptr, for_full.ast.cond_expr);
- const cond = try cond_scope.addPlNode(.cmp_lt, for_full.ast.cond_expr, zir.Inst.Bin{
+ const cond = try cond_scope.addPlNode(.cmp_lt, for_full.ast.cond_expr, Zir.Inst.Bin{
.lhs = index,
.rhs = len,
});
- const condbr_tag: zir.Inst.Tag = if (is_inline) .condbr_inline else .condbr;
+ const condbr_tag: Zir.Inst.Tag = if (is_inline) .condbr_inline else .condbr;
const condbr = try cond_scope.addCondBr(condbr_tag, node);
- const block_tag: zir.Inst.Tag = if (is_inline) .block_inline else .block;
+ const block_tag: Zir.Inst.Tag = if (is_inline) .block_inline else .block;
const cond_block = try loop_scope.addBlock(block_tag, node);
try loop_scope.instructions.append(mod.gpa, cond_block);
try cond_scope.setBlockBody(cond_block);
// Increment the index variable.
const index_2 = try loop_scope.addUnNode(.load, index_ptr, for_full.ast.cond_expr);
- const index_plus_one = try loop_scope.addPlNode(.add, node, zir.Inst.Bin{
+ const index_plus_one = try loop_scope.addPlNode(.add, node, Zir.Inst.Bin{
.lhs = index_2,
.rhs = .one_usize,
});
_ = try loop_scope.addBin(.store, index_ptr, index_plus_one);
- const repeat_tag: zir.Inst.Tag = if (is_inline) .repeat_inline else .repeat;
+ const repeat_tag: Zir.Inst.Tag = if (is_inline) .repeat_inline else .repeat;
_ = try loop_scope.addNode(repeat_tag, node);
try loop_scope.setBlockBody(loop_block);
@@ -2996,7 +2996,7 @@ fn forExpr(
const else_node = for_full.ast.else_expr;
const else_info: struct {
src: ast.Node.Index,
- result: zir.Inst.Ref,
+ result: Zir.Inst.Ref,
} = if (else_node != 0) blk: {
loop_scope.break_count += 1;
const sub_scope = &else_scope.base;
@@ -3014,7 +3014,7 @@ fn forExpr(
return mod.failTok(scope, some.token, "unused for loop label", .{});
}
}
- const break_tag: zir.Inst.Tag = if (is_inline) .break_inline else .@"break";
+ const break_tag: Zir.Inst.Tag = if (is_inline) .break_inline else .@"break";
return finishThenElseBlock(
parent_gz,
scope,
@@ -3145,7 +3145,7 @@ fn switchExpr(
scope: *Scope,
rl: ResultLoc,
switch_node: ast.Node.Index,
-) InnerError!zir.Inst.Ref {
+) InnerError!Zir.Inst.Ref {
const astgen = parent_gz.astgen;
const mod = astgen.mod;
const gpa = mod.gpa;
@@ -3164,7 +3164,7 @@ fn switchExpr(
var any_payload_is_ref = false;
var scalar_cases_len: u32 = 0;
var multi_cases_len: u32 = 0;
- var special_prong: zir.SpecialProng = .none;
+ var special_prong: Zir.SpecialProng = .none;
var special_node: ast.Node.Index = 0;
var else_src: ?LazySrcLoc = null;
var underscore_src: ?LazySrcLoc = null;
@@ -3265,7 +3265,7 @@ fn switchExpr(
const operand_rl: ResultLoc = if (any_payload_is_ref) .ref else .none;
const operand = try expr(parent_gz, scope, operand_rl, operand_node);
// We need the type of the operand to use as the result location for all the prong items.
- const typeof_tag: zir.Inst.Tag = if (any_payload_is_ref) .typeof_elem else .typeof;
+ const typeof_tag: Zir.Inst.Tag = if (any_payload_is_ref) .typeof_elem else .typeof;
const operand_ty_inst = try parent_gz.addUnNode(typeof_tag, operand, operand_node);
const item_rl: ResultLoc = .{ .ty = operand_ty_inst };
@@ -3321,7 +3321,7 @@ fn switchExpr(
}
break :blk &case_scope.base;
}
- const capture_tag: zir.Inst.Tag = if (is_ptr)
+ const capture_tag: Zir.Inst.Tag = if (is_ptr)
.switch_capture_else_ref
else
.switch_capture_else;
@@ -3347,7 +3347,7 @@ fn switchExpr(
block_scope.break_count += 1;
_ = try case_scope.addBreak(.@"break", switch_block, case_result);
}
- // Documentation for this: `zir.Inst.SwitchBlock` and `zir.Inst.SwitchBlockMulti`.
+ // Documentation for this: `Zir.Inst.SwitchBlock` and `Zir.Inst.SwitchBlockMulti`.
try scalar_cases_payload.ensureCapacity(gpa, scalar_cases_payload.items.len +
3 + // operand, scalar_cases_len, else body len
@boolToInt(multi_cases_len != 0) +
@@ -3360,7 +3360,7 @@ fn switchExpr(
scalar_cases_payload.appendAssumeCapacity(@intCast(u32, case_scope.instructions.items.len));
scalar_cases_payload.appendSliceAssumeCapacity(case_scope.instructions.items);
} else {
- // Documentation for this: `zir.Inst.SwitchBlock` and `zir.Inst.SwitchBlockMulti`.
+ // Documentation for this: `Zir.Inst.SwitchBlock` and `Zir.Inst.SwitchBlockMulti`.
try scalar_cases_payload.ensureCapacity(gpa, scalar_cases_payload.items.len +
2 + // operand, scalar_cases_len
@boolToInt(multi_cases_len != 0));
@@ -3404,7 +3404,7 @@ fn switchExpr(
}
const is_multi_case_bits: u2 = @boolToInt(is_multi_case);
const is_ptr_bits: u2 = @boolToInt(is_ptr);
- const capture_tag: zir.Inst.Tag = switch ((is_multi_case_bits << 1) | is_ptr_bits) {
+ const capture_tag: Zir.Inst.Tag = switch ((is_multi_case_bits << 1) | is_ptr_bits) {
0b00 => .switch_capture,
0b01 => .switch_capture_ref,
0b10 => .switch_capture_multi,
@@ -3495,9 +3495,9 @@ fn switchExpr(
const multi_bit: u4 = @boolToInt(multi_cases_len != 0);
const special_prong_bits: u4 = @enumToInt(special_prong);
comptime {
- assert(@enumToInt(zir.SpecialProng.none) == 0b00);
- assert(@enumToInt(zir.SpecialProng.@"else") == 0b01);
- assert(@enumToInt(zir.SpecialProng.under) == 0b10);
+ assert(@enumToInt(Zir.SpecialProng.none) == 0b00);
+ assert(@enumToInt(Zir.SpecialProng.@"else") == 0b01);
+ assert(@enumToInt(Zir.SpecialProng.under) == 0b10);
}
const zir_tags = astgen.instructions.items(.tag);
zir_tags[switch_block] = switch ((ref_bit << 3) | (special_prong_bits << 1) | multi_bit) {
@@ -3732,13 +3732,13 @@ fn switchExpr(
}
}
-fn ret(gz: *GenZir, scope: *Scope, node: ast.Node.Index) InnerError!zir.Inst.Ref {
+fn ret(gz: *GenZir, scope: *Scope, node: ast.Node.Index) InnerError!Zir.Inst.Ref {
const tree = gz.tree();
const node_datas = tree.nodes.items(.data);
const main_tokens = tree.nodes.items(.main_token);
const operand_node = node_datas[node].lhs;
- const operand: zir.Inst.Ref = if (operand_node != 0) operand: {
+ const operand: Zir.Inst.Ref = if (operand_node != 0) operand: {
const rl: ResultLoc = if (nodeMayNeedMemoryLocation(tree, operand_node)) .{
.ptr = try gz.addNode(.ret_ptr, node),
} else .{
@@ -3747,7 +3747,7 @@ fn ret(gz: *GenZir, scope: *Scope, node: ast.Node.Index) InnerError!zir.Inst.Ref
break :operand try expr(gz, scope, rl, operand_node);
} else .void_value;
_ = try gz.addUnNode(.ret_node, operand, node);
- return zir.Inst.Ref.unreachable_value;
+ return Zir.Inst.Ref.unreachable_value;
}
fn identifier(
@@ -3755,7 +3755,7 @@ fn identifier(
scope: *Scope,
rl: ResultLoc,
ident: ast.Node.Index,
-) InnerError!zir.Inst.Ref {
+) InnerError!Zir.Inst.Ref {
const tracy = trace(@src());
defer tracy.end();
@@ -3849,7 +3849,7 @@ fn stringLiteral(
scope: *Scope,
rl: ResultLoc,
node: ast.Node.Index,
-) InnerError!zir.Inst.Ref {
+) InnerError!Zir.Inst.Ref {
const tree = gz.tree();
const main_tokens = tree.nodes.items(.main_token);
const string_bytes = &gz.astgen.string_bytes;
@@ -3873,7 +3873,7 @@ fn multilineStringLiteral(
scope: *Scope,
rl: ResultLoc,
node: ast.Node.Index,
-) InnerError!zir.Inst.Ref {
+) InnerError!Zir.Inst.Ref {
const tree = gz.tree();
const node_datas = tree.nodes.items(.data);
const main_tokens = tree.nodes.items(.main_token);
@@ -3911,7 +3911,7 @@ fn multilineStringLiteral(
return rvalue(gz, scope, rl, result, node);
}
-fn charLiteral(gz: *GenZir, scope: *Scope, rl: ResultLoc, node: ast.Node.Index) !zir.Inst.Ref {
+fn charLiteral(gz: *GenZir, scope: *Scope, rl: ResultLoc, node: ast.Node.Index) !Zir.Inst.Ref {
const mod = gz.astgen.mod;
const tree = gz.tree();
const main_tokens = tree.nodes.items(.main_token);
@@ -3936,13 +3936,13 @@ fn integerLiteral(
scope: *Scope,
rl: ResultLoc,
node: ast.Node.Index,
-) InnerError!zir.Inst.Ref {
+) InnerError!Zir.Inst.Ref {
const tree = gz.tree();
const main_tokens = tree.nodes.items(.main_token);
const int_token = main_tokens[node];
const prefixed_bytes = tree.tokenSlice(int_token);
if (std.fmt.parseInt(u64, prefixed_bytes, 0)) |small_int| {
- const result: zir.Inst.Ref = switch (small_int) {
+ const result: Zir.Inst.Ref = switch (small_int) {
0 => .zero,
1 => .one,
else => try gz.addInt(small_int),
@@ -3958,7 +3958,7 @@ fn floatLiteral(
scope: *Scope,
rl: ResultLoc,
node: ast.Node.Index,
-) InnerError!zir.Inst.Ref {
+) InnerError!Zir.Inst.Ref {
const arena = gz.astgen.arena;
const tree = gz.tree();
const main_tokens = tree.nodes.items(.main_token);
@@ -3983,7 +3983,7 @@ fn floatLiteral(
// We need to use 128 bits. Break the float into 4 u32 values so we can
// put it into the `extra` array.
const int_bits = @bitCast(u128, float_number);
- const result = try gz.addPlNode(.float128, node, zir.Inst.Float128{
+ const result = try gz.addPlNode(.float128, node, Zir.Inst.Float128{
.piece0 = @truncate(u32, int_bits),
.piece1 = @truncate(u32, int_bits >> 32),
.piece2 = @truncate(u32, int_bits >> 64),
@@ -3998,7 +3998,7 @@ fn asmExpr(
rl: ResultLoc,
node: ast.Node.Index,
full: ast.full.Asm,
-) InnerError!zir.Inst.Ref {
+) InnerError!Zir.Inst.Ref {
const mod = gz.astgen.mod;
const arena = gz.astgen.arena;
const tree = gz.tree();
@@ -4014,7 +4014,7 @@ fn asmExpr(
}
const constraints = try arena.alloc(u32, full.inputs.len);
- const args = try arena.alloc(zir.Inst.Ref, full.inputs.len);
+ const args = try arena.alloc(Zir.Inst.Ref, full.inputs.len);
for (full.inputs) |input, i| {
const constraint_token = main_tokens[input] + 2;
@@ -4027,8 +4027,8 @@ fn asmExpr(
args[i] = try expr(gz, scope, .{ .ty = .usize_type }, node_datas[input].lhs);
}
- const tag: zir.Inst.Tag = if (full.volatile_token != null) .asm_volatile else .@"asm";
- const result = try gz.addPlNode(tag, node, zir.Inst.Asm{
+ const tag: Zir.Inst.Tag = if (full.volatile_token != null) .asm_volatile else .@"asm";
+ const result = try gz.addPlNode(tag, node, Zir.Inst.Asm{
.asm_source = asm_source,
.return_type = .void_type,
.output = .none,
@@ -4051,7 +4051,7 @@ fn as(
node: ast.Node.Index,
lhs: ast.Node.Index,
rhs: ast.Node.Index,
-) InnerError!zir.Inst.Ref {
+) InnerError!Zir.Inst.Ref {
const dest_type = try typeExpr(gz, scope, lhs);
switch (rl) {
.none, .none_or_ref, .discard, .ref, .ty => {
@@ -4077,10 +4077,10 @@ fn asRlPtr(
parent_gz: *GenZir,
scope: *Scope,
rl: ResultLoc,
- result_ptr: zir.Inst.Ref,
+ result_ptr: Zir.Inst.Ref,
operand_node: ast.Node.Index,
- dest_type: zir.Inst.Ref,
-) InnerError!zir.Inst.Ref {
+ dest_type: Zir.Inst.Ref,
+) InnerError!Zir.Inst.Ref {
// Detect whether this expr() call goes into rvalue() to store the result into the
// result location. If it does, elide the coerce_result_ptr instruction
// as well as the store instruction, instead passing the result as an rvalue.
@@ -4126,13 +4126,13 @@ fn bitCast(
node: ast.Node.Index,
lhs: ast.Node.Index,
rhs: ast.Node.Index,
-) InnerError!zir.Inst.Ref {
+) InnerError!Zir.Inst.Ref {
const mod = gz.astgen.mod;
const dest_type = try typeExpr(gz, scope, lhs);
switch (rl) {
.none, .discard, .ty => {
const operand = try expr(gz, scope, .none, rhs);
- const result = try gz.addPlNode(.bitcast, node, zir.Inst.Bin{
+ const result = try gz.addPlNode(.bitcast, node, Zir.Inst.Bin{
.lhs = dest_type,
.rhs = operand,
});
@@ -4159,7 +4159,7 @@ fn typeOf(
rl: ResultLoc,
node: ast.Node.Index,
params: []const ast.Node.Index,
-) InnerError!zir.Inst.Ref {
+) InnerError!Zir.Inst.Ref {
if (params.len < 1) {
return gz.astgen.mod.failNode(scope, node, "expected at least 1 argument, found 0", .{});
}
@@ -4168,12 +4168,12 @@ fn typeOf(
return rvalue(gz, scope, rl, result, node);
}
const arena = gz.astgen.arena;
- var items = try arena.alloc(zir.Inst.Ref, params.len);
+ var items = try arena.alloc(Zir.Inst.Ref, params.len);
for (params) |param, param_i| {
items[param_i] = try expr(gz, scope, .none, param);
}
- const result = try gz.addPlNode(.typeof_peer, node, zir.Inst.MultiOp{
+ const result = try gz.addPlNode(.typeof_peer, node, Zir.Inst.MultiOp{
.operands_len = @intCast(u32, params.len),
});
try gz.astgen.appendRefs(items);
@@ -4187,7 +4187,7 @@ fn builtinCall(
rl: ResultLoc,
node: ast.Node.Index,
params: []const ast.Node.Index,
-) InnerError!zir.Inst.Ref {
+) InnerError!Zir.Inst.Ref {
const mod = gz.astgen.mod;
const tree = gz.tree();
const main_tokens = tree.nodes.items(.main_token);
@@ -4223,7 +4223,7 @@ fn builtinCall(
.float_cast => {
const dest_type = try typeExpr(gz, scope, params[0]);
const rhs = try expr(gz, scope, .none, params[1]);
- const result = try gz.addPlNode(.floatcast, node, zir.Inst.Bin{
+ const result = try gz.addPlNode(.floatcast, node, Zir.Inst.Bin{
.lhs = dest_type,
.rhs = rhs,
});
@@ -4232,7 +4232,7 @@ fn builtinCall(
.int_cast => {
const dest_type = try typeExpr(gz, scope, params[0]);
const rhs = try expr(gz, scope, .none, params[1]);
- const result = try gz.addPlNode(.intcast, node, zir.Inst.Bin{
+ const result = try gz.addPlNode(.intcast, node, Zir.Inst.Bin{
.lhs = dest_type,
.rhs = rhs,
});
@@ -4271,12 +4271,12 @@ fn builtinCall(
return rvalue(gz, scope, rl, result, node);
},
.compile_log => {
- const arg_refs = try mod.gpa.alloc(zir.Inst.Ref, params.len);
+ const arg_refs = try mod.gpa.alloc(Zir.Inst.Ref, params.len);
defer mod.gpa.free(arg_refs);
for (params) |param, i| arg_refs[i] = try expr(gz, scope, .none, param);
- const result = try gz.addPlNode(.compile_log, node, zir.Inst.MultiOp{
+ const result = try gz.addPlNode(.compile_log, node, Zir.Inst.MultiOp{
.operands_len = @intCast(u32, params.len),
});
try gz.astgen.appendRefs(arg_refs);
@@ -4285,12 +4285,12 @@ fn builtinCall(
.field => {
const field_name = try comptimeExpr(gz, scope, .{ .ty = .const_slice_u8_type }, params[1]);
if (rl == .ref) {
- return try gz.addPlNode(.field_ptr_named, node, zir.Inst.FieldNamed{
+ return try gz.addPlNode(.field_ptr_named, node, Zir.Inst.FieldNamed{
.lhs = try expr(gz, scope, .ref, params[0]),
.field_name = field_name,
});
}
- const result = try gz.addPlNode(.field_val_named, node, zir.Inst.FieldNamed{
+ const result = try gz.addPlNode(.field_val_named, node, Zir.Inst.FieldNamed{
.lhs = try expr(gz, scope, .none, params[0]),
.field_name = field_name,
});
@@ -4301,7 +4301,7 @@ fn builtinCall(
.TypeOf => return typeOf(gz, scope, rl, node, params),
.int_to_enum => {
- const result = try gz.addPlNode(.int_to_enum, node, zir.Inst.Bin{
+ const result = try gz.addPlNode(.int_to_enum, node, Zir.Inst.Bin{
.lhs = try typeExpr(gz, scope, params[0]),
.rhs = try expr(gz, scope, .none, params[1]),
});
@@ -4321,7 +4321,7 @@ fn builtinCall(
// TODO: the second parameter here is supposed to be
// `std.builtin.ExportOptions`, not a string.
const export_name = try comptimeExpr(gz, scope, .{ .ty = .const_slice_u8_type }, params[1]);
- _ = try gz.addPlNode(.@"export", node, zir.Inst.Bin{
+ _ = try gz.addPlNode(.@"export", node, Zir.Inst.Bin{
.lhs = fn_to_export,
.rhs = export_name,
});
@@ -4331,7 +4331,7 @@ fn builtinCall(
.has_decl => {
const container_type = try typeExpr(gz, scope, params[0]);
const name = try comptimeExpr(gz, scope, .{ .ty = .const_slice_u8_type }, params[1]);
- const result = try gz.addPlNode(.has_decl, node, zir.Inst.Bin{
+ const result = try gz.addPlNode(.has_decl, node, Zir.Inst.Bin{
.lhs = container_type,
.rhs = name,
});
@@ -4451,14 +4451,14 @@ fn callExpr(
rl: ResultLoc,
node: ast.Node.Index,
call: ast.full.Call,
-) InnerError!zir.Inst.Ref {
+) InnerError!Zir.Inst.Ref {
const mod = gz.astgen.mod;
if (call.async_token) |async_token| {
return mod.failTok(scope, async_token, "async and related features are not yet supported", .{});
}
const lhs = try expr(gz, scope, .none, call.ast.fn_expr);
- const args = try mod.gpa.alloc(zir.Inst.Ref, call.ast.params.len);
+ const args = try mod.gpa.alloc(Zir.Inst.Ref, call.ast.params.len);
defer mod.gpa.free(args);
for (call.ast.params) |param_node, i| {
@@ -4476,8 +4476,8 @@ fn callExpr(
true => .async_kw,
false => .auto,
};
- const result: zir.Inst.Ref = res: {
- const tag: zir.Inst.Tag = switch (modifier) {
+ const result: Zir.Inst.Ref = res: {
+ const tag: Zir.Inst.Tag = switch (modifier) {
.auto => switch (args.len == 0) {
true => break :res try gz.addUnNode(.call_none, lhs, node),
false => .call,
@@ -4495,7 +4495,7 @@ fn callExpr(
return rvalue(gz, scope, rl, result, node); // TODO function call with result location
}
-pub const simple_types = std.ComptimeStringMap(zir.Inst.Ref, .{
+pub const simple_types = std.ComptimeStringMap(Zir.Inst.Ref, .{
.{ "u8", .u8_type },
.{ "i8", .i8_type },
.{ "u16", .u16_type },
@@ -4756,9 +4756,9 @@ fn rvalue(
gz: *GenZir,
scope: *Scope,
rl: ResultLoc,
- result: zir.Inst.Ref,
+ result: Zir.Inst.Ref,
src_node: ast.Node.Index,
-) InnerError!zir.Inst.Ref {
+) InnerError!Zir.Inst.Ref {
switch (rl) {
.none, .none_or_ref => return result,
.discard => {
@@ -4774,70 +4774,70 @@ fn rvalue(
},
.ty => |ty_inst| {
// Quickly eliminate some common, unnecessary type coercion.
- const as_ty = @as(u64, @enumToInt(zir.Inst.Ref.type_type)) << 32;
- const as_comptime_int = @as(u64, @enumToInt(zir.Inst.Ref.comptime_int_type)) << 32;
- const as_bool = @as(u64, @enumToInt(zir.Inst.Ref.bool_type)) << 32;
- const as_usize = @as(u64, @enumToInt(zir.Inst.Ref.usize_type)) << 32;
- const as_void = @as(u64, @enumToInt(zir.Inst.Ref.void_type)) << 32;
+ const as_ty = @as(u64, @enumToInt(Zir.Inst.Ref.type_type)) << 32;
+ const as_comptime_int = @as(u64, @enumToInt(Zir.Inst.Ref.comptime_int_type)) << 32;
+ const as_bool = @as(u64, @enumToInt(Zir.Inst.Ref.bool_type)) << 32;
+ const as_usize = @as(u64, @enumToInt(Zir.Inst.Ref.usize_type)) << 32;
+ const as_void = @as(u64, @enumToInt(Zir.Inst.Ref.void_type)) << 32;
switch ((@as(u64, @enumToInt(ty_inst)) << 32) | @as(u64, @enumToInt(result))) {
- as_ty | @enumToInt(zir.Inst.Ref.u8_type),
- as_ty | @enumToInt(zir.Inst.Ref.i8_type),
- as_ty | @enumToInt(zir.Inst.Ref.u16_type),
- as_ty | @enumToInt(zir.Inst.Ref.i16_type),
- as_ty | @enumToInt(zir.Inst.Ref.u32_type),
- as_ty | @enumToInt(zir.Inst.Ref.i32_type),
- as_ty | @enumToInt(zir.Inst.Ref.u64_type),
- as_ty | @enumToInt(zir.Inst.Ref.i64_type),
- as_ty | @enumToInt(zir.Inst.Ref.usize_type),
- as_ty | @enumToInt(zir.Inst.Ref.isize_type),
- as_ty | @enumToInt(zir.Inst.Ref.c_short_type),
- as_ty | @enumToInt(zir.Inst.Ref.c_ushort_type),
- as_ty | @enumToInt(zir.Inst.Ref.c_int_type),
- as_ty | @enumToInt(zir.Inst.Ref.c_uint_type),
- as_ty | @enumToInt(zir.Inst.Ref.c_long_type),
- as_ty | @enumToInt(zir.Inst.Ref.c_ulong_type),
- as_ty | @enumToInt(zir.Inst.Ref.c_longlong_type),
- as_ty | @enumToInt(zir.Inst.Ref.c_ulonglong_type),
- as_ty | @enumToInt(zir.Inst.Ref.c_longdouble_type),
- as_ty | @enumToInt(zir.Inst.Ref.f16_type),
- as_ty | @enumToInt(zir.Inst.Ref.f32_type),
- as_ty | @enumToInt(zir.Inst.Ref.f64_type),
- as_ty | @enumToInt(zir.Inst.Ref.f128_type),
- as_ty | @enumToInt(zir.Inst.Ref.c_void_type),
- as_ty | @enumToInt(zir.Inst.Ref.bool_type),
- as_ty | @enumToInt(zir.Inst.Ref.void_type),
- as_ty | @enumToInt(zir.Inst.Ref.type_type),
- as_ty | @enumToInt(zir.Inst.Ref.anyerror_type),
- as_ty | @enumToInt(zir.Inst.Ref.comptime_int_type),
- as_ty | @enumToInt(zir.Inst.Ref.comptime_float_type),
- as_ty | @enumToInt(zir.Inst.Ref.noreturn_type),
- as_ty | @enumToInt(zir.Inst.Ref.null_type),
- as_ty | @enumToInt(zir.Inst.Ref.undefined_type),
- as_ty | @enumToInt(zir.Inst.Ref.fn_noreturn_no_args_type),
- as_ty | @enumToInt(zir.Inst.Ref.fn_void_no_args_type),
- as_ty | @enumToInt(zir.Inst.Ref.fn_naked_noreturn_no_args_type),
- as_ty | @enumToInt(zir.Inst.Ref.fn_ccc_void_no_args_type),
- as_ty | @enumToInt(zir.Inst.Ref.single_const_pointer_to_comptime_int_type),
- as_ty | @enumToInt(zir.Inst.Ref.const_slice_u8_type),
- as_ty | @enumToInt(zir.Inst.Ref.enum_literal_type),
- as_comptime_int | @enumToInt(zir.Inst.Ref.zero),
- as_comptime_int | @enumToInt(zir.Inst.Ref.one),
- as_bool | @enumToInt(zir.Inst.Ref.bool_true),
- as_bool | @enumToInt(zir.Inst.Ref.bool_false),
- as_usize | @enumToInt(zir.Inst.Ref.zero_usize),
- as_usize | @enumToInt(zir.Inst.Ref.one_usize),
- as_void | @enumToInt(zir.Inst.Ref.void_value),
+ as_ty | @enumToInt(Zir.Inst.Ref.u8_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.i8_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.u16_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.i16_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.u32_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.i32_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.u64_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.i64_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.usize_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.isize_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.c_short_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.c_ushort_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.c_int_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.c_uint_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.c_long_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.c_ulong_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.c_longlong_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.c_ulonglong_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.c_longdouble_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.f16_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.f32_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.f64_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.f128_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.c_void_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.bool_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.void_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.type_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.anyerror_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.comptime_int_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.comptime_float_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.noreturn_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.null_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.undefined_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.fn_noreturn_no_args_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.fn_void_no_args_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.fn_naked_noreturn_no_args_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.fn_ccc_void_no_args_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.single_const_pointer_to_comptime_int_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.const_slice_u8_type),
+ as_ty | @enumToInt(Zir.Inst.Ref.enum_literal_type),
+ as_comptime_int | @enumToInt(Zir.Inst.Ref.zero),
+ as_comptime_int | @enumToInt(Zir.Inst.Ref.one),
+ as_bool | @enumToInt(Zir.Inst.Ref.bool_true),
+ as_bool | @enumToInt(Zir.Inst.Ref.bool_false),
+ as_usize | @enumToInt(Zir.Inst.Ref.zero_usize),
+ as_usize | @enumToInt(Zir.Inst.Ref.one_usize),
+ as_void | @enumToInt(Zir.Inst.Ref.void_value),
=> return result, // type of result is already correct
// Need an explicit type coercion instruction.
- else => return gz.addPlNode(.as_node, src_node, zir.Inst.As{
+ else => return gz.addPlNode(.as_node, src_node, Zir.Inst.As{
.dest_type = ty_inst,
.operand = result,
}),
}
},
.ptr => |ptr_inst| {
- _ = try gz.addPlNode(.store_node, src_node, zir.Inst.Bin{
+ _ = try gz.addPlNode(.store_node, src_node, Zir.Inst.Bin{
.lhs = ptr_inst,
.rhs = result,
});
diff --git a/src/Module.zig b/src/Module.zig
index c57566ddb0..3f9a78f8d1 100644
--- a/src/Module.zig
+++ b/src/Module.zig
@@ -21,7 +21,7 @@ const TypedValue = @import("TypedValue.zig");
const Package = @import("Package.zig");
const link = @import("link.zig");
const ir = @import("ir.zig");
-const Zir = @import("zir.zig"); // TODO rename this to Zir
+const Zir = @import("Zir.zig");
const trace = @import("tracy.zig").trace;
const AstGen = @import("AstGen.zig");
const Sema = @import("Sema.zig");
diff --git a/src/Sema.zig b/src/Sema.zig
index 8a6c64046d..bc761b8021 100644
--- a/src/Sema.zig
+++ b/src/Sema.zig
@@ -52,7 +52,7 @@ const Value = @import("value.zig").Value;
const Type = @import("type.zig").Type;
const TypedValue = @import("TypedValue.zig");
const ir = @import("ir.zig");
-const Zir = @import("zir.zig"); // TODO rename to Zir.zig
+const Zir = @import("Zir.zig");
const Module = @import("Module.zig");
const Inst = ir.Inst;
const Body = ir.Body;
diff --git a/src/zir.zig b/src/Zir.zig
index bb1ac5fbc2..bb1ac5fbc2 100644
--- a/src/zir.zig
+++ b/src/Zir.zig
diff --git a/src/main.zig b/src/main.zig
index cf0d08c5ed..044c6f0fec 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -12,7 +12,6 @@ const warn = std.log.warn;
const Compilation = @import("Compilation.zig");
const link = @import("link.zig");
const Package = @import("Package.zig");
-const zir = @import("zir.zig");
const build_options = @import("build_options");
const introspect = @import("introspect.zig");
const LibCInstallation = @import("libc_installation.zig").LibCInstallation;
diff --git a/src/test.zig b/src/test.zig
index ca3f073e14..e08f9da37d 100644
--- a/src/test.zig
+++ b/src/test.zig
@@ -2,7 +2,6 @@ const std = @import("std");
const link = @import("link.zig");
const Compilation = @import("Compilation.zig");
const Allocator = std.mem.Allocator;
-const zir = @import("zir.zig");
const Package = @import("Package.zig");
const introspect = @import("introspect.zig");
const build_options = @import("build_options");