The #117 emit_slice_data TY_TUPLE arm fires for any foldable tuple row, but wwstage's checker admits only the (str,*fn) shape and loud-rejects the rest before cgen. Document the retained acceptance divergence at the site (rule 7/8) with the #120 pointer. Comment-only, asm-neutral.
This commit is contained in:
@@ -15234,7 +15234,18 @@ emit_slice_data(FILE *out, Cg *c, const char *directive, const char *name,
|
||||
/* #117 aggregate-element arm: k tuple rows. Validate every row
|
||||
* first (two-pass, partial-row safe). The backing is ONE DATAW
|
||||
* (w6a ignores +off on DATAW), then per-row relocs at the
|
||||
* row's backing-relative offset. */
|
||||
* row's backing-relative offset.
|
||||
*
|
||||
* #120 (retained divergence): this cgen arm fires for ANY
|
||||
* foldable TY_TUPLE row, but wwstage's checker today admits
|
||||
* only the (str,*fn) const-slice shape (fold-6's need) and
|
||||
* loud-rejects the rest ("let: not assignable") before cgen.
|
||||
* So non-(str,*fn) foldable tuple const-slices (e.g.
|
||||
* `[](i64,i64)`, `[](str,i64)`) are cs-accept / ww-checker-
|
||||
* reject — an acceptance divergence (ww LOUD, never silent),
|
||||
* pre-train symmetric-loud, now backstopped only by ww's
|
||||
* checker. Tracked by #120 (#29-kin); align is a checker-layer
|
||||
* concern, out of this cgen fold's scope (rob NARROW). */
|
||||
int stride = etype ? (int)etype->size : 0;
|
||||
for (Node *e = rhs->list; e; e = e->next) {
|
||||
Node *row = e;
|
||||
|
||||
Reference in New Issue
Block a user