diff --git a/resources/test/fixtures/F841.py b/resources/test/fixtures/F841.py index 785095d19f..a524275b2b 100644 --- a/resources/test/fixtures/F841.py +++ b/resources/test/fixtures/F841.py @@ -22,3 +22,5 @@ def g(): bar = (1, 2) (c, d) = bar + + (x, y) = baz = bar diff --git a/src/ast/operations.rs b/src/ast/operations.rs index 69d532faf2..fac672a98d 100644 --- a/src/ast/operations.rs +++ b/src/ast/operations.rs @@ -101,11 +101,13 @@ pub fn in_nested_block(parent_stack: &[usize], parents: &[&Stmt]) -> bool { /// Check if a node represents an unpacking assignment. pub fn is_unpacking_assignment(stmt: &Stmt) -> bool { if let StmtKind::Assign { targets, value, .. } = &stmt.node { - for child in targets { - match &child.node { - ExprKind::Set { .. } | ExprKind::List { .. } | ExprKind::Tuple { .. } => {} - _ => return false, - } + if !targets.iter().any(|child| { + matches!( + child.node, + ExprKind::Set { .. } | ExprKind::List { .. } | ExprKind::Tuple { .. } + ) + }) { + return false; } match &value.node { ExprKind::Set { .. } | ExprKind::List { .. } | ExprKind::Tuple { .. } => return false,