mirror of https://github.com/python/cpython
gh-113703: Correctly identify incomplete f-strings in the codeop module (#113709)
This commit is contained in:
parent
0ae60b66de
commit
3003fbbf00
|
@ -223,6 +223,9 @@ class CodeopTests(unittest.TestCase):
|
|||
ai("(x for x in")
|
||||
ai("(x for x in (")
|
||||
|
||||
ai('a = f"""')
|
||||
ai('a = \\')
|
||||
|
||||
def test_invalid(self):
|
||||
ai = self.assertInvalid
|
||||
ai("a b")
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
Fix a regression in the :mod:`codeop` module that was causing it to incorrectly
|
||||
identify incomplete f-strings. Patch by Pablo Galindo
|
|
@ -1355,9 +1355,13 @@ f_string_middle:
|
|||
tok->lineno = the_current_tok->f_string_line_start;
|
||||
|
||||
if (current_tok->f_string_quote_size == 3) {
|
||||
return MAKE_TOKEN(_PyTokenizer_syntaxerror(tok,
|
||||
_PyTokenizer_syntaxerror(tok,
|
||||
"unterminated triple-quoted f-string literal"
|
||||
" (detected at line %d)", start));
|
||||
" (detected at line %d)", start);
|
||||
if (c != '\n') {
|
||||
tok->done = E_EOFS;
|
||||
}
|
||||
return MAKE_TOKEN(ERRORTOKEN);
|
||||
}
|
||||
else {
|
||||
return MAKE_TOKEN(_PyTokenizer_syntaxerror(tok,
|
||||
|
|
Loading…
Reference in New Issue