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

75 lines
1.9 KiB
Plaintext

program main
fn make_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 first(values: (array i32 3)) -> i32
index : i32
var values : (array i32 3)
int 0 : i32
fn at(values: (array i32 3), i: i32) -> i32
index : i32
var values : (array i32 3)
var i : i32
fn echo(values: (array i32 3)) -> (array i32 3)
var values : (array i32 3)
fn call_return_index(i: i32) -> i32
index : i32
call make_values : (array i32 3)
int 10 : i32
var i : i32
fn local_array_flow(i: i32) -> i32
local let values : unit
call make_values : (array i32 3)
int 20 : i32
call at : i32
var values : (array i32 3)
var i : i32
fn parameter_local_copy(values: (array i32 3), i: i32) -> i32
local let copy : unit
var values : (array i32 3)
index : i32
var copy : (array i32 3)
var i : i32
fn main() -> i32
call call_return_index : i32
int 1 : i32
test "array parameter value flow"
binary = : bool
call first : i32
call make_values : (array i32 3)
int 7 : i32
int 7 : i32
test "array dynamic index"
binary = : bool
call at : i32
call make_values : (array i32 3)
int 4 : i32
int 2 : i32
int 6 : i32
test "array local call value flow"
binary = : bool
call local_array_flow : i32
int 1 : i32
int 21 : i32
test "array parameter local copy"
binary = : bool
call parameter_local_copy : i32
call make_values : (array i32 3)
int 40 : i32
int 2 : i32
int 42 : i32
test "array return call value flow"
binary = : bool
index : i32
call echo : (array i32 3)
call make_values : (array i32 3)
int 30 : i32
int 2 : i32
int 32 : i32