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

363 lines
11 KiB
Plaintext

program main
enum Status
variant Ready
variant Blocked
struct Pair
field left: i32
field right: i32
struct CompositeRecord
field ints: (vec i32)
field wides: (vec i64)
field ratios: (vec f64)
field flags: (vec bool)
field labels: (vec string)
field maybe_count: (option i32)
field maybe_wide: (option i64)
field maybe_ratio: (option f64)
field maybe_flag: (option bool)
field maybe_label: (option string)
field count_result: (result i32 i32)
field wide_result: (result i64 i32)
field ratio_result: (result f64 i32)
field flag_result: (result bool i32)
field label_result: (result string i32)
field pair: Pair
field status: Status
fn make_pair(left: i32, right: i32) -> Pair
construct Pair : Pair
field left
var left : i32
field right
var right : i32
fn vec_i32_pair(base: i32) -> (vec i32)
local let values : unit
call std.vec.i32.empty : (vec i32)
local let first : unit
call std.vec.i32.append : (vec i32)
var values : (vec i32)
var base : i32
call std.vec.i32.append : (vec i32)
var first : (vec i32)
binary + : i32
var base : i32
int 1 : i32
fn vec_i64_pair(base: i64) -> (vec i64)
local let values : unit
call std.vec.i64.empty : (vec i64)
local let first : unit
call std.vec.i64.append : (vec i64)
var values : (vec i64)
var base : i64
call std.vec.i64.append : (vec i64)
var first : (vec i64)
binary + : i64
var base : i64
i64 1 : i64
fn vec_f64_pair(base: f64) -> (vec f64)
local let values : unit
call std.vec.f64.empty : (vec f64)
local let first : unit
call std.vec.f64.append : (vec f64)
var values : (vec f64)
var base : f64
call std.vec.f64.append : (vec f64)
var first : (vec f64)
binary + : f64
var base : f64
float 1 : f64
fn vec_bool_pair(first: bool, second: bool) -> (vec bool)
local let values : unit
call std.vec.bool.empty : (vec bool)
local let left : unit
call std.vec.bool.append : (vec bool)
var values : (vec bool)
var first : bool
call std.vec.bool.append : (vec bool)
var left : (vec bool)
var second : bool
fn vec_string_pair(first: string, second: string) -> (vec string)
local let values : unit
call std.vec.string.empty : (vec string)
local let left : unit
call std.vec.string.append : (vec string)
var values : (vec string)
var first : string
call std.vec.string.append : (vec string)
var left : (vec string)
var second : string
fn make_record() -> CompositeRecord
construct CompositeRecord : CompositeRecord
field ints
call vec_i32_pair : (vec i32)
int 10 : i32
field wides
call vec_i64_pair : (vec i64)
i64 100 : i64
field ratios
call vec_f64_pair : (vec f64)
float 3.5 : f64
field flags
call vec_bool_pair : (vec bool)
bool false : bool
bool true : bool
field labels
call vec_string_pair : (vec string)
string "oak" : string
string "elm" : string
field maybe_count
some : (option i32)
int 7 : i32
field maybe_wide
some : (option i64)
i64 7000000000 : i64
field maybe_ratio
some : (option f64)
float 7.5 : f64
field maybe_flag
some : (option bool)
bool true : bool
field maybe_label
some : (option string)
string "alpha" : string
field count_result
ok : (result i32 i32)
int 9 : i32
field wide_result
ok : (result i64 i32)
i64 9000000000 : i64
field ratio_result
ok : (result f64 i32)
float 9.25 : f64
field flag_result
ok : (result bool i32)
bool true : bool
field label_result
ok : (result string i32)
string "beta" : string
field pair
call make_pair : Pair
int 20 : i32
int 22 : i32
field status
enum-variant Status.Ready #0 : Status
fn echo_record(record: CompositeRecord) -> CompositeRecord
var record : CompositeRecord
fn local_record() -> CompositeRecord
local let record : unit
call make_record : CompositeRecord
call echo_record : CompositeRecord
var record : CompositeRecord
fn ints_second(record: CompositeRecord) -> i32
call std.vec.i32.index : i32
field-access ints : (vec i32)
var record : CompositeRecord
int 1 : i32
fn wides_second(record: CompositeRecord) -> i64
call std.vec.i64.index : i64
field-access wides : (vec i64)
var record : CompositeRecord
int 1 : i32
fn ratios_second(record: CompositeRecord) -> f64
call std.vec.f64.index : f64
field-access ratios : (vec f64)
var record : CompositeRecord
int 1 : i32
fn flags_second(record: CompositeRecord) -> bool
call std.vec.bool.index : bool
field-access flags : (vec bool)
var record : CompositeRecord
int 1 : i32
fn labels_second(record: CompositeRecord) -> string
call std.vec.string.index : string
field-access labels : (vec string)
var record : CompositeRecord
int 1 : i32
fn maybe_count_value(record: CompositeRecord) -> i32
match : i32
subject
field-access maybe_count : (option i32)
var record : CompositeRecord
arm some payload
var payload : i32
arm none
int 0 : i32
fn maybe_wide_value(record: CompositeRecord) -> i64
match : i64
subject
field-access maybe_wide : (option i64)
var record : CompositeRecord
arm some payload
var payload : i64
arm none
i64 0 : i64
fn maybe_ratio_value(record: CompositeRecord) -> f64
match : f64
subject
field-access maybe_ratio : (option f64)
var record : CompositeRecord
arm some payload
var payload : f64
arm none
float 0 : f64
fn maybe_flag_value(record: CompositeRecord) -> bool
match : bool
subject
field-access maybe_flag : (option bool)
var record : CompositeRecord
arm some payload
var payload : bool
arm none
bool false : bool
fn maybe_label_value(record: CompositeRecord) -> string
match : string
subject
field-access maybe_label : (option string)
var record : CompositeRecord
arm some payload
var payload : string
arm none
string "missing" : string
fn count_result_value(record: CompositeRecord) -> i32
match : i32
subject
field-access count_result : (result i32 i32)
var record : CompositeRecord
arm ok payload
var payload : i32
arm err code
var code : i32
fn wide_result_value(record: CompositeRecord) -> i64
match : i64
subject
field-access wide_result : (result i64 i32)
var record : CompositeRecord
arm ok payload
var payload : i64
arm err code
i64 0 : i64
fn ratio_result_value(record: CompositeRecord) -> f64
match : f64
subject
field-access ratio_result : (result f64 i32)
var record : CompositeRecord
arm ok payload
var payload : f64
arm err code
float 0 : f64
fn flag_result_value(record: CompositeRecord) -> bool
match : bool
subject
field-access flag_result : (result bool i32)
var record : CompositeRecord
arm ok payload
var payload : bool
arm err code
bool false : bool
fn label_result_value(record: CompositeRecord) -> string
match : string
subject
field-access label_result : (result string i32)
var record : CompositeRecord
arm ok payload
var payload : string
arm err code
string "missing" : string
fn pair_total(record: CompositeRecord) -> i32
binary + : i32
field-access left : i32
field-access pair : Pair
var record : CompositeRecord
field-access right : i32
field-access pair : Pair
var record : CompositeRecord
fn is_ready(record: CompositeRecord) -> bool
binary = : bool
field-access status : Status
var record : CompositeRecord
enum-variant Status.Ready #0 : Status
fn main() -> i32
call pair_total : i32
call local_record : CompositeRecord
test "struct vec i32 field access"
binary = : bool
call ints_second : i32
call make_record : CompositeRecord
int 11 : i32
test "struct vec i64 field access"
binary = : bool
call wides_second : i64
call make_record : CompositeRecord
i64 101 : i64
test "struct vec f64 field access"
binary = : bool
call ratios_second : f64
call make_record : CompositeRecord
float 4.5 : f64
test "struct vec bool field access"
call flags_second : bool
call make_record : CompositeRecord
test "struct vec string field access"
binary = : bool
call labels_second : string
call make_record : CompositeRecord
string "elm" : string
test "struct option i32 field access"
binary = : bool
call maybe_count_value : i32
call make_record : CompositeRecord
int 7 : i32
test "struct option i64 field access"
binary = : bool
call maybe_wide_value : i64
call make_record : CompositeRecord
i64 7000000000 : i64
test "struct option f64 field access"
binary = : bool
call maybe_ratio_value : f64
call make_record : CompositeRecord
float 7.5 : f64
test "struct option bool field access"
call maybe_flag_value : bool
call make_record : CompositeRecord
test "struct option string field access"
binary = : bool
call maybe_label_value : string
call make_record : CompositeRecord
string "alpha" : string
test "struct result i32 field access"
binary = : bool
call count_result_value : i32
call make_record : CompositeRecord
int 9 : i32
test "struct result i64 field access"
binary = : bool
call wide_result_value : i64
call make_record : CompositeRecord
i64 9000000000 : i64
test "struct result f64 field access"
binary = : bool
call ratio_result_value : f64
call make_record : CompositeRecord
float 9.25 : f64
test "struct result bool field access"
call flag_result_value : bool
call make_record : CompositeRecord
test "struct result string field access"
binary = : bool
call label_result_value : string
call make_record : CompositeRecord
string "beta" : string
test "nested struct field access"
binary = : bool
call pair_total : i32
call make_record : CompositeRecord
int 42 : i32
test "nested struct local param return call flow"
binary = : bool
call pair_total : i32
call local_record : CompositeRecord
int 42 : i32
test "direct enum struct field equality"
call is_ready : bool
call make_record : CompositeRecord