Hi,
I found the reason for this behavior in the code now, it's in Python/ast.c, lines 1745 and 1746 in ast_for_power():
tmp->lineno = e->lineno;
tmp->col_offset = e->col_offset;
Here, the range information for the individual attributes (which is correctly set before!) is being discarded and replaced by the useless information from the expression ast.
I don't see any reason for this, is there one? :)
Removing those two lines doesn't seem to break anything and sets ranges correctly.
Best regards,
Sven |