Skip to content

Commit af5e7de

Browse files
Kunal SaliKunal Sali
authored andcommitted
Fix type checking errors in contains_assignment_expr
- Fix DictExpr iteration: iterate over items directly (items is list[tuple[Expression | None, Expression]]) - Fix IndexExpr: remove unnecessary None check since index is always Expression, not Optional - Addresses mypy self-check failures: - DictExpr has no attribute 'values' - Unreachable code after return statement - Type mismatch in zip iteration
1 parent 227ba5f commit af5e7de

1 file changed

Lines changed: 6 additions & 5 deletions

File tree

mypy/checker.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5087,8 +5087,11 @@ def contains_assignment_expr(self, expr: Expression) -> bool:
50875087

50885088
if isinstance(expr, DictExpr):
50895089
# Check both keys and values
5090-
for k, v in zip(expr.items, expr.values):
5091-
if self.contains_assignment_expr(k) or self.contains_assignment_expr(v):
5090+
# DictExpr.items is list[tuple[Expression | None, Expression]]
5091+
for key_expr, value_expr in expr.items:
5092+
if key_expr is not None and self.contains_assignment_expr(key_expr):
5093+
return True
5094+
if self.contains_assignment_expr(value_expr):
50925095
return True
50935096
return False
50945097

@@ -5117,9 +5120,7 @@ def contains_assignment_expr(self, expr: Expression) -> bool:
51175120
if isinstance(expr, IndexExpr):
51185121
if self.contains_assignment_expr(expr.base):
51195122
return True
5120-
if expr.index is not None:
5121-
return self.contains_assignment_expr(expr.index)
5122-
return False
5123+
return self.contains_assignment_expr(expr.index)
51235124

51245125
# Member access
51255126
if isinstance(expr, MemberExpr):

0 commit comments

Comments
 (0)