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

82 lines
2.2 KiB
Plaintext

program main
enum Color
variant Red
variant Blue
variant Green
struct Pixel
field x: i32
field label: string
field color: Color
fn make_pixels(head: string) -> (array Pixel 3)
array : (array Pixel 3)
construct Pixel : Pixel
field x
int 1 : i32
field label
var head : string
field color
enum-variant Color.Red #0 : Color
construct Pixel : Pixel
field x
int 2 : i32
field label
string "mid" : string
field color
enum-variant Color.Blue #1 : Color
construct Pixel : Pixel
field x
int 3 : i32
field label
string "tail" : string
field color
enum-variant Color.Green #2 : Color
fn echo_pixels(pixels: (array Pixel 3)) -> (array Pixel 3)
var pixels : (array Pixel 3)
fn at(pixels: (array Pixel 3), i: i32) -> Pixel
index : Pixel
var pixels : (array Pixel 3)
var i : i32
fn first_label(head: string) -> string
field-access label : string
call at : Pixel
call make_pixels : (array Pixel 3)
var head : string
int 0 : i32
fn last_color(head: string) -> Color
field-access color : Color
index : Pixel
call echo_pixels : (array Pixel 3)
call make_pixels : (array Pixel 3)
var head : string
int 2 : i32
fn main() -> i32
match : i32
subject
call last_color : Color
string "head" : string
arm Color.Green
int 0 : i32
arm Color.Red
int 1 : i32
arm Color.Blue
int 1 : i32
test "struct array string field access"
binary = : bool
call first_label : string
string "head" : string
string "head" : string
test "struct array nested enum field access"
binary = : bool
call last_color : Color
string "head" : string
enum-variant Color.Green #2 : Color
test "struct array local param return call flow"
binary = : bool
field-access x : i32
call at : Pixel
call echo_pixels : (array Pixel 3)
call make_pixels : (array Pixel 3)
string "sun" : string
int 1 : i32
int 2 : i32