19 lines
436 B
Plaintext
19 lines
436 B
Plaintext
//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;
|
|
};
|