python-goto icon indicating copy to clipboard operation
python-goto copied to clipboard

breaking from inner loop to the outer corrupts loop variable

Open igolotin opened this issue 4 years ago • 0 comments

Code to reproduce:

from goto import with_goto

content = ["ab", "cd"]
prefix = ['a', 'b']

@with_goto
def test():
    for a in content:
        print(f"1: {a}")
        for p in prefix:
            if a.startswith(p):
                print(f"2: {a}")
                goto .end
        label .end
        print(f"3: {a}")

Expected output for the test() call:

1: ab
2: ab
3: ab
1: ab
3: ab

Actual output:

1: ab
2: ab
3: ab
1: b
2: b
3: b

Version:

python: Python 3.9.7 OS: windows x64

Some thoughts: I believe that at some point the stack become corrupted and inner loop iterations are written to the outer loop variable.

igolotin avatar Oct 27 '21 18:10 igolotin