cpython icon indicating copy to clipboard operation
cpython copied to clipboard

ast.increment_lineno does not increment line numbers in the Module.type_ignores list

Open ricilake opened this issue 2 years ago • 0 comments

Bug report

As indicated in the title, ast.increment_lineno() does not seem to increment the lineno attributes in the Module's list of TypeIgnore objects, with the result that the type ignore list is disconnected from the location attributes in the rest of the AST.

Example:

>>> import sys
>>> print(sys.version)
3.11.0 (main, Oct 24 2022, 19:56:01) [GCC 7.5.0]
>>> import ast
>>> example="""def t():\n  a = 3 # type: ignore"""
>>> tree = ast.parse(example, type_comments=True)
>>> ast.increment_lineno(tree, 10)
<ast.Module object at 0x7fa7505fbe50>
>>> print(tree.body[0].lineno)
11
>>> print(tree.body[0].body[0].lineno)
12
>>> print(tree.type_ignores[0].lineno)
2

Your environment

Tested using Python 3.11 on an Ubuntu Linux system.

ricilake avatar Nov 10 '22 16:11 ricilake