98 lines
2.7 KiB
Plaintext
98 lines
2.7 KiB
Plaintext
program main
|
|
enum Reading
|
|
variant Empty
|
|
variant Value i32
|
|
struct Measurement
|
|
field amount: i32
|
|
field label: string
|
|
fn bump(value: i32) -> i32
|
|
binary + : i32
|
|
var value : i32
|
|
int 1 : i32
|
|
fn make_counts(base: i32) -> (array i32 3)
|
|
array : (array i32 3)
|
|
var base : i32
|
|
binary + : i32
|
|
var base : i32
|
|
int 1 : i32
|
|
binary + : i32
|
|
var base : i32
|
|
int 2 : i32
|
|
fn pick_count(values: (array i32 3)) -> i32
|
|
index : i32
|
|
var values : (array i32 3)
|
|
int 1 : i32
|
|
fn make_measure(amount: i32) -> Measurement
|
|
construct Measurement : Measurement
|
|
field amount
|
|
var amount : i32
|
|
field label
|
|
string "ok" : string
|
|
fn measure_amount(measure: Measurement) -> i32
|
|
field-access amount : i32
|
|
var measure : Measurement
|
|
fn maybe_amount(amount: i32) -> (option i32)
|
|
some : (option i32)
|
|
var amount : i32
|
|
fn maybe_empty() -> (option i32)
|
|
none : (option i32)
|
|
fn ok_amount(amount: i32) -> (result i32 i32)
|
|
ok : (result i32 i32)
|
|
var amount : i32
|
|
fn err_amount(code: i32) -> (result i32 i32)
|
|
err : (result i32 i32)
|
|
var code : i32
|
|
fn empty_counts() -> (vec i32)
|
|
call std.vec.i32.empty : (vec i32)
|
|
fn reading_value(amount: i32) -> Reading
|
|
enum-variant Reading.Value #1 payload : Reading
|
|
var amount : i32
|
|
fn reading_score(reading: Reading) -> i32
|
|
match : i32
|
|
subject
|
|
var reading : Reading
|
|
arm Reading.Empty
|
|
int 0 : i32
|
|
arm Reading.Value amount
|
|
var amount : i32
|
|
fn main() -> i32
|
|
local let values : unit
|
|
call make_counts : (array i32 3)
|
|
int 40 : i32
|
|
binary + : i32
|
|
call pick_count : i32
|
|
var values : (array i32 3)
|
|
call measure_amount : i32
|
|
call make_measure : Measurement
|
|
int 1 : i32
|
|
test "aliases erase through arrays and structs"
|
|
binary = : bool
|
|
call main : i32
|
|
int 42 : i32
|
|
test "aliases erase through option result vec and enum"
|
|
local let maybe : unit
|
|
call maybe_amount : (option i32)
|
|
int 7 : i32
|
|
local let result : unit
|
|
call ok_amount : (result i32 i32)
|
|
int 8 : i32
|
|
if : bool
|
|
is_some : bool
|
|
var maybe : (option i32)
|
|
if : bool
|
|
is_ok : bool
|
|
var result : (result i32 i32)
|
|
if : bool
|
|
binary = : bool
|
|
call std.vec.i32.len : i32
|
|
call empty_counts : (vec i32)
|
|
int 0 : i32
|
|
binary = : bool
|
|
call reading_score : i32
|
|
call reading_value : Reading
|
|
int 9 : i32
|
|
int 9 : i32
|
|
bool false : bool
|
|
bool false : bool
|
|
bool false : bool
|