mirror of
https://github.com/python/cpython.git
synced 2025-08-14 13:59:20 +00:00
bpo-44297: Fix missing line number in generator expressions (GH-26821)
* Make sure that line number is set when entering comprehension scope in compiler.
(cherry picked from commit 82e5c28af7
)
This commit is contained in:
parent
553e10498a
commit
7674c83d81
4 changed files with 978 additions and 959 deletions
|
@ -895,6 +895,21 @@ if 1:
|
|||
for (_, _, line) in func.__code__.co_lines() ]
|
||||
self.assertEqual(lines, code_lines)
|
||||
|
||||
def test_line_number_genexp(self):
|
||||
|
||||
def return_genexp():
|
||||
return (1
|
||||
for
|
||||
x
|
||||
in
|
||||
y)
|
||||
genexp_lines = [None, 1, 3, 1]
|
||||
|
||||
genexp_code = return_genexp.__code__.co_consts[1]
|
||||
code_lines = [None if line is None else line-return_genexp.__code__.co_firstlineno
|
||||
for (_, _, line) in genexp_code.co_lines() ]
|
||||
self.assertEqual(genexp_lines, code_lines)
|
||||
|
||||
|
||||
def test_big_dict_literal(self):
|
||||
# The compiler has a flushing point in "compiler_dict" that calls compiles
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue