Add convenience helper methods for AST nodes representing function parameters (#15871)
Some checks are pending
CI / Determine changes (push) Waiting to run
CI / cargo fmt (push) Waiting to run
CI / cargo clippy (push) Blocked by required conditions
CI / cargo test (linux) (push) Blocked by required conditions
CI / cargo test (linux, release) (push) Blocked by required conditions
CI / cargo test (windows) (push) Blocked by required conditions
CI / cargo test (wasm) (push) Blocked by required conditions
CI / cargo build (release) (push) Waiting to run
CI / cargo build (msrv) (push) Blocked by required conditions
CI / cargo fuzz build (push) Blocked by required conditions
CI / fuzz parser (push) Blocked by required conditions
CI / test scripts (push) Blocked by required conditions
CI / ecosystem (push) Blocked by required conditions
CI / cargo shear (push) Blocked by required conditions
CI / python package (push) Waiting to run
CI / pre-commit (push) Waiting to run
CI / mkdocs (push) Waiting to run
CI / formatter instabilities and black similarity (push) Blocked by required conditions
CI / test ruff-lsp (push) Blocked by required conditions
CI / benchmarks (push) Blocked by required conditions

This commit is contained in:
Alex Waygood 2025-02-01 17:16:32 +00:00 committed by GitHub
parent bcdb3f9840
commit d9a1034db0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
36 changed files with 150 additions and 238 deletions

View file

@ -2654,6 +2654,16 @@ pub struct Parameter {
pub annotation: Option<Box<Expr>>,
}
impl Parameter {
pub const fn name(&self) -> &Identifier {
&self.name
}
pub fn annotation(&self) -> Option<&Expr> {
self.annotation.as_deref()
}
}
/// See also [keyword](https://docs.python.org/3/library/ast.html#ast.keyword)
#[derive(Clone, Debug, PartialEq)]
pub struct Keyword {
@ -3147,6 +3157,20 @@ pub struct ParameterWithDefault {
pub default: Option<Box<Expr>>,
}
impl ParameterWithDefault {
pub fn default(&self) -> Option<&Expr> {
self.default.as_deref()
}
pub const fn name(&self) -> &Identifier {
self.parameter.name()
}
pub fn annotation(&self) -> Option<&Expr> {
self.parameter.annotation()
}
}
/// An AST node used to represent the arguments passed to a function call or class definition.
///
/// For example, given: