//ww:run-exit 7 // Migrated from 700_e2e row 69. package main; fn inner(n: i32) (i32 | str | bool) = { if (n == 0) { return "z"; }; if (n < 0) { return false; }; return n; }; fn outer(n: i32) (i64 | bool | str) = { let v: i32 = inner(n)?; return v: i64 + 1000; }; fn main() i32 = { let r: (i64 | bool | str) = outer(-1); match (r) { case let n: i64 => return n: i32; case let b: bool => { if (!b) { return 7; }; return 8; }; case let s: str => return 9; }; return 0; };