cgen: key the str/slice arg recognizers off the checker stamp

The wwstage nodeisstr/nodeisslice recognizers were name-keyed for
every non-local shape: an indirect fn-pointer callee ((*f)() — the
errnotest #59.5 divergence, streq receiving a shifted register file)
and module-global let/const idents (path.sepstr — union-widen pushes
zero-filled len/cap) both fell to false while cstage keys off the
checker stamp unconditionally. Both recognizers now fall back to the
stamped n.type_; push and pop sites share them, so the drain stays
balanced by construction. Graduates the #59.5 errnotest pin.
This commit is contained in:
2026-08-08 00:58:04 +09:00
parent 90af21e132
commit c421c2b20a
6 changed files with 103 additions and 7 deletions

View File

@@ -1,13 +1,13 @@
package wwfixture;
def protocolversion: i32 = 1;
def corpuscount: i32 = 1233;
def corpuscount: i32 = 1236;
def errorcount: i32 = 314;
def compilecount: i32 = 12;
def runcount: i32 = 141;
def runcount: i32 = 144;
def runexitcount: i32 = 766;
def nativecount: i32 = 2466;
def corpushash: str = "65d3642dfb77b486f5aed23044a979bbce37c36fbbcb7a7aedae20d87c7b0e4f";
def nativecount: i32 = 2472;
def corpushash: str = "4c8f4a693d2d8193b15f4215610c1d070dc83493b1189af772ca09cad4a69db7";
type directive = enum i32 {
ERROR = 0,