Repository navigation
Conversation
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
The compiled parser source must be regenerated and committed for clean builds to include the fix.
Review effort: Balanced
Findings: 1
Open (1)
What changed in this PR
Updates the Python extractor grammar to accept trailing commas in PEP 695 type parameter lists, addressing #22739.
Changes:
- Allows an optional trailing comma in the grammar.
- Adds parser fixtures for type aliases, functions, and classes.
| File | Description |
|---|---|
python/extractor/tsg-python/tsp/src/grammar.json |
Updates the generated grammar definition. |
python/extractor/tsg-python/tsp/grammar.js |
Allows trailing commas in type parameter lists. |
python/extractor/tests/parser/type_parameters_new.py |
Adds regression inputs for all three declaration forms. |
python/extractor/tests/parser/type_parameters_new.expected |
Records expected parser output. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
tausbn
left a comment
There was a problem hiding this comment.
Looks good to me. Needs to be rebased and regenerated, since other changes to the extractor were merged.
(Also, usually an extractor change should come with a version bump in util.py, but in this case it was bumped last week, so I don't think we need to do so again.)
Was that before after the release was branched? If it was before we might still want to bump. |
|
I think it was after, but to be sure, you can just bump it again. |
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
8dfe09c to
199a93f
Compare
Copilot did its thing. |

Vibe coded by Copilot.
Trailing commas in PEP 695 type parameter lists are valid Python syntax and are emitted by formatters when a list is split across lines. Accept an optional trailing comma in the Tree-sitter grammar and add extractor parser coverage for type aliases, functions, and classes.
Fixes #22739
Testing
pytest -q tests/test_parser.py(39 passed)