program main fn make_i32_values(base: i32) -> (array i32 3) array : (array i32 3) var base : i32 binary + : i32 var base : i32 int 1 : i32 binary + : i32 var base : i32 int 2 : i32 fn make_i64_values(base: i64) -> (array i64 3) array : (array i64 3) var base : i64 binary + : i64 var base : i64 i64 1 : i64 binary + : i64 var base : i64 i64 2 : i64 fn make_f64_values(base: f64) -> (array f64 3) array : (array f64 3) var base : f64 binary + : f64 var base : f64 float 1 : f64 binary + : f64 var base : f64 float 2 : f64 fn make_flags(first: bool) -> (array bool 3) array : (array bool 3) var first : bool bool false : bool bool true : bool fn i32_at(values: (array i32 3), i: i32) -> i32 index : i32 var values : (array i32 3) var i : i32 fn i64_at(values: (array i64 3), i: i32) -> i64 index : i64 var values : (array i64 3) var i : i32 fn f64_at(values: (array f64 3), i: i32) -> f64 index : f64 var values : (array f64 3) var i : i32 fn bool_at(values: (array bool 3), i: i32) -> bool index : bool var values : (array bool 3) var i : i32 fn i64_local_array_flow(i: i32) -> i64 local let values : unit call make_i64_values : (array i64 3) i64 40 : i64 call i64_at : i64 var values : (array i64 3) var i : i32 fn f64_parameter_local_copy(values: (array f64 3), i: i32) -> f64 local let copy : unit var values : (array f64 3) index : f64 var copy : (array f64 3) var i : i32 fn echo_flags(values: (array bool 3)) -> (array bool 3) var values : (array bool 3) fn bool_call_return_index(i: i32) -> bool index : bool call make_flags : (array bool 3) bool true : bool var i : i32 fn main() -> i32 if : i32 call bool_call_return_index : bool int 0 : i32 int 0 : i32 int 1 : i32 test "i32 array parameter value flow" binary = : bool call i32_at : i32 call make_i32_values : (array i32 3) int 7 : i32 int 0 : i32 int 7 : i32 test "i64 array local call value flow" binary = : bool call i64_local_array_flow : i64 int 2 : i32 i64 42 : i64 test "f64 array parameter local copy" binary = : bool call f64_parameter_local_copy : f64 call make_f64_values : (array f64 3) float 4 : f64 int 1 : i32 float 5 : f64 test "bool array dynamic index" call bool_at : bool call make_flags : (array bool 3) bool true : bool int 2 : i32 test "bool array return call value flow" index : bool call echo_flags : (array bool 3) call make_flags : (array bool 3) bool false : bool int 2 : i32