Closed
Description
In the current master mypy crashes with the following minimal repro:
from typing import TypeVar, Generic
from typing_extensions import Protocol
_T = TypeVar("_T")
class Foo( Protocol, Generic[_T] ):
bar: Container[_T]
class Container( Generic[_T] ):
def __init__( s ) -> None: ...
class Bar( Foo[_T] ):
def __init__( s ) -> None:
s.bar = Container[_T]() # crash this line
Mypy traceback
(mypy) $ mypy generic_typevar.pyi --show-traceback
generic_typevar.pyi:15: error: INTERNAL ERROR -- Please try using mypy master on Github:
https://mypy.rtfd.io/en/latest/common_issues.html#using-a-development-mypy-build
Please report a bug at https://github.com/python/mypy/issues
version: 0.730+dev.b405e05e220935dca6aa895045924ee68b435091
Traceback (most recent call last):
File "///.virtualenvs/mypy/bin/mypy", line 10, in <module>
sys.exit(console_entry())
File "///.virtualenvs/mypy/lib/python3.7/site-packages/mypy/__main__.py", line 8, in console_entry
main(None, sys.stdout, sys.stderr)
File "///.virtualenvs/mypy/lib/python3.7/site-packages/mypy/main.py", line 83, in main
res = build.build(sources, options, None, flush_errors, fscache, stdout, stderr)
File "///.virtualenvs/mypy/lib/python3.7/site-packages/mypy/build.py", line 164, in build
result = _build(sources, options, alt_lib_path, flush_errors, fscache, stdout, stderr)
File "///.virtualenvs/mypy/lib/python3.7/site-packages/mypy/build.py", line 224, in _build
graph = dispatch(sources, manager, stdout)
File "///.virtualenvs/mypy/lib/python3.7/site-packages/mypy/build.py", line 2579, in dispatch
process_graph(graph, manager)
File "///.virtualenvs/mypy/lib/python3.7/site-packages/mypy/build.py", line 2892, in process_graph
process_stale_scc(graph, scc, manager)
File "///.virtualenvs/mypy/lib/python3.7/site-packages/mypy/build.py", line 2999, in process_stale_scc
graph[id].type_check_first_pass()
File "///.virtualenvs/mypy/lib/python3.7/site-packages/mypy/build.py", line 2108, in type_check_first_pass
self.type_checker().check_first_pass()
File "///.virtualenvs/mypy/lib/python3.7/site-packages/mypy/checker.py", line 285, in check_first_pass
self.accept(d)
File "///.virtualenvs/mypy/lib/python3.7/site-packages/mypy/checker.py", line 396, in accept
stmt.accept(self)
File "///.virtualenvs/mypy/lib/python3.7/site-packages/mypy/nodes.py", line 922, in accept
return visitor.visit_class_def(self)
File "///.virtualenvs/mypy/lib/python3.7/site-packages/mypy/checker.py", line 1634, in visit_class_def
self.accept(defn.defs)
File "///.virtualenvs/mypy/lib/python3.7/site-packages/mypy/checker.py", line 396, in accept
stmt.accept(self)
File "///.virtualenvs/mypy/lib/python3.7/site-packages/mypy/nodes.py", line 987, in accept
return visitor.visit_block(self)
File "///.virtualenvs/mypy/lib/python3.7/site-packages/mypy/checker.py", line 1830, in visit_block
self.accept(s)
File "///.virtualenvs/mypy/lib/python3.7/site-packages/mypy/checker.py", line 396, in accept
stmt.accept(self)
File "///.virtualenvs/mypy/lib/python3.7/site-packages/mypy/nodes.py", line 663, in accept
return visitor.visit_func_def(self)
File "///.virtualenvs/mypy/lib/python3.7/site-packages/mypy/checker.py", line 707, in visit_func_def
self._visit_func_def(defn)
File "///.virtualenvs/mypy/lib/python3.7/site-packages/mypy/checker.py", line 711, in _visit_func_def
self.check_func_item(defn, name=defn.name())
File "///.virtualenvs/mypy/lib/python3.7/site-packages/mypy/checker.py", line 773, in check_func_item
self.check_func_def(defn, typ, name)
File "///.virtualenvs/mypy/lib/python3.7/site-packages/mypy/checker.py", line 952, in check_func_def
self.accept(item.body)
File "///.virtualenvs/mypy/lib/python3.7/site-packages/mypy/checker.py", line 396, in accept
stmt.accept(self)
File "///.virtualenvs/mypy/lib/python3.7/site-packages/mypy/nodes.py", line 987, in accept
return visitor.visit_block(self)
File "///.virtualenvs/mypy/lib/python3.7/site-packages/mypy/checker.py", line 1830, in visit_block
self.accept(s)
File "///.virtualenvs/mypy/lib/python3.7/site-packages/mypy/checker.py", line 396, in accept
stmt.accept(self)
File "///.virtualenvs/mypy/lib/python3.7/site-packages/mypy/nodes.py", line 1045, in accept
return visitor.visit_assignment_stmt(self)
File "///.virtualenvs/mypy/lib/python3.7/site-packages/mypy/checker.py", line 1864, in visit_assignment_stmt
self.check_assignment(s.lvalues[-1], s.rvalue, s.type is None, s.new_syntax)
File "///.virtualenvs/mypy/lib/python3.7/site-packages/mypy/checker.py", line 1925, in check_assignment
if self.check_compatibility_all_supers(lvalue, lvalue_type, rvalue):
File "///.virtualenvs/mypy/lib/python3.7/site-packages/mypy/checker.py", line 2038, in check_compatibility_all_supers
base_type, base_node = self.lvalue_type_from_base(lvalue_node, base)
File "///.virtualenvs/mypy/lib/python3.7/site-packages/mypy/checker.py", line 2128, in lvalue_type_from_base
assert self_type is not None, "Internal error: base lookup outside class"
AssertionError: Internal error: base lookup outside class
generic_typevar.pyi:15: : note: use --pdb to drop into pdb
Metadata
Metadata
Assignees
Labels
No labels