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

32 lines
560 B
Plaintext

(module main)
(struct Point
(x i32)
(y i32))
(fn make_point ((x i32) (y i32)) -> Point
(Point (x x) (y y)))
(fn point_x ((p Point)) -> i32
(. p x))
(fn point_sum ((p Point)) -> i32
(+ (. p x) (. p y)))
(fn local_point_sum () -> i32
(let p Point (make_point 20 22))
(point_sum p))
(test "struct local value flow"
(= (local_point_sum) 42))
(test "struct parameter value flow"
(= (point_x (make_point 7 9)) 7))
(test "stored struct field access"
(let p Point (make_point 3 4))
(= (. p y) 4))
(fn main () -> i32
(local_point_sum))