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

73 lines
1.6 KiB
Plaintext

program main
fn make_words(head: string) -> (array string 3)
array string
var head
string "middle"
string "tail"
fn at(values: (array string 3), i: i32) -> string
index
var values
var i
fn echo(values: (array string 3)) -> (array string 3)
var values
fn call_return_index(i: i32) -> string
index
call make_words
string "call"
var i
fn local_array_flow(i: i32) -> string
local let words: (array string 3)
call make_words
string "local"
call at
var words
var i
fn parameter_local_copy(values: (array string 3), i: i32) -> string
local let copy: (array string 3)
var values
index
var copy
var i
fn main() -> i32
if
binary =
call call_return_index
int 1
string "middle"
int 0
int 1
test "string array parameter value flow"
binary =
call at
call make_words
string "alpha"
int 0
string "alpha"
test "string array dynamic index"
binary =
call at
call make_words
string "alpha"
int 2
string "tail"
test "string array local call value flow"
binary =
call local_array_flow
int 1
string "middle"
test "string array parameter local copy"
binary =
call parameter_local_copy
call make_words
string "omega"
int 0
string "omega"
test "string array return call value flow"
binary =
index
call echo
call make_words
string "zeta"
int 2
string "tail"