Move remaining lambda rule to deferred pass (#8098)

This commit is contained in:
Charlie Marsh 2023-10-20 13:37:42 -04:00 committed by GitHub
parent b1072049bf
commit ae41d6f30a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 25 deletions

View file

@ -2,7 +2,7 @@ use ruff_python_ast::Expr;
use crate::checkers::ast::Checker; use crate::checkers::ast::Checker;
use crate::codes::Rule; use crate::codes::Rule;
use crate::rules::pylint; use crate::rules::{flake8_pie, pylint};
/// Run lint rules over all deferred lambdas in the [`SemanticModel`]. /// Run lint rules over all deferred lambdas in the [`SemanticModel`].
pub(crate) fn deferred_lambdas(checker: &mut Checker) { pub(crate) fn deferred_lambdas(checker: &mut Checker) {
@ -18,6 +18,9 @@ pub(crate) fn deferred_lambdas(checker: &mut Checker) {
if checker.enabled(Rule::UnnecessaryLambda) { if checker.enabled(Rule::UnnecessaryLambda) {
pylint::rules::unnecessary_lambda(checker, lambda); pylint::rules::unnecessary_lambda(checker, lambda);
} }
if checker.enabled(Rule::ReimplementedListBuiltin) {
flake8_pie::rules::reimplemented_list_builtin(checker, lambda);
}
} }
} }
} }

View file

@ -1267,17 +1267,6 @@ pub(crate) fn expression(expr: &Expr, checker: &mut Checker) {
} }
} }
} }
Expr::Lambda(
lambda @ ast::ExprLambda {
parameters: _,
body: _,
range: _,
},
) => {
if checker.enabled(Rule::ReimplementedListBuiltin) {
flake8_pie::rules::reimplemented_list_builtin(checker, lambda);
}
}
Expr::IfExp(ast::ExprIfExp { Expr::IfExp(ast::ExprIfExp {
test, test,
body, body,

View file

@ -1834,15 +1834,15 @@ impl<'a> Checker<'a> {
for snapshot in deferred_functions { for snapshot in deferred_functions {
self.semantic.restore(snapshot); self.semantic.restore(snapshot);
if let Stmt::FunctionDef(ast::StmtFunctionDef { let Stmt::FunctionDef(ast::StmtFunctionDef {
body, parameters, .. body, parameters, ..
}) = self.semantic.current_statement() }) = self.semantic.current_statement()
{ else {
self.visit_parameters(parameters);
self.visit_body(body);
} else {
unreachable!("Expected Stmt::FunctionDef") unreachable!("Expected Stmt::FunctionDef")
} };
self.visit_parameters(parameters);
self.visit_body(body);
} }
} }
self.semantic.restore(snapshot); self.semantic.restore(snapshot);
@ -1856,19 +1856,19 @@ impl<'a> Checker<'a> {
for snapshot in lambdas { for snapshot in lambdas {
self.semantic.restore(snapshot); self.semantic.restore(snapshot);
if let Some(Expr::Lambda(ast::ExprLambda { let Some(Expr::Lambda(ast::ExprLambda {
parameters, parameters,
body, body,
range: _, range: _,
})) = self.semantic.current_expression() })) = self.semantic.current_expression()
{ else {
if let Some(parameters) = parameters {
self.visit_parameters(parameters);
}
self.visit_expr(body);
} else {
unreachable!("Expected Expr::Lambda"); unreachable!("Expected Expr::Lambda");
};
if let Some(parameters) = parameters {
self.visit_parameters(parameters);
} }
self.visit_expr(body);
deferred.push(snapshot); deferred.push(snapshot);
} }