-
-
Notifications
You must be signed in to change notification settings - Fork 3k
Closed
Labels
Description
Crash Report
Mypy crashed, the code snippet below is enough to reproduce that.
Traceback
bug.py:34: 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.790
Traceback (most recent call last):
File "/usr/bin/mypy", line 33, in <module>
sys.exit(load_entry_point('mypy==0.790', 'console_scripts', 'mypy')())
File "/usr/lib/python3.9/site-packages/mypy/__main__.py", line 8, in console_entry
main(None, sys.stdout, sys.stderr)
File "/usr/lib/python3.9/site-packages/mypy/main.py", line 90, in main
res = build.build(sources, options, None, flush_errors, fscache, stdout, stderr)
File "/usr/lib/python3.9/site-packages/mypy/build.py", line 180, in build
result = _build(
File "/usr/lib/python3.9/site-packages/mypy/build.py", line 254, in _build
graph = dispatch(sources, manager, stdout)
File "/usr/lib/python3.9/site-packages/mypy/build.py", line 2630, in dispatch
process_graph(graph, manager)
File "/usr/lib/python3.9/site-packages/mypy/build.py", line 2953, in process_graph
process_stale_scc(graph, scc, manager)
File "/usr/lib/python3.9/site-packages/mypy/build.py", line 3051, in process_stale_scc
graph[id].type_check_first_pass()
File "/usr/lib/python3.9/site-packages/mypy/build.py", line 2111, in type_check_first_pass
self.type_checker().check_first_pass()
File "/usr/lib/python3.9/site-packages/mypy/checker.py", line 294, in check_first_pass
self.accept(d)
File "/usr/lib/python3.9/site-packages/mypy/checker.py", line 401, in accept
stmt.accept(self)
File "/usr/lib/python3.9/site-packages/mypy/nodes.py", line 1130, in accept
return visitor.visit_for_stmt(self)
File "/usr/lib/python3.9/site-packages/mypy/checker.py", line 3479, in visit_for_stmt
iterator_type, item_type = self.analyze_iterable_item_type(s.expr)
File "/usr/lib/python3.9/site-packages/mypy/checker.py", line 3499, in analyze_iterable_item_type
iterator = echk.check_method_call_by_name('__iter__', iterable, [], [], expr)[0]
File "/usr/lib/python3.9/site-packages/mypy/checkexpr.py", line 2345, in check_method_call_by_name
method_type = analyze_member_access(method, base_type, context, False, False, True,
File "/usr/lib/python3.9/site-packages/mypy/checkmember.py", line 126, in analyze_member_access
result = _analyze_member_access(name, typ, mx, override_info)
File "/usr/lib/python3.9/site-packages/mypy/checkmember.py", line 155, in _analyze_member_access
return _analyze_member_access(name, tuple_fallback(typ), mx, override_info)
File "/usr/lib/python3.9/site-packages/mypy/checkmember.py", line 143, in _analyze_member_access
return analyze_instance_member_access(name, typ, mx, override_info)
File "/usr/lib/python3.9/site-packages/mypy/checkmember.py", line 215, in analyze_instance_member_access
dispatched_type = meet.meet_types(mx.original_type, typ)
File "/usr/lib/python3.9/site-packages/mypy/meet.py", line 50, in meet_types
return t.accept(TypeMeetVisitor(s))
File "/usr/lib/python3.9/site-packages/mypy/types.py", line 794, in accept
return visitor.visit_instance(self)
File "/usr/lib/python3.9/site-packages/mypy/meet.py", line 526, in visit_instance
return meet_types(t, self.s)
File "/usr/lib/python3.9/site-packages/mypy/meet.py", line 50, in meet_types
return t.accept(TypeMeetVisitor(s))
File "/usr/lib/python3.9/site-packages/mypy/types.py", line 1347, in accept
return visitor.visit_tuple_type(self)
File "/usr/lib/python3.9/site-packages/mypy/meet.py", line 588, in visit_tuple_type
return t.copy_modified(items=[meet_types(it, self.s.args[0]) for it in t.items])
File "/usr/lib/python3.9/site-packages/mypy/meet.py", line 588, in <listcomp>
return t.copy_modified(items=[meet_types(it, self.s.args[0]) for it in t.items])
File "/usr/lib/python3.9/site-packages/mypy/meet.py", line 50, in meet_types
return t.accept(TypeMeetVisitor(s))
File "/usr/lib/python3.9/site-packages/mypy/types.py", line 1098, in accept
return visitor.visit_callable_type(self)
File "/usr/lib/python3.9/site-packages/mypy/meet.py", line 540, in visit_callable_type
if not ((t.is_type_obj() and t.type_object().is_abstract) or
File "/usr/lib/python3.9/site-packages/mypy/types.py", line 1094, in type_object
assert isinstance(ret, Instance)
AssertionError:
bug.py:34: : note: use --pdb to drop into pdb
To Reproduce
import abc
class IClass(metaclass=abc.ABCMeta):
"""Base class"""
class A(IClass):
def __init__(self, el: str, a: IClass) -> None:
self._el = el
self._a = a
class B(IClass):
def __init__(self, b: float) -> None:
self._b = b
def C(b):
return A('-', B(b))
class D(IClass):
def __init__(self, b: float) -> None:
self._b = b
builders = (
C,
D,
)
for builder in builders:
pass
Your Environment
- Mypy version used: 0.790
- Mypy command-line flags: None
- Mypy configuration options from
mypy.ini
(and other config files): default - Python version used: 3.6 and 3.9
- Operating system and version: ArchLinux