Skip to content

test(parser): validate built-in dispatch names against bundled grammars - #1086

Open
azizur100389 wants to merge 1 commit into
tirth8205:stagingfrom
azizur100389:codex/fix-grammar-validation
Open

azizur100389 wants to merge 1 commit into
tirth8205:stagingfrom
azizur100389:codex/fix-grammar-validation

Conversation

@azizur100389

@azizur100389 azizur100389 commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

Linked issue

Closes #986.

What & why

Nonexistent grammar dispatch names silently match nothing. Add a parameterized contract checking every built-in class, function, import and call dispatch entry with Language.id_for_node_kind. Remove four redundant nonexistent names and correct the PowerShell command node spelling. The full PowerShell extraction fix is in #1079; this PR covers the cross-language grammar contract. Existing multilingual fixtures retain structural behavior.

How it was tested

Applied the same regression/affected-module/full-baseline methodology used in my previous PRs (#274, #276, #279, #353 and #354), against unchanged staging 6b12d11625cbec3b6773e076cb3d136464fa90e5.

  • Final regression module: 203 passed. Bugs reproduce on unchanged staging; compatibility guards cover existing behavior.
  • Affected modules: 658 passed, 10 existing Windows failures. Failure identities are a subset of the unchanged-staging affected baseline (1,169 passed, 15 Windows failures); no new failures.
  • Ruff clean; Bandit zero findings; git diff --check clean.
  • Mypy: the same three pre-existing Windows fcntl LOCK_EX/LOCK_NB/flock errors in daemon.py as staging; no new errors.
  • Schema remains version 13.
python -m pytest tests/test_parser_grammar_contract.py tests/test_multilang.py -q --tb=short
$env:GIT_CEILING_DIRECTORIES = $env:TEMP.Replace('\\', '/') + ';' + (Split-Path $PWD).Replace('\\', '/')
python -m pytest -q --tb=short -m 'not browser and not upgrade' --cov=code_review_graph --cov-report=term --cov-fail-under=65
ruff check code_review_graph tests/test_parser_grammar_contract.py
mypy code_review_graph --ignore-missing-imports --no-strict-optional
bandit -r code_review_graph -c pyproject.toml

GitHub CI: 17 applicable checks passed on the final commit, including Python 3.10–3.13, browser tests, native Windows tests, and the three MCP-client platforms. Python 3.13: 4,471 passed, 804 skipped, 46 deselected, 2 xfailed, 2 xpassed; 85.86% coverage (65% required). The manual upgrade job is skipped by design.

Full local Windows suite: 4,346 passed, 110 failed, 819 skipped, 46 deselected, 2 xfailed, 2 xpassed; 86% coverage. Unchanged staging full baseline: 4,143 passed, 110 failed. Failure identities match unchanged staging; no new failures. An earlier parallel local attempt ended without a final report in the watch tests. This complete rerun used per-test diagnostics and short temporary paths; the earlier partial log is retained. PATH/PYTHONPATH select the isolated checkout, and Git ceilings keep fixture repositories away from the enclosing home Git repository. Browser tests passed in CI; browser and opt-in upgrade tests were excluded locally.

All ten issue fixes were additionally tested together: 283 regression checks passed, and the combined affected suite had 1,142 passed / 25 unchanged-staging Windows failures, with no new failure identities. The tested combination is preserved in this integration branch.

@github-actions

github-actions Bot commented Oct 1, 2026

Copy link
Copy Markdown

code-review-graph review

Overall risk: 0.30 (LOW) — 1 changed function(s)/class(es), 46 affected flow(s), 0 test gap(s)

Risk-scored changes

Risk Level Symbol Location Tested
0.30 low tests/test_parser_grammar_contract.py::test_dispatch_type_exists_in_grammar tests/test_parser_grammar_contract.py:21 (test)

Affected execution flows

  • process — criticality 0.74, 538 node(s) across 14 file(s)
  • _run — criticality 0.74, 565 node(s) across 16 file(s)
  • build_or_update_graph_tool — criticality 0.73, 617 node(s) across 24 file(s)
  • main — criticality 0.72, 923 node(s) across 40 file(s)
  • run_token_benchmark — criticality 0.70, 38 node(s) across 5 file(s)
  • ...and 41 more affected flow(s)

Powered by code-review-graph — local-first analysis; no code leaves the CI runner.

@azizur100389
azizur100389 marked this pull request as ready for review October 1, 2026 17:59

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

nothing checks that the tree-sitter node names the parser looks for are ones the grammar actually produces

1 participant