From 8ff4abae0e465fec4a752d6fe39641dedea65b11 Mon Sep 17 00:00:00 2001 From: Ivan Levkivskyi Date: Wed, 19 Jul 2017 20:28:04 +0200 Subject: [PATCH] Fix crash in --quick mode when aliases are re-exported --- mypy/fixup.py | 3 +++ test-data/unit/check-incremental.test | 23 +++++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/mypy/fixup.py b/mypy/fixup.py index 5cb1188072cc..d60ac5556d7e 100644 --- a/mypy/fixup.py +++ b/mypy/fixup.py @@ -88,6 +88,9 @@ def visit_symbol_table(self, symtab: SymbolTable) -> None: if stnode is not None: value.node = stnode.node value.type_override = stnode.type_override + if (self.quick_and_dirty and value.kind == TYPE_ALIAS and + stnode.type_override is None): + value.type_override = Instance(stale_info(), []) value.alias_tvars = stnode.alias_tvars or [] elif not self.quick_and_dirty: assert stnode is not None, "Could not find cross-ref %s" % (cross_ref,) diff --git a/test-data/unit/check-incremental.test b/test-data/unit/check-incremental.test index e68f729f9a09..557d42a1ec42 100644 --- a/test-data/unit/check-incremental.test +++ b/test-data/unit/check-incremental.test @@ -2707,6 +2707,29 @@ b.x.y tmp/c.py:2: error: Revealed type is '' tmp/c.py:5: error: "" has no attribute "y" +[case testNoCrashOnDoubleImportAliasQuick] +# cmd: mypy -m e +# cmd2: mypy -m c +# cmd3: mypy -m e +# flags: --quick +[file c.py] +from typing import List +Alias = List[int] +[file c.py.2] +from typing import List +Alias = int + +[file d.py] +from c import Alias + +[file e.py] +from d import Alias +[file e.py.3] +from d import Alias +x: Alias +[out3] +[builtins fixtures/list.pyi] + [case testSerializeAbstractPropertyIncremental] from abc import abstractmethod import typing