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(ast/parser): add quantity slot to Let + ADR-007 hybrid surface syntax
Adds el_quantity to ExprLet and sl_quantity to StmtLet, then threads
two surface forms through the parser per ADR-007 (META.a2ml):
- Option C primary: @linear / @Erased / @unrestricted attribute prefix.
Wired into let_decl, stmt_let, lambda_param, and param.
- Option B sugar: :1 / :0 / :ω numeric annotation after the binder.
Wired into let_decl and stmt_let only. Sugar form on params is
deferred — would require repositioning the existing qty? slot.
Both surface forms parse to the same internal slot. Unknown
@-attribute names and integer literals outside {0, 1} are rejected
at parse time via Parser_errors.Parse_action_error, a new shared
exceptions module that bridges the parser.mly prologue (where
Menhir doesn't expose user exceptions through .mli) to parse_driver
without circular dependency.
Adds parser_errors to the dune modules list.
Mechanical pattern-update sweep across julia_codegen, desugar_traits,
typecheck, and sexpr_dump for the new record fields. Build clean,
test baseline unchanged at this point (this commit is semantically
no-op for enforcement; the scaling logic and fixtures land in the
next commit).
Refs ADR-007, ADR-002.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
0 commit comments