Skip to content

bug: Decorated property not supported #6384

Closed
@thomedes

Description

@thomedes

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

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions