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