Hojun-Cho
fa070b6d07
wcc: tagged-union foundations (never, void, flatten, exhaust)
- `never` bottom type: TY_NEVER, assignable to anything; size 0.
- Type-set normalization for N_TTAGGED in resolve_type:
- flatten nested anonymous (A|B)|C → (A|B|C); named aliases stay
nominal (not flattened through)
- dedup duplicates (NAMED pointer-id; others structural)
- drop `never` variants
- collapse single-element set: (T|never) → T, (T|T) → T
- Match exhaustiveness: error when a variant is unhandled and no
default arm covers it. Multi-pattern `case T1 | T2 =>` counts
each alt.
- (T | void) optionals: bare `return;` from a tagged-union-returning
fn emits the void variant's tag (payload undefined; void size 0).
selfhost mirrored: TY_NEVER constant + tynever in tctx + seedprim
entry; voidvariantindex helper; cgreturn bare-return handling.
2026-05-12 01:31:35 +09:00
..
2026-05-12 00:45:18 +09:00
2026-05-12 00:45:18 +09:00
2026-05-12 00:45:18 +09:00
2026-05-11 02:17:47 +09:00
2026-05-12 00:45:18 +09:00
2026-05-12 00:45:18 +09:00
2026-05-12 00:45:18 +09:00
2026-05-12 00:45:18 +09:00
2026-05-11 02:17:47 +09:00
2026-05-11 14:15:53 +09:00
2026-05-12 00:45:18 +09:00
2026-05-12 00:45:18 +09:00
2026-05-12 00:45:18 +09:00
2026-05-12 00:45:18 +09:00
2026-05-11 02:17:47 +09:00
2026-05-12 00:45:18 +09:00
2026-05-12 00:45:18 +09:00
2026-05-11 02:17:47 +09:00
2026-05-12 00:45:18 +09:00
2026-05-12 01:31:35 +09:00
2026-05-11 19:50:37 +09:00