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