75 lines
1.9 KiB
Plaintext
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
|