Closed
Description
$ cat n.py
from mypy_extensions import TypedDict
class MovieBase(TypedDict):
name: str
year: int
class Movie(MovieBase):
director: 'Movie'
$ mypy n.py
Traceback (most recent call last):
File "/usr/local/bin/mypy", line 11, in <module>
load_entry_point('mypy===0.520-dev-6c61c66641d46682e24341e624d4a8fd6ac32e11', 'console_scripts', 'mypy')()
File "/usr/local/lib/python3.6/site-packages/mypy/__main__.py", line 7, in console_entry
main(None)
File "/usr/local/lib/python3.6/site-packages/mypy/main.py", line 50, in main
res = type_check_only(sources, bin_dir, options)
File "/usr/local/lib/python3.6/site-packages/mypy/main.py", line 97, in type_check_only
options=options)
File "/usr/local/lib/python3.6/site-packages/mypy/build.py", line 196, in build
graph = dispatch(sources, manager)
File "/usr/local/lib/python3.6/site-packages/mypy/build.py", line 1769, in dispatch
process_graph(graph, manager)
File "/usr/local/lib/python3.6/site-packages/mypy/build.py", line 2012, in process_graph
process_stale_scc(graph, scc, manager)
File "/usr/local/lib/python3.6/site-packages/mypy/build.py", line 2113, in process_stale_scc
graph[id].semantic_analysis_apply_patches()
File "/usr/local/lib/python3.6/site-packages/mypy/build.py", line 1675, in semantic_analysis_apply_patches
patch_func()
File "/usr/local/lib/python3.6/site-packages/mypy/semanal.py", line 2468, in patch
fallback.args[1] = join.join_type_list(types)
File "/usr/local/lib/python3.6/site-packages/mypy/join.py", line 392, in join_type_list
joined = join_types(joined, t)
File "/usr/local/lib/python3.6/site-packages/mypy/join.py", line 88, in join_types
return t.accept(TypeJoinVisitor(s))
File "/usr/local/lib/python3.6/site-packages/mypy/types.py", line 427, in accept
return visitor.visit_instance(self)
File "/usr/local/lib/python3.6/site-packages/mypy/join.py", line 141, in visit_instance
return join_instances(t, self.s)
File "/usr/local/lib/python3.6/site-packages/mypy/join.py", line 299, in join_instances
return join_instances_via_supertype(s, t)
File "/usr/local/lib/python3.6/site-packages/mypy/join.py", line 318, in join_instances_via_supertype
assert best is not None
AssertionError