diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2022-11-25 18:06:09 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-11-25 18:06:09 -0500 |
| commit | 30eb2a1753c41f348f7d5dcf2b9059a51afab5ad (patch) | |
| tree | 9c89fa27e516c1575daea0d6c408acab75617f58 /src/Module.zig | |
| parent | a2403d354fa3f93aa4b916f574393c12dff39e51 (diff) | |
| parent | 9f055e2eb0252d872c9111e60ef7c0802d91bea6 (diff) | |
| download | zig-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.zig | 7 |
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, |
