The r-prefixed waves absorb the runtime, reject, and byte-compare rows of the migrated native carriers; each fixture is one directory with one case.ww and a //ww:error, //ww:compile, //ww:run, or //ww:run-exit directive covering both frontends.
9 lines
450 B
Plaintext
9 lines
450 B
Plaintext
//ww:run-exit 42
|
|
package main;
|
|
type a = !void; type b = !void;
|
|
type big = !struct { f: *fn(p: *i32) i32, data: [3]u64 };
|
|
type u = !(a | b | big);
|
|
fn impl(p: *i32) i32 = { return *p + 41i32; };
|
|
fn mkbig() u = { let x: big; x.f = (&impl): *fn(p: *i32) i32; return x; };
|
|
export fn main() i32 = { let r = mkbig(); match (r) { case a => return 90; case b => return 91; case let z: big => { let n: i32 = 1i32; let fp = z.f; return (*fp)(&n): i32; }; }; };
|