//ww:error "#38b: sret-class tagged call result as a >48B by-value arg unwired (#40-family follow-up)" package main; type oops = !str; type nomem = !void; type wide = struct { xs: []u8, ys: []u8, n: i64 }; fn mk(b: []u8) (wide | oops | nomem) = { return wide { xs = b, ys = b, n = 1 }; }; fn use(r: (wide | oops | nomem)) i64 = { match (r) { case let w: wide => return w.n; case let e: oops => return -1; case nomem => return -2; }; return -3; }; export fn main() i32 = { let buf: [4]u8 = [1u8, 2u8, 3u8, 4u8]; if (use(mk(buf[0:4])) != 1) { return 1; }; return 0; };