Commit c94461a
#135 slice 4 — the triage hypothesised a block/statement LR ambiguity
for testing.affine:302 / math.affine:354. Precise isolation disproved
that: every minimal block/stmt shape parses. The real cause is
keyword-as-identifier (slice-6 class): `total` is the `TOTAL` reserved
keyword (totality marker, `total fn`), so `let total = …` fails to
parse. `let total = 0.0; …` fails; `let tot = 0.0; …` parses.
Rename the `total` *variable* -> `tot` in math.affine `mean`/
`sum_float` (also `let mut`, they reassign in a loop) and testing.affine
`bench`. The `total_time` record field is a different identifier
(`total` only when bare) and is left unchanged; string-literal "total"
text untouched. Pure stdlib rename — zero grammar/compiler risk.
Effect: math.affine PARSE 354 -> RESOLVE; testing.affine PARSE 302 ->
TYPECHECK (both clear the parse wall, advance to distinct deeper
defects). traits.affine:124 is unrelated (`while let` pattern binding)
— a genuine separate construct, still tracked. Suite unaffected
(stdlib-only).
Advances #135. Refs #128, #135.
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent ebec5c6 commit c94461a
2 files changed
Lines changed: 9 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
351 | 351 | | |
352 | 352 | | |
353 | 353 | | |
354 | | - | |
| 354 | + | |
355 | 355 | | |
356 | | - | |
| 356 | + | |
357 | 357 | | |
358 | | - | |
| 358 | + | |
359 | 359 | | |
360 | 360 | | |
361 | 361 | | |
362 | 362 | | |
363 | | - | |
| 363 | + | |
364 | 364 | | |
365 | | - | |
| 365 | + | |
366 | 366 | | |
367 | | - | |
| 367 | + | |
368 | 368 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
299 | 299 | | |
300 | 300 | | |
301 | 301 | | |
302 | | - | |
| 302 | + | |
303 | 303 | | |
304 | 304 | | |
305 | | - | |
306 | | - | |
| 305 | + | |
| 306 | + | |
307 | 307 | | |
308 | 308 | | |
309 | 309 | | |
| |||
0 commit comments