100 lines
2.5 KiB
Plaintext
100 lines
2.5 KiB
Plaintext
program main
|
|
struct PrimitiveRecord
|
|
field id: i32
|
|
field active: bool
|
|
field label: string
|
|
fn make_record(id: i32, label: string) -> PrimitiveRecord
|
|
construct PrimitiveRecord
|
|
field id
|
|
var id
|
|
field active
|
|
binary =
|
|
var id
|
|
int 7
|
|
field label
|
|
var label
|
|
fn expected_record() -> PrimitiveRecord
|
|
call make_record
|
|
int 7
|
|
string "alpha"
|
|
fn inactive_record() -> PrimitiveRecord
|
|
construct PrimitiveRecord
|
|
field id
|
|
int 3
|
|
field active
|
|
bool false
|
|
field label
|
|
string "beta"
|
|
fn echo_record(record: PrimitiveRecord) -> PrimitiveRecord
|
|
var record
|
|
fn local_record(label: string) -> PrimitiveRecord
|
|
local let record: PrimitiveRecord
|
|
call make_record
|
|
int 7
|
|
var label
|
|
call echo_record
|
|
var record
|
|
fn record_id(record: PrimitiveRecord) -> i32
|
|
field-access id
|
|
var record
|
|
fn record_active(record: PrimitiveRecord) -> bool
|
|
field-access active
|
|
var record
|
|
fn record_label(record: PrimitiveRecord) -> string
|
|
field-access label
|
|
var record
|
|
fn label_matches(record: PrimitiveRecord, label: string) -> bool
|
|
binary =
|
|
field-access label
|
|
var record
|
|
var label
|
|
fn active_score(record: PrimitiveRecord) -> i32
|
|
if
|
|
field-access active
|
|
var record
|
|
field-access id
|
|
var record
|
|
int 0
|
|
fn label_len(record: PrimitiveRecord) -> i32
|
|
call std.string.len
|
|
field-access label
|
|
var record
|
|
fn main() -> i32
|
|
call active_score
|
|
call local_record
|
|
string "alpha"
|
|
test "primitive struct i32 field access"
|
|
binary =
|
|
call record_id
|
|
call expected_record
|
|
int 7
|
|
test "primitive struct bool field predicate"
|
|
call record_active
|
|
call expected_record
|
|
test "primitive struct bool field false branch"
|
|
binary =
|
|
call active_score
|
|
call inactive_record
|
|
int 0
|
|
test "primitive struct string field equality"
|
|
call label_matches
|
|
call expected_record
|
|
string "alpha"
|
|
test "primitive struct string field length"
|
|
binary =
|
|
call label_len
|
|
call expected_record
|
|
int 5
|
|
test "primitive struct local param return call flow"
|
|
binary =
|
|
call active_score
|
|
call local_record
|
|
string "alpha"
|
|
int 7
|
|
test "primitive struct string field access return"
|
|
binary =
|
|
call record_label
|
|
call local_record
|
|
string "alpha"
|
|
string "alpha"
|