[issue39080] Inconsistency with Starred Expression line/col info
Lysandros Nikolaou
report at bugs.python.org
Tue Dec 17 16:32:08 EST 2019
New submission from Lysandros Nikolaou <lisandrosnik at gmail.com>:
When a starred expression like *[0, 1] is parsed, the following AST gets generated:
Module(
body=[
Expr(
value=Starred(
value=List(
elts=[
Constant(
value=0,
kind=None,
lineno=1,
col_offset=2,
end_lineno=1,
end_col_offset=3,
),
Constant(
value=1,
kind=None,
lineno=1,
col_offset=5,
end_lineno=1,
end_col_offset=6,
),
],
ctx=Load(),
lineno=1,
col_offset=1,
end_lineno=1,
end_col_offset=7,
),
ctx=Load(),
lineno=1,
col_offset=0,
end_lineno=1,
end_col_offset=7,
),
lineno=1,
col_offset=0,
end_lineno=1,
end_col_offset=7,
)
],
type_ignores=[],
)
But, when a starred expression is an argument to a function call then the line/col info are wrong (end_col_offset is always equal to col_offset + 1):
Module(
body=[
Expr(
value=Call(
func=Name(
id="f", ctx=Load(), lineno=1, col_offset=0, end_lineno=1, end_col_offset=1
),
args=[
Starred(
value=List(
elts=[
Constant(
value=0,
kind=None,
lineno=1,
col_offset=4,
end_lineno=1,
end_col_offset=5,
),
Constant(
value=1,
kind=None,
lineno=1,
col_offset=7,
end_lineno=1,
end_col_offset=8,
),
],
ctx=Load(),
lineno=1,
col_offset=3,
end_lineno=1,
end_col_offset=9,
),
ctx=Load(),
lineno=1,
col_offset=2,
end_lineno=1,
end_col_offset=9,
)
],
keywords=[],
lineno=1,
col_offset=0,
end_lineno=1,
end_col_offset=10,
),
lineno=1,
col_offset=0,
end_lineno=1,
end_col_offset=10,
)
],
type_ignores=[],
)
----------
components: Interpreter Core
messages: 358584
nosy: lys.nikolaou
priority: normal
severity: normal
status: open
title: Inconsistency with Starred Expression line/col info
type: behavior
versions: Python 3.8, Python 3.9
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue39080>
_______________________________________
More information about the Python-bugs-list
mailing list