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

125 lines
3.5 KiB
Plaintext

program main
struct ArrayRecord
field ints: (array i32 3)
field wides: (array i64 2)
field ratios: (array f64 3)
field flags: (array bool 3)
field words: (array string 3)
fn make_record(base: i32, head: string) -> ArrayRecord
construct ArrayRecord : ArrayRecord
field ints
array : (array i32 3)
var base : i32
binary + : i32
var base : i32
int 1 : i32
binary + : i32
var base : i32
int 2 : i32
field wides
array : (array i64 2)
i64 40 : i64
i64 41 : i64
field ratios
array : (array f64 3)
float 1.5 : f64
float 2.5 : f64
float 3.5 : f64
field flags
array : (array bool 3)
bool false : bool
bool true : bool
bool true : bool
field words
array : (array string 3)
var head : string
string "moon" : string
string "star" : string
fn echo_record(record: ArrayRecord) -> ArrayRecord
var record : ArrayRecord
fn local_record(head: string) -> ArrayRecord
local let record : unit
call make_record : ArrayRecord
int 7 : i32
var head : string
call echo_record : ArrayRecord
var record : ArrayRecord
fn int_at(record: ArrayRecord, i: i32) -> i32
index : i32
field-access ints : (array i32 3)
var record : ArrayRecord
var i : i32
fn wide_at(record: ArrayRecord, i: i32) -> i64
index : i64
field-access wides : (array i64 2)
var record : ArrayRecord
var i : i32
fn ratio_at(record: ArrayRecord, i: i32) -> f64
index : f64
field-access ratios : (array f64 3)
var record : ArrayRecord
var i : i32
fn flag_at(record: ArrayRecord, i: i32) -> bool
index : bool
field-access flags : (array bool 3)
var record : ArrayRecord
var i : i32
fn word_at(record: ArrayRecord, i: i32) -> string
index : string
field-access words : (array string 3)
var record : ArrayRecord
var i : i32
fn main() -> i32
if : i32
call flag_at : bool
call local_record : ArrayRecord
string "sun" : string
int 2 : i32
int 0 : i32
int 1 : i32
test "struct array i32 field access"
binary = : bool
call int_at : i32
call make_record : ArrayRecord
int 7 : i32
string "sun" : string
int 2 : i32
int 9 : i32
test "struct array i64 field access"
binary = : bool
call wide_at : i64
call make_record : ArrayRecord
int 7 : i32
string "sun" : string
int 1 : i32
i64 41 : i64
test "struct array f64 field access"
binary = : bool
call ratio_at : f64
call make_record : ArrayRecord
int 7 : i32
string "sun" : string
int 2 : i32
float 3.5 : f64
test "struct array bool field access"
call flag_at : bool
call make_record : ArrayRecord
int 7 : i32
string "sun" : string
int 1 : i32
test "struct array string field access"
binary = : bool
call word_at : string
call make_record : ArrayRecord
int 7 : i32
string "sun" : string
int 1 : i32
string "moon" : string
test "struct array local param return call flow"
binary = : bool
call word_at : string
call local_record : ArrayRecord
string "sun" : string
int 0 : i32
string "sun" : string