Skip to content

Commit

Permalink
Fix get_member_expr_fullname returning strings with embedded "None" (#…
Browse files Browse the repository at this point in the history
…17848)

Fixes #17847

### Before
```python
from mypy.nodes import CallExpr, MemberExpr, NameExpr, get_member_expr_fullname
m3 = MemberExpr(MemberExpr(CallExpr(NameExpr("a"), [], [], []), "b"), "c")  # a().b.c

>>> get_member_expr_fullname(m3)
'None.c'
```

### After
```python
from mypy.nodes import CallExpr, MemberExpr, NameExpr, get_member_expr_fullname
m3 = MemberExpr(MemberExpr(CallExpr(NameExpr("a"), [], [], []), "b"), "c")  # a().b.c

>>> get_member_expr_fullname(m3) is None
True
```
  • Loading branch information
brianschubert authored Sep 28, 2024
1 parent 26a77f9 commit ca28425
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion mypy/nodes.py
Original file line number Diff line number Diff line change
Expand Up @@ -4090,7 +4090,7 @@ def get_member_expr_fullname(expr: MemberExpr) -> str | None:
initial = expr.expr.name
elif isinstance(expr.expr, MemberExpr):
initial = get_member_expr_fullname(expr.expr)
else:
if initial is None:
return None
return f"{initial}.{expr.name}"

Expand Down

0 comments on commit ca28425

Please sign in to comment.