Skip to content

destructing assignment works wrong with for generator #449

Description

@INoorik

Code like this

{a, b}=for i in*{2,3}do i*i
print a, b

Compiles to

dolocal_accum_0= { }
local_len_0=1local_list_0= {
2,
3
}
for_index_0=1, #_list_0dolocali=_list_0[_index_0]
_accum_0[_len_0] =i*i_len_0=_len_0+1endlocala, ba, b=_accum_0[1], _accum_0[2]
endreturnprint(a, b)

There variables a and b are local, so execution result is nil nil instead of 4 9

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions