good first issuehelp wanted
Repository metrics
- Stars
- (803 stars)
- PR merge metrics
- (PR metrics pending)
Description
WARNING - full AI-assisted solutions are not welcome for this issue The point of "Good first issues" is to give a chance to humans to interact and learn about the codebase. Writing code using AI assistant prevents this.
The following currently fails:
def main() -> None:
lst = [(1, 2), (3, 4)]
for (a, b) in lst:
print(a + b)
❯ spy /tmp/x.spy
Traceback (most recent call last):
ParseError: not implemented yet: complex for loop targets
| /tmp/x.spy:3
| for (a, b) in lst:
| |____| this is not supported
We should support it.
I think that the easiest way is to improve ASTFrame._desugar_for, specifically here:
https://github.com/spylang/spy/blob/1c6ad6bdb59541c44b43a55830b2ff6b8c03427c/spy/vm/astframe.py#L755-L765
Instead of generating an ast.Assign node, we should generate an ast.UnpackAssign node.