`get_type_hints` fails for `dataclass` in 3.14
Bug report
Bug description:
This code works in 3.13, but fails in 3.14:
from dataclasses import dataclass from typing import get_type_hints @dataclass class MyHintedClass: my_attr: int = 1 def __init__(self): self.hints = get_type_hints(self) my_class = MyHintedClass() print(my_class.hints)
Failure in 3.14:
~\py\pybug: uv run --python=3.14 python main.py Traceback (most recent call last): File "C:\Users\bfrandeen\py\pybug\main.py", line 13, in <module> my_class = MyHintedClass() File "C:\Users\bfrandeen\py\pybug\main.py", line 10, in __init__ self.hints = get_type_hints(self) ~~~~~~~~~~~~~~^^^^^^ File "C:\Users\bfrandeen\AppData\Roaming\uv\python\cpython-3.14.2-windows-x86_64-none\Lib\typing.py", line 2401, in get_type_hints hints = _lazy_annotationlib.get_annotations(obj, format=format) File "C:\Users\bfrandeen\AppData\Roaming\uv\python\cpython-3.14.2-windows-x86_64-none\Lib\annotationlib.py", line 996, in get_annotations raise TypeError(f"{obj!r} does not have annotations") TypeError: MyHintedClass(my_attr=1) does not have annotations
Works in older versions:
~\py\pybug: uv run --python=3.13 python main.py Using CPython 3.13.2 Removed virtual environment at: .venv Creating virtual environment at: .venv Installed 6 packages in 190ms {'my_attr': <class 'int'>}
CPython versions tested on:
3.14, 3.13
Operating systems tested on:
Windows, Linux