//ww:run-exit 7 // Migrated from 700_e2e row 67. package main; fn lookup(p: *i32, b: bool) (*i32 | void) = { if (b) { return p; }; return; }; fn main() i32 = { let x: i32 = 42; let r1: (*i32 | void) = lookup(&x, true); let r2: (*i32 | void) = lookup(&x, false); let acc: i32 = 0; if (r1 is *i32) { acc += 1; }; if (r2 is void) { acc += 2; }; let p: *i32 = r1 as *i32; if (*p == 42) { acc += 4; }; return acc; };