mirror of
https://codeberg.org/ziglang/zig.git
synced 2026-04-27 19:09:47 +03:00
sema: remove special case check in is_non_err
This commit is contained in:
committed by
Alex Rønne Petersen
parent
5d96a58f1d
commit
c2aeef04e5
@@ -0,0 +1,22 @@
|
||||
// This tests that the variant of an error union is runtime-known when the value is runtime-known.
|
||||
// This might seem obvious but previously the compiler special-cased the situation where a const
|
||||
// was assigned a payload or error value, i.e. instead of another error union.
|
||||
|
||||
export fn foo() void {
|
||||
var runtime_payload: u8 = 0;
|
||||
_ = &runtime_payload;
|
||||
const eu: error{a}!u8 = runtime_payload;
|
||||
if (eu) |_| {} else |_| @compileError("analyzed");
|
||||
}
|
||||
|
||||
export fn bar() void {
|
||||
var runtime_error: error{a} = error.a;
|
||||
_ = &runtime_error;
|
||||
const eu: error{a}!u8 = runtime_error;
|
||||
if (eu) |_| @compileError("analyzed") else |_| {}
|
||||
}
|
||||
|
||||
// error
|
||||
//
|
||||
// :9:29: error: analyzed
|
||||
// :16:17: error: analyzed
|
||||
Reference in New Issue
Block a user