Skip to content

Multiply-nested closures don't propagate captures correctly #477

@davidhewitt

Description

@davidhewitt

See e.g. the following:

def outer():
    x = 1
    def middle():
        def inner():
            return x
        return inner()
    return middle()

assert outer() == 1, f'got {outer()!r}'

The access of x raises NameError on monty, works fine on CPython.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions