Closed
Description
When running mypy on a file with the following content:
class Foo:
@property
def bar(self):
return 'baz'
def bar(self):
return 'baz'
It will crash with following traceback:
non-method-property.py:6: error: Decorated property not supported
non-method-property.py:2: error: INTERNAL ERROR -- please report a bug at https://github.com/python/mypy/issues version: 0.680+dev.2ef066fa651ac048d220c751a4f7554b949a2c13
Traceback (most recent call last):
File "/usr/local/bin/mypy", line 11, in <module>
load_entry_point('mypy==0.680+dev.2ef066fa651ac048d220c751a4f7554b949a2c13', 'console_scripts', 'mypy')()
File "/usr/local/lib/python3.6/dist-packages/mypy/__main__.py", line 7, in console_entry
main(None)
File "/usr/local/lib/python3.6/dist-packages/mypy/main.py", line 91, in main
res = build.build(sources, options, None, flush_errors, fscache)
File "/usr/local/lib/python3.6/dist-packages/mypy/build.py", line 162, in build
result = _build(sources, options, alt_lib_path, flush_errors, fscache)
File "/usr/local/lib/python3.6/dist-packages/mypy/build.py", line 217, in _build
graph = dispatch(sources, manager)
File "/usr/local/lib/python3.6/dist-packages/mypy/build.py", line 2388, in dispatch
process_graph(graph, manager)
File "/usr/local/lib/python3.6/dist-packages/mypy/build.py", line 2693, in process_graph
process_stale_scc(graph, scc, manager)
File "/usr/local/lib/python3.6/dist-packages/mypy/build.py", line 2800, in process_stale_scc
graph[id].type_check_first_pass()
File "/usr/local/lib/python3.6/dist-packages/mypy/build.py", line 1947, in type_check_first_pass
self.type_checker().check_first_pass()
File "/usr/local/lib/python3.6/dist-packages/mypy/checker.py", line 282, in check_first_pass
self.accept(d)
File "/usr/local/lib/python3.6/dist-packages/mypy/checker.py", line 393, in accept
stmt.accept(self)
File "/usr/local/lib/python3.6/dist-packages/mypy/nodes.py", line 846, in accept
return visitor.visit_class_def(self)
File "/usr/local/lib/python3.6/dist-packages/mypy/checker.py", line 1535, in visit_class_def
self.accept(defn.defs)
File "/usr/local/lib/python3.6/dist-packages/mypy/checker.py", line 393, in accept
stmt.accept(self)
File "/usr/local/lib/python3.6/dist-packages/mypy/nodes.py", line 911, in accept
return visitor.visit_block(self)
File "/usr/local/lib/python3.6/dist-packages/mypy/checker.py", line 1701, in visit_block
self.accept(s)
File "/usr/local/lib/python3.6/dist-packages/mypy/checker.py", line 393, in accept
stmt.accept(self)
File "/usr/local/lib/python3.6/dist-packages/mypy/nodes.py", line 454, in accept
return visitor.visit_overloaded_func_def(self)
File "/usr/local/lib/python3.6/dist-packages/mypy/checker.py", line 426, in visit_overloaded_func_def
self._visit_overloaded_func_def(defn)
File "/usr/local/lib/python3.6/dist-packages/mypy/checker.py", line 441, in _visit_overloaded_func_def
assert isinstance(fdef, Decorator)
AssertionError:
non-method-property.py:2: : note: use --pdb to drop into pdb
I expected mypy to simply signal an error about reusing a method/property name.
Happening on both Ubuntu 18.04.1 LTS's apt install version and on latest version installed from GitHub. Python 3.6.7