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

49 lines
927 B
Plaintext

program main
struct Point
field x: i32
field y: i32
fn make_point(x: i32, y: i32) -> Point
construct Point
field x
var x
field y
var y
fn point_x(p: Point) -> i32
field-access x
var p
fn point_sum(p: Point) -> i32
binary +
field-access x
var p
field-access y
var p
fn local_point_sum() -> i32
local let p: Point
call make_point
int 20
int 22
call point_sum
var p
fn main() -> i32
call local_point_sum
test "struct local value flow"
binary =
call local_point_sum
int 42
test "struct parameter value flow"
binary =
call point_x
call make_point
int 7
int 9
int 7
test "stored struct field access"
local let p: Point
call make_point
int 3
int 4
binary =
field-access y
var p
int 4