В Python 3.6 на языке были введены новые Variable Annotations.
Но, когда тип не существует, могут произойти две разные вещи:
>>> def test():
... a: something = 0
...
>>> test()
>>>
>>> a: something = 0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'something' is not defined
Почему поведение несуществующего типа отличается? Разве это не могло бы заставить вас игнорировать типы undefined в функциях?
Примечания
Пробовал как Python 3.6 RC1, так и RC2 - такое же поведение.
PyCharm выделяет something
как "нерешенную ссылку" как внутри, так и снаружи функции.