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

55 lines
1.5 KiB
Plaintext

program main
enum Color
variant Red
variant Blue
variant Green
fn make_palette() -> (array Color 3)
array : (array Color 3)
enum-variant Color.Red #0 : Color
enum-variant Color.Blue #1 : Color
enum-variant Color.Green #2 : Color
fn echo_palette(colors: (array Color 3)) -> (array Color 3)
var colors : (array Color 3)
fn at(colors: (array Color 3), i: i32) -> Color
index : Color
var colors : (array Color 3)
var i : i32
fn local_pick() -> Color
local let colors : unit
call make_palette : (array Color 3)
index : Color
var colors : (array Color 3)
int 1 : i32
fn main() -> i32
match : i32
subject
call at : Color
call make_palette : (array Color 3)
int 1 : i32
arm Color.Blue
int 0 : i32
arm Color.Red
int 1 : i32
arm Color.Green
int 1 : i32
test "enum array immediate index"
binary = : bool
index : Color
array : (array Color 3)
enum-variant Color.Red #0 : Color
enum-variant Color.Blue #1 : Color
enum-variant Color.Green #2 : Color
int 2 : i32
enum-variant Color.Green #2 : Color
test "enum array local index"
binary = : bool
call local_pick : Color
enum-variant Color.Blue #1 : Color
test "enum array param return dynamic index"
binary = : bool
call at : Color
call echo_palette : (array Color 3)
call make_palette : (array Color 3)
int 0 : i32
enum-variant Color.Red #0 : Color