Hojun-Cho
5abb1e6069
wwstage: port struct embedding; graduate #59.13
...
The last frontend-gap pin: wwstage had no Hare struct embedding
(struct { hash.hash, ... }), rejecting lib/crypto/sha256 at parse.
- parse.ww: the three member forms (named / anonymous struct / bare
dotted-ident embed), consume-then-branch since this parser has no
peek; embeds carry f.str == "" and the type in f.lhs.
- check.ww N_TSTRUCT flatten: promote the inner struct's flattened
fields at base+src.offset (check.c:961-990); the embed is one
nested-struct unit in the slot ladder; the resolved inner AST is
planted on the TFIELD rhs for cgen.
- check.ww walkers: astoffset / exprtype N_DOT / #251 struct-lit
field lookups descend embeds through shared helpers; the collision
and non-struct-embed rejects live in validatestructfields (the
once-per-decl diagnostic site).
- cgenutil.ww registerstruct: regfieldrun walks the AST against the
flattened tfield cursor, descending embeds via the planted inner
AST so promoted fieldinfo entries keep the inner field's own name
and type node.
- wwi printers unchanged (both stages already emit nameless fields).
sha256_test compiles byte-identically end to end and its 6 tests
pass; 989_lib_byteid is now 44 id / 0 divergent / 0 wwreject.
Fixtures r5913_* (promoted rw, offset shift, anonymous embed,
two-level embed + promoted fn-ptr callee, three rejects); corpus pin
1485/2970.
2026-08-08 02:37:50 +09:00
..
2026-08-08 02:37:50 +09:00
2026-08-07 23:21:04 +09:00
2026-06-18 22:47:53 +09:00
2026-08-07 23:21:04 +09:00
2026-06-29 03:55:26 +09:00
2026-06-29 03:55:26 +09:00
2026-08-07 23:21:04 +09:00
2026-06-29 03:55:26 +09:00
2026-05-12 11:35:50 +09:00
2026-05-12 12:45:11 +09:00
2026-08-05 18:19:40 +09:00
2026-06-29 03:55:26 +09:00
2026-08-07 23:21:04 +09:00
2026-05-12 13:44:27 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-06-29 03:55:26 +09:00
2026-06-29 03:55:26 +09:00
2026-06-29 03:55:26 +09:00
2026-06-29 03:55:26 +09:00
2026-06-29 03:55:26 +09:00
2026-06-29 03:55:26 +09:00
2026-08-08 01:34:05 +09:00
2026-05-18 18:25:36 +09:00
2026-06-29 03:55:26 +09:00
2026-05-18 18:25:36 +09:00
2026-08-07 23:21:04 +09:00
2026-05-18 18:25:36 +09:00
2026-05-18 18:25:36 +09:00
2026-05-18 18:25:36 +09:00
2026-05-18 18:25:36 +09:00
2026-08-07 23:21:04 +09:00
2026-05-18 19:22:27 +09:00
2026-06-29 03:55:26 +09:00
2026-06-29 03:55:26 +09:00
2026-06-29 03:55:26 +09:00
2026-06-29 03:55:26 +09:00
2026-08-07 23:21:04 +09:00
2026-05-18 23:37:16 +09:00
2026-06-16 01:36:14 +09:00
2026-05-19 00:58:28 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-08 01:34:05 +09:00
2026-08-08 01:34:05 +09:00
2026-08-08 01:34:05 +09:00
2026-08-08 01:34:05 +09:00
2026-08-08 01:34:05 +09:00
2026-08-08 01:34:05 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-08 01:34:05 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-06-29 03:55:26 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-08 01:34:05 +09:00
2026-08-08 01:34:05 +09:00
2026-05-28 08:07:19 +09:00
2026-05-28 09:06:54 +09:00
2026-05-28 09:06:54 +09:00
2026-06-18 00:32:13 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:28:49 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-06-10 20:45:46 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-08 01:34:05 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-06-13 04:43:57 +09:00
2026-08-08 01:34:05 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-08 02:37:50 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-08 01:34:05 +09:00
2026-08-08 01:34:05 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-08 01:34:05 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-06-13 04:40:58 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:21:04 +09:00
2026-08-07 23:28:49 +09:00
2026-08-07 23:28:49 +09:00
2026-08-08 01:34:05 +09:00
2026-08-08 01:34:05 +09:00
2026-08-08 01:34:05 +09:00
2026-08-07 23:28:49 +09:00
2026-06-29 03:55:26 +09:00