To me this is another proof of the necessity for a separate AST and a type-hint-specific mini-language suggested in Idea: Simpler and More Expressive Type Annotations. There is no scenario where @ needs to work as a math operator[1] in a type hint, and there’s equally no scenario where @ needs to work as an Annotated operator in a non-typing context. The fact that the two have to share the same AST is causing all these problems that are being discussed here, and IMO this fact alone is massively hindering typing in Python.
the same issues would arise with any other operator too ↩︎