23 lines
481 B
Plaintext
23 lines
481 B
Plaintext
//ww:run-exit 7
|
|
// Migrated from 700_e2e row 66.
|
|
package main;
|
|
fn lookup(p: *i32, b: bool) (*i32 | void) = {
|
|
if (b) { return p; };
|
|
return;
|
|
};
|
|
fn use_arg(r: (*i32 | void)) i32 = {
|
|
match (r) {
|
|
case let q: *i32 => return *q;
|
|
case void => return 99;
|
|
};
|
|
return 0;
|
|
};
|
|
fn main() i32 = {
|
|
let x: i32 = 42;
|
|
let ok: i32 = use_arg(lookup(&x, true));
|
|
let no: i32 = use_arg(lookup(&x, false));
|
|
if (ok != 42) { return 1; };
|
|
if (no != 99) { return 2; };
|
|
return 7;
|
|
};
|