mypy 没有检测到基本类型错误

mypy not detecting a basic type error

与python 3.5.1。以及当前使用 git 安装的 mypy, mypy 标记错误 1 ​​和 2,但它不报告 3

我做错了什么,或者这是一个错误,还是一个已知问题?

import typing

def test_ordered_dict(od: typing.Dict[str,int]) -> typing.Dict[str,int]:
    return 1   #type error 1

a = test_ordered_dict(1)   #type error 2

def test_me():
    a = test_ordered_dict(1)  # type error 3 is not reported

我对 docs 的理解是,mypy 只会检查一个东西(模块、函数等),如果它指示它应该检查它(通过在模块级别导入类型或通过注释功能)。

所以检查 1 是因为它在类型化的函数中,检查 2 是因为导入类型指示您的模块是类型化的并且它在模块范围内,但 3 在非类型化函数的范围内所以它被忽略。