Closed
Description
Crash Report
Running mypy on a library where typing has recently been added causes a crash while analyzing this line:
https://github.com/Qiskit/qiskit-terra/blob/main/qiskit/circuit/library/blueprintcircuit.py#L72
Traceback
/q/qiskit-terra/qiskit/circuit/library/blueprintcircuit.py:72: error: INTERNAL ERROR -- Please try using mypy master on Github:
https://mypy.readthedocs.io/en/stable/common_issues.html#using-a-development-mypy-build
Please report a bug at https://github.com/python/mypy/issues
version: 0.940+dev.fa16759dc37fa313a2a607974d51d161c8ba5ea6
Traceback (most recent call last):
File "/.pyenv/versions/3.9.4/bin/mypy", line 33, in <module>
sys.exit(load_entry_point('mypy', 'console_scripts', 'mypy')())
File "/q/mypy/mypy/__main__.py", line 12, in console_entry
main(None, sys.stdout, sys.stderr)
File "/q/mypy/mypy/main.py", line 96, in main
res, messages, blockers = run_build(sources, options, fscache, t0, stdout, stderr)
File "/q/mypy/mypy/main.py", line 173, in run_build
res = build.build(sources, options, None, flush_errors, fscache, stdout, stderr)
File "/q/mypy/mypy/build.py", line 180, in build
result = _build(
File "/q/mypy/mypy/build.py", line 256, in _build
graph = dispatch(sources, manager, stdout)
File "/q/mypy/mypy/build.py", line 2715, in dispatch
process_graph(graph, manager)
File "/q/mypy/mypy/build.py", line 3046, in process_graph
process_stale_scc(graph, scc, manager)
File "/q/mypy/mypy/build.py", line 3144, in process_stale_scc
graph[id].type_check_first_pass()
File "/q/mypy/mypy/build.py", line 2183, in type_check_first_pass
self.type_checker().check_first_pass()
File "/q/mypy/mypy/checker.py", line 314, in check_first_pass
self.accept(d)
File "/q/mypy/mypy/checker.py", line 420, in accept
stmt.accept(self)
File "/q/mypy/mypy/nodes.py", line 1005, in accept
return visitor.visit_class_def(self)
File "/q/mypy/mypy/checker.py", line 1785, in visit_class_def
self.accept(defn.defs)
File "/q/mypy/mypy/checker.py", line 420, in accept
stmt.accept(self)
File "/q/mypy/mypy/nodes.py", line 1074, in accept
return visitor.visit_block(self)
File "/q/mypy/mypy/checker.py", line 2047, in visit_block
self.accept(s)
File "/q/mypy/mypy/checker.py", line 420, in accept
stmt.accept(self)
File "/q/mypy/mypy/nodes.py", line 561, in accept
return visitor.visit_overloaded_func_def(self)
File "/q/mypy/mypy/checker.py", line 453, in visit_overloaded_func_def
self._visit_overloaded_func_def(defn)
File "/q/mypy/mypy/checker.py", line 477, in _visit_overloaded_func_def
self.check_method_override(defn)
File "/q/mypy/mypy/checker.py", line 1469, in check_method_override
if self.check_method_or_accessor_override_for_base(defn, base):
File "/q/mypy/mypy/checker.py", line 1497, in check_method_or_accessor_override_for_base
if self.check_method_override_for_base_with_name(defn, name, base):
File "/q/mypy/mypy/checker.py", line 1591, in check_method_override_for_base_with_name
elif is_equivalent(original_type, typ):
File "/q/mypy/mypy/subtypes.py", line 164, in is_equivalent
is_subtype(a, b, ignore_type_params=ignore_type_params,
File "/q/mypy/mypy/subtypes.py", line 94, in is_subtype
return _is_subtype(left, right,
File "/q/mypy/mypy/subtypes.py", line 151, in _is_subtype
return left.accept(SubtypeVisitor(orig_right,
File "/q/mypy/mypy/types.py", line 2057, in accept
return visitor.visit_partial_type(self)
File "/q/mypy/mypy/subtypes.py", line 511, in visit_partial_type
raise RuntimeError(f'Partial type "{left}" cannot be checked with "issubtype()"')
RuntimeError: Partial type "<partial list[?]>" cannot be checked with "issubtype()"
/q/qiskit-terra/qiskit/circuit/library/blueprintcircuit.py:72: : note: use --pdb to drop into pdb
To Reproduce
Install the development version of qiskit-terra
and add the marker that it should be typechecked.
Qiskit/qiskit@02f9a80
run mypy on one of the files in qiskit: mypy qiskit-terra/qiskit/providers/backend.py
Your Environment
- Mypy version used: 0.940+dev.fa16759dc37fa313a2a607974d51d161c8ba5ea6
- Mypy command-line flags:
qiskit-terra/qiskit/providers/backend.py --show-traceback
- Mypy configuration options from
mypy.ini
(and other config files): None - Python version used: Python 3.9.4
- Operating system and version: macOS 11.5.2 (20G95) Darwin 20.6.0