Ten of the thirteen were already fully twinned — their runtime rows migrated in earlier waves (r56_def_*, r79_*, r78_*, r926_*, r989_m1union_*) and the carriers survived only for a cstage-vs-wwstage byte-compare the blanket test-data-byteid comparator owns once the source is a corpus fixture. The other three needed their remaining inline sources added first: r756_* (4, alias-chain unwrap), r844_bid_src (size(u64) untyped-int compare), r989_structframe_* (3, struct-local frame layout). Every new fixture was verified both-stage: compile exit 0 twice, .s byte-identical, runtime exit as pinned. The five ww_ww-driver-leg carriers among them (785/786/789/790/ m1union) follow the 815/940/951 precedent: content identity owned by their corpus twins, driver-leg identity owned by 989_lib_byteid's sweep. Byte/artifact partition 24 -> 11; carriers 147 -> 134; corpus pin 1495/2990; the stale 915 sweep figure in the docs corrected to the true 1,157 non-error count.
13 lines
380 B
Plaintext
13 lines
380 B
Plaintext
//ww:run
|
|
package main;
|
|
type inner = struct { x: u8, y: u8 };
|
|
type outer = struct { a: u8, p: inner, z: i64 };
|
|
export fn main() int = {
|
|
let o: outer = outer { a = 1, p = inner { x = 2, y = 3 }, z = 0x44444444i64 };
|
|
if (o.a: int != 1) { return 1; };
|
|
if (o.p.x: int != 2) { return 2; };
|
|
if (o.p.y: int != 3) { return 3; };
|
|
if (o.z != 0x44444444i64) { return 4; };
|
|
return 0;
|
|
};
|