diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2022-02-27 15:29:03 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-02-27 15:29:03 -0500 |
| commit | b5066fdae292f44a6e4c60db9a9db012672dd10e (patch) | |
| tree | 6367bdaa9d4f19ed8905061a670aaff5e6f974f6 /test/behavior/basic.zig | |
| parent | c03b733f0999418b234067cac51eac0e4412dfe1 (diff) | |
| parent | 9f59189c954298fd2be576b7e3dd26388d07751d (diff) | |
| download | zig-b5066fdae292f44a6e4c60db9a9db012672dd10e.tar.gz zig-b5066fdae292f44a6e4c60db9a9db012672dd10e.zip | |
Merge pull request #11001 from Vexu/stage2
stage2: make formatted printing work
Diffstat (limited to 'test/behavior/basic.zig')
| -rw-r--r-- | test/behavior/basic.zig | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/test/behavior/basic.zig b/test/behavior/basic.zig index d6447862cf..c36fa0c921 100644 --- a/test/behavior/basic.zig +++ b/test/behavior/basic.zig @@ -819,3 +819,37 @@ test "if expression type coercion" { const x: u16 = if (cond) 1 else 0; try expect(@as(u16, x) == 1); } + +test "discarding the result of various expressions" { + if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO + + const S = struct { + fn foo() !u32 { + return 1; + } + fn bar() ?u32 { + return 1; + } + }; + _ = S.bar() orelse { + // do nothing + }; + _ = S.foo() catch { + // do nothing + }; + _ = switch (1) { + 1 => 1, + 2 => {}, + else => return, + }; + _ = try S.foo(); + _ = if (S.bar()) |some| some else {}; + _ = blk: { + if (S.bar()) |some| break :blk some; + break :blk; + }; + _ = while (S.bar()) |some| break some else {}; + _ = for ("foo") |char| break char else {}; +} |
