mirror of
https://github.com/astral-sh/ruff.git
synced 2025-09-29 05:15:12 +00:00

This PR productionizes @MichaReiser's suggestion in https://github.com/charliermarsh/ruff/issues/1820#issuecomment-1440204423, by creating a separate crate for the `ast` module (`rust_python_ast`). This will enable us to further split up the `ruff` crate, as we'll be able to create (e.g.) separate sub-linter crates that have access to these common AST utilities. This was mostly a straightforward copy (with adjustments to module imports), as the few dependencies that _did_ require modifications were handled in #3366, #3367, and #3368.
16 lines
596 B
Rust
16 lines
596 B
Rust
use rustpython_parser::ast::{Expr, Stmt, StmtKind};
|
|
|
|
pub fn name(stmt: &Stmt) -> &str {
|
|
match &stmt.node {
|
|
StmtKind::FunctionDef { name, .. } | StmtKind::AsyncFunctionDef { name, .. } => name,
|
|
_ => panic!("Expected StmtKind::FunctionDef | StmtKind::AsyncFunctionDef"),
|
|
}
|
|
}
|
|
|
|
pub fn decorator_list(stmt: &Stmt) -> &Vec<Expr> {
|
|
match &stmt.node {
|
|
StmtKind::FunctionDef { decorator_list, .. }
|
|
| StmtKind::AsyncFunctionDef { decorator_list, .. } => decorator_list,
|
|
_ => panic!("Expected StmtKind::FunctionDef | StmtKind::AsyncFunctionDef"),
|
|
}
|
|
}
|