mirror of
https://github.com/astral-sh/ruff.git
synced 2025-08-27 05:44:18 +00:00
Add convenience methods for iterating over all parameter nodes in a function (#11174)
This commit is contained in:
parent
8a887daeb4
commit
87929ad5f1
27 changed files with 399 additions and 448 deletions
|
@ -348,39 +348,18 @@ pub fn any_over_stmt(stmt: &Stmt, func: &dyn Fn(&Expr) -> bool) -> bool {
|
|||
returns,
|
||||
..
|
||||
}) => {
|
||||
parameters
|
||||
.posonlyargs
|
||||
.iter()
|
||||
.chain(parameters.args.iter().chain(parameters.kwonlyargs.iter()))
|
||||
.any(|parameter| {
|
||||
parameter
|
||||
.default
|
||||
.as_ref()
|
||||
.is_some_and(|expr| any_over_expr(expr, func))
|
||||
|| parameter
|
||||
.parameter
|
||||
.annotation
|
||||
.as_ref()
|
||||
.is_some_and(|expr| any_over_expr(expr, func))
|
||||
})
|
||||
|| parameters.vararg.as_ref().is_some_and(|parameter| {
|
||||
parameter
|
||||
.annotation
|
||||
.as_ref()
|
||||
.is_some_and(|expr| any_over_expr(expr, func))
|
||||
})
|
||||
|| parameters.kwarg.as_ref().is_some_and(|parameter| {
|
||||
parameter
|
||||
.annotation
|
||||
.as_ref()
|
||||
.is_some_and(|expr| any_over_expr(expr, func))
|
||||
})
|
||||
|| type_params.as_ref().is_some_and(|type_params| {
|
||||
type_params
|
||||
.iter()
|
||||
.any(|type_param| any_over_type_param(type_param, func))
|
||||
})
|
||||
|| body.iter().any(|stmt| any_over_stmt(stmt, func))
|
||||
parameters.iter().any(|param| {
|
||||
param
|
||||
.default()
|
||||
.is_some_and(|default| any_over_expr(default, func))
|
||||
|| param
|
||||
.annotation()
|
||||
.is_some_and(|annotation| any_over_expr(annotation, func))
|
||||
}) || type_params.as_ref().is_some_and(|type_params| {
|
||||
type_params
|
||||
.iter()
|
||||
.any(|type_param| any_over_type_param(type_param, func))
|
||||
}) || body.iter().any(|stmt| any_over_stmt(stmt, func))
|
||||
|| decorator_list
|
||||
.iter()
|
||||
.any(|decorator| any_over_expr(&decorator.expression, func))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue