New submission from Gil Forcada <gil.gn...@gmail.com>: Given the following code:
class MyClass(object): @property def my_function(self): pass Parsing it with ast module, the lineno and col_offset of the ast.FunctionDef is reported to be where the decorator starts (i.e. line 3 column 4) rather than where the actual def statement is (i.e. line 4 column 4). This is due to the decorator that is part of the ast.FunctionDef, but as there can be multiple decorators (which they don't provide their own lineno and col_offset arguments) and they can span across multiple lines, there is no reliable way to actually know where the actual def statement starts physically. See this bug report on flake8-builtins plugin (I'm the author) reported by @dhood user on github: https://github.com/gforcada/flake8-builtins/issues/22#issuecomment-377961642 ---------- components: Library (Lib) messages: 314861 nosy: gforcada priority: normal severity: normal status: open title: lineno and col_offset are wrong on function definitions with decorators type: behavior versions: Python 2.7, Python 3.4, Python 3.5, Python 3.6, Python 3.7, Python 3.8 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue33211> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com