環境

  • Ubuntu 14.04 LTS
  • Python 3.4.3
  • mypy 0.511

下記のように型情報を書いて、mypyを実行すると期待通りエラーが検出されます。

class Foo(object):
    def __init__(self, s):
        # type: (str) -> None
        self.s = s

f = Foo(10)

$ mypy check.py
check.py:10: error: Argument 1 to "Foo" has incompatible type "int"; expected "str"

しかし、未使用関数等の実行されないコードブロック内のエラーが検出されません。

class Foo(object):
    def __init__(self, s):
        # type: (str) -> None
        self.s = s

def unused_func():
    f = Foo(10) # <= 検出されない

if False:
    f = Foo(10) # <= 検出されない

全てのコードを確認するようにするオプションはないのでしょうか?

下記の公式のオプション一覧も確認してみましたが、それらしいものは見当たりませんでした。

http://mypy.readthedocs.io/en/latest/command_line.html