mirror of
https://github.com/python/cpython.git
synced 2025-08-19 00:00:48 +00:00
gh-94869: Fix the location in some expressions for multi-line f-string ast nodes (GH-94895) (#94911)
(cherry picked from commit 2e9da8e352
)
Co-authored-by: Pablo Galindo Salgado <Pablogsal@gmail.com>
Co-authored-by: Pablo Galindo Salgado <Pablogsal@gmail.com>
This commit is contained in:
parent
3781d1a458
commit
964431eaeb
3 changed files with 37 additions and 3 deletions
|
@ -346,10 +346,39 @@ non-important content
|
|||
self.assertEqual(binop.lineno, 4)
|
||||
self.assertEqual(binop.left.lineno, 4)
|
||||
self.assertEqual(binop.right.lineno, 6)
|
||||
self.assertEqual(binop.col_offset, 4)
|
||||
self.assertEqual(binop.left.col_offset, 4)
|
||||
self.assertEqual(binop.col_offset, 3)
|
||||
self.assertEqual(binop.left.col_offset, 3)
|
||||
self.assertEqual(binop.right.col_offset, 7)
|
||||
|
||||
expr = """
|
||||
a = f'''
|
||||
{blech}
|
||||
'''
|
||||
"""
|
||||
t = ast.parse(expr)
|
||||
self.assertEqual(type(t), ast.Module)
|
||||
self.assertEqual(len(t.body), 1)
|
||||
# Check f'...'
|
||||
self.assertEqual(type(t.body[0]), ast.Assign)
|
||||
self.assertEqual(type(t.body[0].value), ast.JoinedStr)
|
||||
self.assertEqual(len(t.body[0].value.values), 3)
|
||||
self.assertEqual(type(t.body[0].value.values[1]), ast.FormattedValue)
|
||||
self.assertEqual(t.body[0].lineno, 2)
|
||||
self.assertEqual(t.body[0].value.lineno, 2)
|
||||
self.assertEqual(t.body[0].value.values[0].lineno, 2)
|
||||
self.assertEqual(t.body[0].value.values[1].lineno, 2)
|
||||
self.assertEqual(t.body[0].value.values[2].lineno, 2)
|
||||
self.assertEqual(t.body[0].col_offset, 0)
|
||||
self.assertEqual(t.body[0].value.col_offset, 4)
|
||||
self.assertEqual(t.body[0].value.values[0].col_offset, 4)
|
||||
self.assertEqual(t.body[0].value.values[1].col_offset, 4)
|
||||
self.assertEqual(t.body[0].value.values[2].col_offset, 4)
|
||||
# Check {blech}
|
||||
self.assertEqual(t.body[0].value.values[1].value.lineno, 3)
|
||||
self.assertEqual(t.body[0].value.values[1].value.end_lineno, 3)
|
||||
self.assertEqual(t.body[0].value.values[1].value.col_offset, 11)
|
||||
self.assertEqual(t.body[0].value.values[1].value.end_col_offset, 16)
|
||||
|
||||
def test_ast_line_numbers_with_parentheses(self):
|
||||
expr = """
|
||||
x = (
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue