fold-2 chunk C2 (drew's Fam8-13 plan): 14 tuple value-row C drivers migrate to 15 test/lang/*_test.ww @test row-tables (the +1 is 954_tuprecv, slimmed not deleted -- its value rows split out while the asserttyped-stamp dimension stays as a carrier-split C pin, mutation-proven non-vacuous). Reject rows move to 32 test/wcc/data/*/case.ww //ww:error carriers (runww asserts the substring in BOTH stages). The test-lang byte-id (LANGBYTEID) gate gives cs==ww automatically and is strictly more sensitive than re-running the wwstage leg; floor 59->74. Tuple surfaced zero cs!=ww as the plan predicted -- no value-only carve. The 945 trio folds in here; 940_global_sret / 940_str_forrange / 926_tagscr untouched (routed to drew per-file). Test count 402->388 = the 14 retired drivers.
10 lines
365 B
Plaintext
10 lines
365 B
Plaintext
//ww:error "tuple param element overflows integer arg regs (DI/SI/DX/CX/R8/R9); stitch out of scope, see #163"
|
|
package main;
|
|
fn pair(a: i64, b: i64) (i64, i64) = { return (a, b); };
|
|
fn f(a: i64, b: i64, c: i64, d: i64, e: i64, t: (i64, i64)) i64 = {
|
|
return a + b + c + d + e + t.0 + t.1;
|
|
};
|
|
export fn main() i32 = {
|
|
return (f(1, 2, 3, 4, 5, pair(6, 7)): i32);
|
|
};
|