e6621565743b14e03e39e87e0f00e4fe29285275
The concrete→tagged arm walked variants with typeeqast-only, rejecting widenings that aren't strict surface-eq: NAMED-aliased variants, nested tagged inside a variant, and concrete → variant after the wrap-induced exprtype reshape that Commit 3 (#41, variadic wrap re-land) introduces. Replace the walk with a recursive isassignable call per variant, mirroring harec tagged_select_subtype (ref/harec/src/types.c:702-739, recursive type_is_assignable at :718; invoked from the TAGGED arm at :1110-1112) and the byte-id cstage precedent at cmd/wcc/type.c:298-299. The recursive call's leading typeeqast (check.ww:2257) preserves the #55 surface-nominal fast path; the #57 bare-vs-qualified TNAME residual is unchanged. No new test: the new widen path is dormant pre-Commit-3; existing tagged-union tests cover the surface-eq fast path. Commit 3's fmttest exercise will exercise the recursive widen for free. Closes 39 cascade errors that fire once #41 lands.
Description
No description provided
Languages
C
89.4%
Python
7.2%
Makefile
2.3%
Shell
0.8%
Assembly
0.3%