e0c0f75b2a06d2f1a4081136a86c34734a15fa61
A.6.3 #61 prerequisite (additive, no consumer changes). The tagged-variant machinery (taggedvariantindex / flatvariant* / cgwidentagremap / cgmatch) is AST-keyed -- it walks N_TTAGGED.list and spread-flattens `...inner` at read time. To migrate it onto tinfo.params (#61b/c) the chain must first carry the flattened variant set + per-variant error mark, matching cstage's Type.params / Type.iserror. tinfofornode's TTAGGED arm now splices `...inner` tagged spreads into ti.params (dealias one NAMED level, require TY_TAGGED, inline its already- flattened variants in declaration order) -- mirror of cstage check.c:366-389. Each variant gets an iserror flag via varianterr (TBANG / `!`-aliased). size/align stay accounted off the surface member so ti.size is byte-identical to before; the flatten + iserror have zero readers this commit (the lone TY_TAGGED params reader, nullableptrtag, only fires on 2-variant nullable unions with no spreads). iserror rides the shared tparam struct rather than a sidecar: a cstage-mirror divergence from harec, which carries no per-variant flag (models `!T` as a STORAGE_ERROR type node, ref/harec/include/types.h:144, src/types.c:151-159). Faithful port filed as #62. Spread-only flatten (cstage check.c:373 also flattens non-spread anonymous-nested unions) is a known symmetry gap, inert in bootstrap, tracked for #61b. make test 133/133 (quiescent tree, byte-id 990-997 green).
Description
No description provided
Languages
C
89.4%
Python
7.2%
Makefile
2.3%
Shell
0.8%
Assembly
0.3%