Avoid prefer-list-builtin for lambdas with `*args` or `**kwargs` (#3102)

This commit is contained in:
Charlie Marsh 2023-02-21 17:44:37 -05:00 committed by GitHub
parent d93c5811ea
commit fa1459d56e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 1 deletions

View File

@ -18,3 +18,10 @@ class Foo:
class FooTable(BaseTable):
bar = fields.ListField(list)
lambda *args, **kwargs: []
lambda *args: []
lambda **kwargs: []

View File

@ -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));