wcc: checker-seam drain — spreads, tuple aliases, yield scoping
Four seams from one review cluster, all landing on the same checker files; gates ran on the union (rule 11 body). ?-subset: the wwstage walk compared `...spread` ALIAS nodes on both sides of the error-subset check, falsely rejecting a spread-carried error return (`(i64 | ...errs)`, cs-accept/ww-reject) — both sides now flatten like trycountvariants (cstage Tparams are pre-flattened at type level). Multi-let/multi-assign: the tuple gates keyed on the RAW rhs kind, rejecting a NAMED tuple alias (`type pair = (i64,i64)`; cs clean- reject, ww asserttyped stop) — both stages chase per #99 alias transparency, wwstage rettupleof peels the alias so cgmassign keeps the str element's len/cap stores, and the catA massign-alias error pin re-rules to a run fixture. The N_MLET diagnostic also printed its operands swapped (elem/declared reversed vs its wording). Yield: match_yield_type didn't descend into N_SWITCH, so a yield inside a switch arm typed the match void and dropped the value (both stages); and a stray yield outside any match arm reached cgen unchecked — both stages now gate on a match-arm counter (the c->loops discipline).
This commit is contained in:
@@ -1,13 +1,13 @@
|
||||
package wwfixture;
|
||||
|
||||
def protocolversion: i32 = 1;
|
||||
def corpuscount: i32 = 1754;
|
||||
def corpuscount: i32 = 1758;
|
||||
def errorcount: i32 = 351;
|
||||
def compilecount: i32 = 21;
|
||||
def runcount: i32 = 209;
|
||||
def runexitcount: i32 = 1173;
|
||||
def nativecount: i32 = 3508;
|
||||
def corpushash: str = "67a119b41fd78b1f2900c096e5b5670e98935d2965573f67bb21ab817931dffa";
|
||||
def runexitcount: i32 = 1177;
|
||||
def nativecount: i32 = 3516;
|
||||
def corpushash: str = "ab5ae796c10e476af0c1f40e0d0b216b3eb708f62b6ee17aafcf79d5e1dd8a69";
|
||||
|
||||
type directive = enum i32 {
|
||||
ERROR = 0,
|
||||
|
||||
Reference in New Issue
Block a user