Skip to content

Commit

Permalink
Avoid prefer-list-builtin for lambdas with *args or **kwargs (#3102)
Browse files Browse the repository at this point in the history
  • Loading branch information
charliermarsh committed Feb 21, 2023
1 parent d93c581 commit fa1459d
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 1 deletion.
7 changes: 7 additions & 0 deletions crates/ruff/resources/test/fixtures/flake8_pie/PIE807.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,10 @@ class Foo:

class FooTable(BaseTable):
bar = fields.ListField(list)


lambda *args, **kwargs: []

lambda *args: []

lambda **kwargs: []
7 changes: 6 additions & 1 deletion crates/ruff/src/rules/flake8_pie/rules.rs
Original file line number Diff line number Diff line change
Expand Up @@ -358,7 +358,12 @@ pub fn prefer_list_builtin(checker: &mut Checker, expr: &Expr) {
let ExprKind::Lambda { args, body } = &expr.node else {
unreachable!("Expected ExprKind::Lambda");
};
if args.args.is_empty() {
if args.args.is_empty()
&& args.kwonlyargs.is_empty()
&& args.posonlyargs.is_empty()
&& args.vararg.is_none()
&& args.kwarg.is_none()
{
if let ExprKind::List { elts, .. } = &body.node {
if elts.is_empty() {
let mut diagnostic = Diagnostic::new(PreferListBuiltin, Range::from_located(expr));
Expand Down

0 comments on commit fa1459d

Please sign in to comment.