01775f2ccc6e22f5d09b30e1e6393d65e0866715
resolvewalk had no per-block scoping: inner-block `let i: u64` persisted past the block end and shadowed the outer `let i: i32`, which then false-positived as u64→i32 not-assignable on the next reference. The TODO at the N_LET tail explicitly deferred per-block scoping; this discharges it. N_BLOCK case mirrors cstage cmd/wcc/check.c:1559-1566: save c.cur, newscope under saved, walk body via n.list, restore. Sole exit is the return after restore — push/pop balanced by structure. All 5 selfhost main.combined.ww files (wwdump, w6c, w6a, w6l, ww) now resolve clean via wwdump_ww -r. Reviewer's independent probe across every .combined.ww outside ref/ confirmed no cascade: only selfhost/cmd/ww went 1→0 (the targeted bug); the other 14 files-with-errors are pre-existing assignability/match-typing issues unrelated to scope resolution. Discharges TODO at N_LET tail. Same-scope dup detection (`let a=1; let a=2;` in one block) stays queued behind #11. Unblocks #50.
Description
No description provided
Languages
C
89.4%
Python
7.2%
Makefile
2.3%
Shell
0.8%
Assembly
0.3%