mirror of
https://github.com/astral-sh/ruff.git
synced 2025-08-24 12:24:36 +00:00
Auto-generate AST boilerplate (#15544)
This PR replaces most of the hard-coded AST definitions with a generation script, similar to what happens in `rust_python_formatter`. I've replaced every "rote" definition that I could find, where the content is entirely boilerplate and only depends on what syntax nodes there are and which groups they belong to. This is a pretty massive diff, but it's entirely a refactoring. It should make absolutely no changes to the API or implementation. In particular, this required adding some configuration knobs that let us override default auto-generated names where they don't line up with types that we created previously by hand. ## Test plan There should be no changes outside of the `rust_python_ast` crate, which verifies that there were no API changes as a result of the auto-generation. Aggressive `cargo clippy` and `uvx pre-commit` runs after each commit in the branch. --------- Co-authored-by: Micha Reiser <micha@reiser.io> Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
This commit is contained in:
parent
4351d85d24
commit
8e3633f55a
15 changed files with 10074 additions and 8513 deletions
|
@ -24,7 +24,7 @@ nodes_file = (
|
|||
root.joinpath("crates")
|
||||
.joinpath("ruff_python_ast")
|
||||
.joinpath("src")
|
||||
.joinpath("node.rs")
|
||||
.joinpath("generated.rs")
|
||||
.read_text()
|
||||
)
|
||||
node_lines = (
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue