90 lines
2.6 KiB
Plaintext
90 lines
2.6 KiB
Plaintext
program main
|
|
enum Reading
|
|
variant Missing
|
|
variant Value i32
|
|
variant Offset i32
|
|
fn missing() -> Reading
|
|
enum-variant Reading.Missing #0 : Reading
|
|
fn value(payload: i32) -> Reading
|
|
enum-variant Reading.Value #1 payload : Reading
|
|
var payload : i32
|
|
fn echo(reading: Reading) -> Reading
|
|
var reading : Reading
|
|
fn local_reading(payload: i32) -> Reading
|
|
local let reading : unit
|
|
enum-variant Reading.Value #1 payload : Reading
|
|
var payload : i32
|
|
var reading : Reading
|
|
fn same_reading(left: Reading, right: Reading) -> bool
|
|
binary = : bool
|
|
var left : Reading
|
|
var right : Reading
|
|
fn reading_code(reading: Reading) -> i32
|
|
match : i32
|
|
subject
|
|
var reading : Reading
|
|
arm Reading.Missing
|
|
int 0 : i32
|
|
arm Reading.Value payload
|
|
var payload : i32
|
|
arm Reading.Offset payload
|
|
binary + : i32
|
|
var payload : i32
|
|
int 100 : i32
|
|
fn call_flow(payload: i32) -> Reading
|
|
call echo : Reading
|
|
call local_reading : Reading
|
|
var payload : i32
|
|
fn main() -> i32
|
|
call reading_code : i32
|
|
call call_flow : Reading
|
|
int 42 : i32
|
|
test "enum payload constructor equality"
|
|
binary = : bool
|
|
enum-variant Reading.Value #1 payload : Reading
|
|
int 7 : i32
|
|
call value : Reading
|
|
int 7 : i32
|
|
test "enum payload equality compares payload"
|
|
if : bool
|
|
binary = : bool
|
|
enum-variant Reading.Value #1 payload : Reading
|
|
int 7 : i32
|
|
enum-variant Reading.Value #1 payload : Reading
|
|
int 8 : i32
|
|
bool false : bool
|
|
bool true : bool
|
|
test "enum payloadless equality"
|
|
binary = : bool
|
|
enum-variant Reading.Missing #0 : Reading
|
|
call missing : Reading
|
|
test "enum payload local return call flow"
|
|
binary = : bool
|
|
call call_flow : Reading
|
|
int 9 : i32
|
|
enum-variant Reading.Value #1 payload : Reading
|
|
int 9 : i32
|
|
test "enum payload parameter equality"
|
|
call same_reading : bool
|
|
call value : Reading
|
|
int 11 : i32
|
|
enum-variant Reading.Value #1 payload : Reading
|
|
int 11 : i32
|
|
test "enum payload match missing"
|
|
binary = : bool
|
|
call reading_code : i32
|
|
enum-variant Reading.Missing #0 : Reading
|
|
int 0 : i32
|
|
test "enum payload match value"
|
|
binary = : bool
|
|
call reading_code : i32
|
|
enum-variant Reading.Value #1 payload : Reading
|
|
int 12 : i32
|
|
int 12 : i32
|
|
test "enum payload match offset"
|
|
binary = : bool
|
|
call reading_code : i32
|
|
enum-variant Reading.Offset #2 payload : Reading
|
|
int 5 : i32
|
|
int 105 : i32
|