mirror of
https://github.com/ziglang/zig.git
synced 2024-11-26 23:22:44 +00:00
0fe3fd01dd
The compiler actually doesn't need any functional changes for this: Sema does reification based on the tag indices of `std.builtin.Type` already! So, no zig1.wasm update is necessary. This change is necessary to disallow name clashes between fields and decls on a type, which is a prerequisite of #9938.
20 lines
572 B
Zig
20 lines
572 B
Zig
const expect = @import("std").testing.expect;
|
|
|
|
test "error union" {
|
|
var foo: anyerror!i32 = undefined;
|
|
|
|
// Coerce from child type of an error union:
|
|
foo = 1234;
|
|
|
|
// Coerce from an error set:
|
|
foo = error.SomeError;
|
|
|
|
// Use compile-time reflection to access the payload type of an error union:
|
|
try comptime expect(@typeInfo(@TypeOf(foo)).error_union.payload == i32);
|
|
|
|
// Use compile-time reflection to access the error set type of an error union:
|
|
try comptime expect(@typeInfo(@TypeOf(foo)).error_union.error_set == anyerror);
|
|
}
|
|
|
|
// test
|