35289


**環境**

  * Ubuntu 14.04 LTS
  * Python 3.4.3
  * mypy 0.511

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

[code]

    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"
    
[/code]

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

[code]

    class Foo(object):
        def __init__(self, s):
            # type: (str) -> None
            self.s = s
    
    def unused_func():
        f = Foo(10) # <= 検出されない
    
    if False:
        f = Foo(10) # <= 検出されない
    
[/code]

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

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

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


CC BY-SA 4.0
2017-06-05T03:27:05.807
35287
2019-01-17T02:57:24.747
2019-01-17T02:57:24.747
3060
17238
question
python mypy
mypyで実行されないコードブロックの文も静的解析したい


`--check-untyped-
defs`で`unused_func`の方は警告を出してくれます。これは`--strict`でオンになるフラグに含まれています。


CC BY-SA 3.0
2017-06-05T04:06:06.950
35289
2017-06-05T04:06:06.950
13199
35287
answer