Skip to content

UnboundLocalError for new_scope #625

Description

@treykeown

Description

The issue here https://github.com/jcrist/msgspec/blob/4d4a02e62ee7b9ccc5dadaa2b0d1336279561bb4/msgspec/_utils.py#L88
If the else on line 75 is taken, but neither of the two inner if statements are true, new_scope is unset.

Traceback from msgspec:

    return msgspec.msgpack.decode(encoded, type=cls._decode_type)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/.../.venv/lib/python3.12/site-packages/msgspec/_utils.py", line 113, in get_class_annotations
    mro, typevar_mappings = _get_class_mro_and_typevar_mappings(obj)
                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/.../.venv/lib/python3.12/site-packages/msgspec/_utils.py", line 90, in _get_class_mro_and_typevar_mappings
    inner(obj, {})
  File "/Users/.../.venv/lib/python3.12/site-packages/msgspec/_utils.py", line 88, in inner
    inner(b, ...)
  File "/Users/.../.venv/lib/python3.12/site-packages/msgspec/_utils.py", line 88, in inner
    inner(b, new_scope)
  File "/Users/.../.venv/lib/python3.12/site-packages/msgspec/_utils.py", line 88, in inner
    inner(b, new_scope)
             ^^^^^^^^^
UnboundLocalError: cannot access local variable 'new_scope' where it is not associated with a value

I'll work on creating a minimal example.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions