slovo/tests/enum-payload-direct-scalars.checked.lower
2026-05-22 08:38:43 +02:00

277 lines
9.1 KiB
Plaintext

program main
enum Reading
variant Missing
variant Value i32
variant Offset i32
enum WideReading
variant Missing
variant Value i64
enum RatioReading
variant Missing
variant Value f64
enum FlagReading
variant Missing
variant Value bool
enum LabelReading
variant Missing
variant Value string
struct PayloadRecord
field reading: Reading
field wide: WideReading
field ratio: RatioReading
field flag: FlagReading
field label: LabelReading
fn value(payload: i32) -> Reading
enum-variant Reading.Value #1 payload : Reading
var payload : i32
fn echo_reading(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 call_reading(payload: i32) -> Reading
call echo_reading : Reading
call local_reading : Reading
var payload : i32
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 wide_value(payload: i64) -> WideReading
enum-variant WideReading.Value #1 payload : WideReading
var payload : i64
fn echo_wide(reading: WideReading) -> WideReading
var reading : WideReading
fn local_wide(payload: i64) -> WideReading
local let reading : unit
enum-variant WideReading.Value #1 payload : WideReading
var payload : i64
var reading : WideReading
fn call_wide(payload: i64) -> WideReading
call echo_wide : WideReading
call local_wide : WideReading
var payload : i64
fn wide_code(reading: WideReading) -> i64
match : i64
subject
var reading : WideReading
arm WideReading.Missing
i64 0 : i64
arm WideReading.Value payload
var payload : i64
fn ratio_value(payload: f64) -> RatioReading
enum-variant RatioReading.Value #1 payload : RatioReading
var payload : f64
fn ratio_code(reading: RatioReading) -> f64
match : f64
subject
var reading : RatioReading
arm RatioReading.Missing
float 0 : f64
arm RatioReading.Value payload
var payload : f64
fn flag_value(payload: bool) -> FlagReading
enum-variant FlagReading.Value #1 payload : FlagReading
var payload : bool
fn flag_code(reading: FlagReading) -> bool
match : bool
subject
var reading : FlagReading
arm FlagReading.Missing
bool false : bool
arm FlagReading.Value payload
var payload : bool
fn label_value(payload: string) -> LabelReading
enum-variant LabelReading.Value #1 payload : LabelReading
var payload : string
fn echo_label(reading: LabelReading) -> LabelReading
var reading : LabelReading
fn local_label(payload: string) -> LabelReading
local let reading : unit
enum-variant LabelReading.Value #1 payload : LabelReading
var payload : string
var reading : LabelReading
fn call_label(payload: string) -> LabelReading
call echo_label : LabelReading
call local_label : LabelReading
var payload : string
fn label_text(reading: LabelReading) -> string
match : string
subject
var reading : LabelReading
arm LabelReading.Missing
string "" : string
arm LabelReading.Value payload
var payload : string
fn pack_record(reading: Reading, wide: WideReading, ratio: RatioReading, flag: FlagReading, label: LabelReading) -> PayloadRecord
construct PayloadRecord : PayloadRecord
field reading
var reading : Reading
field wide
var wide : WideReading
field ratio
var ratio : RatioReading
field flag
var flag : FlagReading
field label
var label : LabelReading
fn make_record() -> PayloadRecord
call pack_record : PayloadRecord
enum-variant Reading.Offset #2 payload : Reading
int 5 : i32
enum-variant WideReading.Value #1 payload : WideReading
i64 4294967296 : i64
enum-variant RatioReading.Value #1 payload : RatioReading
float 3.5 : f64
enum-variant FlagReading.Value #1 payload : FlagReading
bool true : bool
enum-variant LabelReading.Value #1 payload : LabelReading
string "hello" : string
fn echo_record(record: PayloadRecord) -> PayloadRecord
var record : PayloadRecord
fn local_record() -> PayloadRecord
local let record : unit
call make_record : PayloadRecord
call echo_record : PayloadRecord
var record : PayloadRecord
fn record_reading_code(record: PayloadRecord) -> i32
call reading_code : i32
field-access reading : Reading
var record : PayloadRecord
fn record_wide_code(record: PayloadRecord) -> i64
call wide_code : i64
field-access wide : WideReading
var record : PayloadRecord
fn record_ratio_code(record: PayloadRecord) -> f64
call ratio_code : f64
field-access ratio : RatioReading
var record : PayloadRecord
fn record_flag_code(record: PayloadRecord) -> bool
call flag_code : bool
field-access flag : FlagReading
var record : PayloadRecord
fn record_label_text(record: PayloadRecord) -> string
call label_text : string
field-access label : LabelReading
var record : PayloadRecord
fn main() -> i32
call record_reading_code : i32
call local_record : PayloadRecord
test "i32 enum constructor equality"
binary = : bool
enum-variant Reading.Value #1 payload : Reading
int 7 : i32
call value : Reading
int 7 : i32
test "i32 enum 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 "i32 enum payloadless equality"
binary = : bool
enum-variant Reading.Missing #0 : Reading
call echo_reading : Reading
enum-variant Reading.Missing #0 : Reading
test "i32 enum local return call flow"
binary = : bool
call call_reading : Reading
int 9 : i32
enum-variant Reading.Value #1 payload : Reading
int 9 : i32
test "i64 enum constructor equality"
binary = : bool
enum-variant WideReading.Value #1 payload : WideReading
i64 4294967296 : i64
call wide_value : WideReading
i64 4294967296 : i64
test "i64 enum local return call flow"
binary = : bool
call call_wide : WideReading
i64 4294967297 : i64
enum-variant WideReading.Value #1 payload : WideReading
i64 4294967297 : i64
test "f64 enum constructor equality"
binary = : bool
enum-variant RatioReading.Value #1 payload : RatioReading
float 3.5 : f64
call ratio_value : RatioReading
float 3.5 : f64
test "f64 enum equality compares payload"
if : bool
binary = : bool
enum-variant RatioReading.Value #1 payload : RatioReading
float 3.5 : f64
enum-variant RatioReading.Value #1 payload : RatioReading
float 4.5 : f64
bool false : bool
bool true : bool
test "bool enum constructor equality"
binary = : bool
enum-variant FlagReading.Value #1 payload : FlagReading
bool true : bool
call flag_value : FlagReading
bool true : bool
test "bool enum match value"
call flag_code : bool
enum-variant FlagReading.Value #1 payload : FlagReading
bool true : bool
test "string enum constructor equality"
binary = : bool
enum-variant LabelReading.Value #1 payload : LabelReading
string "hello" : string
call label_value : LabelReading
string "hello" : string
test "string enum equality compares payload"
if : bool
binary = : bool
enum-variant LabelReading.Value #1 payload : LabelReading
string "left" : string
enum-variant LabelReading.Value #1 payload : LabelReading
string "right" : string
bool false : bool
bool true : bool
test "string enum local return call flow"
binary = : bool
call call_label : LabelReading
string "hello" : string
enum-variant LabelReading.Value #1 payload : LabelReading
string "hello" : string
test "struct field enum i32 flow"
binary = : bool
call record_reading_code : i32
call local_record : PayloadRecord
int 105 : i32
test "struct field enum i64 flow"
binary = : bool
call record_wide_code : i64
call local_record : PayloadRecord
i64 4294967296 : i64
test "struct field enum f64 flow"
binary = : bool
call record_ratio_code : f64
call local_record : PayloadRecord
float 3.5 : f64
test "struct field enum bool flow"
call record_flag_code : bool
call local_record : PayloadRecord
test "struct field enum string flow"
binary = : bool
call record_label_text : string
call local_record : PayloadRecord
string "hello" : string