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
fix: parser and semantic correctness gaps, enforce benchmark parity
Parser:
- lock: parse and discard the optional trailing `on fail` clause, so
`lock { } on fail e { }` no longer leaves `on` to expression parsing
- member assignment: retain the compound operator on Expr::MemberAssign
via a new `op` field; `self.f += self.f` was being reported as a
self-assignment because the `+` was dropped
- let expression: accept `let var v = ... in ...`, matching
query_let_clause and the let-var-decl grammar
- correct the parse_leading_qualifiers doc: readonly/distinct are
consumed when a class follows, transactional via contextual keywords
Semantic:
- union annotations resolve to Unknown unless every member resolves to
the same type; picking types[0] made `int|string x = "s"` an error
Benchmark script:
- fail immediately when `cargo build --release` fails or the binary is
missing, so a stale binary cannot be benchmarked
- gate the timing on a findings diff between bal scan and blazelint,
and reject timeouts or nonzero exits in the timed runs
Docs:
- relabel the stale "current state" figures in both plans as baselines
- record unused-parameters as shipping `off`, an intentional divergence
Corpus: diagnostic-free files 149 -> 151 of 163, false positives still 0.
0 commit comments