//ww:error "sret-class call result unwired" package main; type e0 = !i64; type big = struct { a: i64, b: i64, c: i64, d: i64, e: i64, f: i64, g: i64 }; type r0 = (big | e0); type r = r0; fn w() r = { let s: big; s.a = 1; s.b = 2; s.c = 3; s.d = 4; s.e = 5; s.f = 6; s.g = 77; return s; }; fn outer() (i64 | e0) = { let v = w()?; return v.g; }; export fn main() i32 = { match (outer()) { case let n: i64 => { if (n != 77) { return 1; }; }; case e0 => { return 2; }; }; return 0; };