diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2021-03-28 19:38:19 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2021-03-28 19:40:21 -0700 |
| commit | 8f469c11275e60f5f1a8ae08fc7596ba366eda16 (patch) | |
| tree | 0d6d8894eeb6f6ce42d7994d92c5df278ba436d9 /src/type.zig | |
| parent | 0005b346375f1fbe7bc42c22d658e3218bbd599d (diff) | |
| download | zig-8f469c11275e60f5f1a8ae08fc7596ba366eda16.tar.gz zig-8f469c11275e60f5f1a8ae08fc7596ba366eda16.zip | |
stage2: fix error sets
Diffstat (limited to 'src/type.zig')
| -rw-r--r-- | src/type.zig | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/type.zig b/src/type.zig index 817fe171cc..f6ffaefe0b 100644 --- a/src/type.zig +++ b/src/type.zig @@ -606,7 +606,7 @@ pub const Type = extern union { .payload = try payload.payload.copy(allocator), }); }, - .error_set => return self.copyPayloadShallow(allocator, Payload.Decl), + .error_set => return self.copyPayloadShallow(allocator, Payload.ErrorSet), .error_set_single => return self.copyPayloadShallow(allocator, Payload.Name), .empty_struct => return self.copyPayloadShallow(allocator, Payload.ContainerScope), @@ -831,8 +831,8 @@ pub const Type = extern union { continue; }, .error_set => { - const decl = ty.castTag(.error_set).?.data; - return out_stream.writeAll(std.mem.spanZ(decl.name)); + const error_set = ty.castTag(.error_set).?.data; + return out_stream.writeAll(std.mem.spanZ(error_set.owner_decl.name)); }, .error_set_single => { const name = ty.castTag(.error_set_single).?.data; @@ -3464,7 +3464,7 @@ pub const Type = extern union { .int_unsigned, => Payload.Bits, - .error_set => Payload.Decl, + .error_set => Payload.ErrorSet, .array => Payload.Array, .array_sentinel => Payload.ArraySentinel, @@ -3548,6 +3548,13 @@ pub const Type = extern union { }, }; + pub const ErrorSet = struct { + pub const base_tag = Tag.error_set; + + base: Payload = Payload{ .tag = base_tag }, + data: *Module.ErrorSet, + }; + pub const Pointer = struct { pub const base_tag = Tag.pointer; |
