slovo/tests/enum-basic.checked.lower
2026-05-22 08:38:43 +02:00

65 lines
1.7 KiB
Plaintext

program main
enum Signal
variant Red
variant Yellow
variant Green
fn red() -> Signal
enum-variant Signal.Red #0 : Signal
fn yellow() -> Signal
enum-variant Signal.Yellow #1 : Signal
fn echo(signal: Signal) -> Signal
var signal : Signal
fn local_signal() -> Signal
local let signal : unit
enum-variant Signal.Green #2 : Signal
var signal : Signal
fn same_signal(left: Signal, right: Signal) -> bool
binary = : bool
var left : Signal
var right : Signal
fn signal_code(signal: Signal) -> i32
match : i32
subject
var signal : Signal
arm Signal.Red
int 1 : i32
arm Signal.Yellow
local let code : unit
int 2 : i32
var code : i32
arm Signal.Green
int 3 : i32
fn call_flow() -> Signal
call echo : Signal
call local_signal : Signal
fn main() -> i32
call signal_code : i32
call call_flow : Signal
test "enum constructor equality"
binary = : bool
enum-variant Signal.Red #0 : Signal
call red : Signal
test "enum local return call flow"
binary = : bool
call call_flow : Signal
enum-variant Signal.Green #2 : Signal
test "enum parameter equality"
call same_signal : bool
call yellow : Signal
enum-variant Signal.Yellow #1 : Signal
test "enum match red"
binary = : bool
call signal_code : i32
enum-variant Signal.Red #0 : Signal
int 1 : i32
test "enum match multi expression arm"
binary = : bool
call signal_code : i32
enum-variant Signal.Yellow #1 : Signal
int 2 : i32
test "enum match green"
binary = : bool
call signal_code : i32
call call_flow : Signal
int 3 : i32