Ken Jin <kenjin4...@gmail.com> added the comment:

Hmm I noticed this occurs in Python 3.9 but not 3.10. If you insert ``from 
__future__ import annotations`` at the start of your code, it stops erroring.

Anyways, I don't think this is dataclass specific, the following code using a 
plain class also errors:

```
from typing import get_type_hints
class T:
    str: str = 'a'

get_type_hints(T) # Error.
```

Inspecting __annotations__ tells us why:

>>> T.__annotations__
{'str': 'a'}

You can see that the annotations are wrong. Meanwhile with from __future__ 
import annotations:
>>> T.__annotations__
{'str': 'str'}

Seeing that SETUP_ANNOTATIONS in ceval.c didn't change, I suspect it's compiler 
related.

----------
nosy: +gvanrossum, kj

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue43257>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to