edd27101bf9e0d8c60eadaffb154615fccc653fe
Three Hare pseudo-builtins (len/append/free) were resolving via the generic N_CALL path and leaving e.type_ nil, blocking #15's post- checker assertion. Add inline intercepts in exprtype that stamp e.type_ to mktname("i32")/mktname("void") and return the same tnode, matching the cstage shape at cmd/wcc/check.c:896-1011 (rule 10 stage byte-id). No shadow guard: cstage's len/append/free intercepts have none either, and L85-88 seeds the names into c.top so a same-module decl dup- silences. No arg-walk: resolvewalk descends children before dispatching the parent N_CALL (check.ww:404-417), so args are stamped before the intercept fires. insert/delete deferred — not implemented in either stage. The cstage divergence from harec (len → i32 not size; append → void not tagged) pre-dates this task; #19 (dedicated AST kinds) is the Hare-faithful path. Behavior is transitively covered by the 990-997 byte-id corpus (append used in progs 16, 19, 20); the stamp side gates on #15.
Description
No description provided
Languages
C
89.4%
Python
7.2%
Makefile
2.3%
Shell
0.8%
Assembly
0.3%