AST unparsing of infinity numbers produces a string which can't be evaluated because inf and infj are not builtins.
>>> from __future__ import annotations
>>> def f(x: A[1e1000, 1e1000j]): pass
...
>>> f.__annotations__
{'x': 'A[(inf, infj)]'}
See how this problem is handled in Tools/parser/unparse.py.
There is similar problem with NaN. NaN can't be a result of parsing Python sources, but it can be injected manually in AST, and it can be a result of third-party AST optimizer.