7d4feac9591e23963c75684062871782ab5ad3e9
wwstage's size/align/offset builtins returned i32 while their node stamp was already untyped_int -- and cstage returns ty_untyped_int (check.c:1570/1602). The diverging return false-rejected the canonical Hare idiom `let x: size = size(T)` in wwstage (`let: not assignable (i32 -> size)`) where cstage accepts; sha256.ww:189 was the live casualty, quarantined as M_WWREJECT (#59.13) in the byte-id gate. Align wwstage up: return untyped_int at the three sites (check.ww size/align/offset). The len / slice .len / .cap returns stay i32 -- those match cstage (check.c:1534) and are correct. cstage is unchanged. Regenerates the w6c and wwdump combined.ww. Full 990-997 byte-id holds (a size()-mixing comparison emits CMPQ byte-identically on both stages, so the untyped-int widening does not perturb the asm). Table-driven 844 test: the `let x: size = size(T)` family now compiles on both stages.
Description
No description provided
Languages
C
89.4%
Python
7.2%
Makefile
2.3%
Shell
0.8%
Assembly
0.3%