slovo/tests/local-variables.checked.lower
2026-05-22 08:38:43 +02:00

99 lines
2.3 KiB
Plaintext

program main
fn add_local(a: i32) -> i32
local let one : unit
int 1 : i32
local var total : unit
binary + : i32
var a : i32
var one : i32
set total : unit
binary + : i32
var total : i32
int 1 : i32
var total : i32
fn keep_flag(flag: bool) -> bool
local let local_flag : unit
var flag : bool
var local_flag : bool
fn flip_flag(flag: bool) -> bool
local var current : unit
var flag : bool
set current : unit
if : bool
var current : bool
bool false : bool
bool true : bool
var current : bool
fn add_wide_local(base: i64) -> i64
local var count : unit
var base : i64
set count : unit
binary + : i64
var count : i64
i64 2 : i64
var count : i64
fn add_ratio_local(base: f64) -> f64
local var amount : unit
var base : f64
set amount : unit
binary + : f64
var amount : f64
float 0.5 : f64
var amount : f64
fn main() -> i32
local var flag : unit
bool false : bool
set flag : unit
call flip_flag : bool
var flag : bool
if : i32
var flag : bool
call add_local : i32
int 2 : i32
int 1 : i32
test "locals work"
local let base : unit
int 2 : i32
local var value : unit
call add_local : i32
var base : i32
set value : unit
binary + : i32
var value : i32
int 1 : i32
binary = : bool
var value : i32
int 5 : i32
test "bool let locals work"
local let expected : unit
bool true : bool
local let actual : unit
call keep_flag : bool
var expected : bool
var actual : bool
test "bool let locals preserve false"
if : bool
call keep_flag : bool
bool false : bool
bool false : bool
bool true : bool
test "bool var set flips true"
if : bool
call flip_flag : bool
bool true : bool
bool false : bool
bool true : bool
test "bool var set flips false"
call flip_flag : bool
bool false : bool
test "i64 var set works"
binary = : bool
call add_wide_local : i64
i64 40 : i64
i64 42 : i64
test "f64 var set works"
binary = : bool
call add_ratio_local : f64
float 41.5 : f64
float 42 : f64