@@ -20,6 +20,9 @@ def __init__(self, register: Register) -> None:
2020 self .register = register
2121 self .type = register .type
2222
23+ def __repr__ (self ) -> str :
24+ return f"AssignmentTargetRegister({ self .register .name } )"
25+
2326
2427class AssignmentTargetIndex (AssignmentTarget ):
2528 """base[index] as assignment target"""
@@ -31,6 +34,9 @@ def __init__(self, base: Value, index: Value) -> None:
3134 # lvalue type in mypy and use a better type to avoid unneeded boxing.
3235 self .type = object_rprimitive
3336
37+ def __repr__ (self ) -> str :
38+ return f"AssignmentTargetIndex({ self .base !r} , { self .index !r} )"
39+
3440
3541class AssignmentTargetAttr (AssignmentTarget ):
3642 """obj.attr as assignment target"""
@@ -48,10 +54,17 @@ def __init__(self, obj: Value, attr: str, can_borrow: bool = False) -> None:
4854 self .obj_type = object_rprimitive
4955 self .type = object_rprimitive
5056
57+ def __repr__ (self ) -> str :
58+ can_borrow_str = ", can_borrow=True" if self .can_borrow else ""
59+ return f"AssignmentTargetAttr({ self .obj !r} .{ self .attr } { can_borrow_str } )"
60+
5161
5262class AssignmentTargetTuple (AssignmentTarget ):
5363 """x, ..., y as assignment target"""
5464
5565 def __init__ (self , items : list [AssignmentTarget ], star_idx : int | None = None ) -> None :
5666 self .items = items
5767 self .star_idx = star_idx
68+
69+ def __repr__ (self ) -> str :
70+ return f"AssignmentTargetTuple({ self .items } , { self .star_idx } )"
0 commit comments