aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorVeikka Tuominen <git@vexu.eu>2022-06-10 14:11:59 +0300
committerVeikka Tuominen <git@vexu.eu>2022-06-11 23:49:33 +0300
commit0333ff4476d0132a2397122dcab964de7fc0f2d3 (patch)
tree8032dc588ab76313580feec71e07077ab1209960 /test
parent488e1e5f51905485f9db37038e74bdea31ebd16e (diff)
downloadzig-0333ff4476d0132a2397122dcab964de7fc0f2d3.tar.gz
zig-0333ff4476d0132a2397122dcab964de7fc0f2d3.zip
stage2: make `error{}` the same size as `anyerror`
Having `error{}` be a zero bit type causes issues when it interracts with empty inferred error sets which are the same size as `anyerror`.
Diffstat (limited to 'test')
-rw-r--r--test/behavior/error.zig59
1 files changed, 0 insertions, 59 deletions
diff --git a/test/behavior/error.zig b/test/behavior/error.zig
index ac51ec1eae..c9697a0f82 100644
--- a/test/behavior/error.zig
+++ b/test/behavior/error.zig
@@ -453,65 +453,6 @@ test "optional error set is the same size as error set" {
comptime try expect(S.returnsOptErrSet() == null);
}
-test "optional error set with only one error is the same size as bool" {
- if (builtin.zig_backend == .stage1) return error.SkipZigTest;
- if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
- if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
-
- const E = error{only};
- comptime try expect(@sizeOf(?E) == @sizeOf(bool));
- comptime try expect(@alignOf(?E) == @alignOf(bool));
- const S = struct {
- fn gimmeNull() ?E {
- return null;
- }
- fn gimmeErr() ?E {
- return error.only;
- }
- };
- try expect(S.gimmeNull() == null);
- try expect(error.only == S.gimmeErr().?);
- comptime try expect(S.gimmeNull() == null);
- comptime try expect(error.only == S.gimmeErr().?);
-}
-
-test "optional empty error set" {
- if (builtin.zig_backend == .stage1) return error.SkipZigTest;
-
- comptime try expect(@sizeOf(error{}!void) == @sizeOf(void));
- comptime try expect(@alignOf(error{}!void) == @alignOf(void));
-
- var x: ?error{} = undefined;
- if (x != null) {
- @compileError("test failed");
- }
-}
-
-test "empty error set plus zero-bit payload" {
- if (builtin.zig_backend == .stage1) return error.SkipZigTest;
- if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
- if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
-
- comptime try expect(@sizeOf(error{}!void) == @sizeOf(void));
- comptime try expect(@alignOf(error{}!void) == @alignOf(void));
-
- var x: error{}!void = undefined;
- if (x) |payload| {
- if (payload != {}) {
- @compileError("test failed");
- }
- } else |_| {
- @compileError("test failed");
- }
- const S = struct {
- fn empty() error{}!void {}
- fn inferred() !void {
- return empty();
- }
- };
- try S.inferred();
-}
-
test "nested catch" {
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO