aboutsummaryrefslogtreecommitdiff
path: root/src/Module.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2022-11-25 18:06:09 -0500
committerGitHub <noreply@github.com>2022-11-25 18:06:09 -0500
commit30eb2a1753c41f348f7d5dcf2b9059a51afab5ad (patch)
tree9c89fa27e516c1575daea0d6c408acab75617f58 /src/Module.zig
parenta2403d354fa3f93aa4b916f574393c12dff39e51 (diff)
parent9f055e2eb0252d872c9111e60ef7c0802d91bea6 (diff)
downloadzig-30eb2a1753c41f348f7d5dcf2b9059a51afab5ad.tar.gz
zig-30eb2a1753c41f348f7d5dcf2b9059a51afab5ad.zip
Merge pull request #13627 from Vexu/tuple-decls
Implement tuple type declarations
Diffstat (limited to 'src/Module.zig')
-rw-r--r--src/Module.zig7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/Module.zig b/src/Module.zig
index d598993c3f..bb03616dff 100644
--- a/src/Module.zig
+++ b/src/Module.zig
@@ -938,6 +938,7 @@ pub const Struct = struct {
known_non_opv: bool,
requires_comptime: PropertyBoolean = .unknown,
have_field_inits: bool = false,
+ is_tuple: bool,
pub const Fields = std.StringArrayHashMapUnmanaged(Field);
@@ -4458,6 +4459,7 @@ pub fn semaFile(mod: *Module, file: *File) SemaError!void {
.layout = .Auto,
.status = .none,
.known_non_opv = undefined,
+ .is_tuple = undefined, // set below
.namespace = .{
.parent = null,
.ty = struct_ty,
@@ -4489,6 +4491,9 @@ pub fn semaFile(mod: *Module, file: *File) SemaError!void {
assert(file.zir_loaded);
const main_struct_inst = Zir.main_struct_inst;
struct_obj.zir_index = main_struct_inst;
+ const extended = file.zir.instructions.items(.data)[main_struct_inst].extended;
+ const small = @bitCast(Zir.Inst.StructDecl.Small, extended.small);
+ struct_obj.is_tuple = small.is_tuple;
var sema_arena = std.heap.ArenaAllocator.init(gpa);
defer sema_arena.deinit();
@@ -6138,7 +6143,7 @@ fn queryFieldSrc(
.name => .{
.file_scope = file_scope,
.parent_decl_node = 0,
- .lazy = .{ .token_abs = field.ast.name_token },
+ .lazy = .{ .token_abs = field.ast.main_token },
},
.type => .{
.file_scope = file_scope,