60 lines
1.2 KiB
Plaintext
60 lines
1.2 KiB
Plaintext
program main
|
|
fn base() -> i64
|
|
i64 2147483648
|
|
fn adjust(value: i64, delta: i64) -> i64
|
|
binary +
|
|
var value
|
|
var delta
|
|
fn doubled(value: i64) -> i64
|
|
binary *
|
|
var value
|
|
i64 2
|
|
fn local_total() -> i64
|
|
local let offset: i64
|
|
i64 -7
|
|
call adjust
|
|
binary -
|
|
call doubled
|
|
call base
|
|
i64 0
|
|
var offset
|
|
fn high_enough(value: i64) -> bool
|
|
if
|
|
binary >
|
|
var value
|
|
i64 4294967280
|
|
binary <
|
|
var value
|
|
i64 4294967300
|
|
bool false
|
|
fn exact_i64() -> bool
|
|
binary =
|
|
call local_total
|
|
i64 4294967289
|
|
fn main() -> i32
|
|
call std.io.print_i64
|
|
call local_total
|
|
if
|
|
call high_enough
|
|
call local_total
|
|
int 0
|
|
int 1
|
|
test "i64 arithmetic returns exact fixture value"
|
|
call exact_i64
|
|
test "i64 comparison works in predicates"
|
|
call high_enough
|
|
call local_total
|
|
test "i64 division and ordering"
|
|
if
|
|
binary >=
|
|
binary /
|
|
call local_total
|
|
i64 3
|
|
i64 1431655763
|
|
binary <=
|
|
binary /
|
|
call local_total
|
|
i64 3
|
|
i64 1431655763
|
|
bool false
|