You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(selfhost): AST producer — full parser error-recovery markers → 565/597
Replicated every malformed_*_span predicate the reference parser records, so the
producer emits the same recovery markers instead of garbage nodes:
- malformed-field / malformed-generic (struct), malformed-param / malformed-generic
/ malformed-effect (fn): emitters now emit only VALID nodes and the markers are
appended after them (ast_oracle_dump order) via count helpers mirroring
parse_fields / parse_params / parse_generic_params / parse_effects.
- Empty type-args (`Map<, T>`) dropped, not dumped (malformed_arg_spans).
- Empty call args (`f(, x)`) → `arg malformed=true` + unknown-expr.
- Match arms without `=>` → malformed-arm, emitted after valid arms.
- Nameless fn (`fn (…)`) → program-level malformed-declaration (section 5, last).
- Control statements: `else` without `{`/`if` → malformed-if; `while {` (no cond)
and `loop <cond> {` → malformed-loop; `match {` (no scrutinee) → malformed-match.
Name-only params (`fn f(x)`) now emit a valid param with an empty type ref.
Corpus reach: 543 -> 565 / 597 byte-exact (+22), still 0 run-failures. Floor -> 565.
42 samples green (10 new malformed fixtures).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
0 commit comments