From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Thu, 26 Jun 2025 16:40:09 +0000 (+0200) Subject: [3.14] gh-129958: New syntax error in format spec applies to both f-strings and t... X-Git-Tag: v3.14.0b4~89 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=204545317144b90942d0a7265e1433a831cfeb5d;p=thirdparty%2FPython%2Fcpython.git [3.14] gh-129958: New syntax error in format spec applies to both f-strings and t-strings (GH-135570) (#135982) (cherry picked from commit fb9e292919d82326acea456aa071c9af6aff5626) Co-authored-by: Dylan Co-authored-by: Tomas R. Co-authored-by: Lysandros Nikolaou --- diff --git a/Lib/test/test_tstring.py b/Lib/test/test_tstring.py index e72a1ea54176..aabae3855673 100644 --- a/Lib/test/test_tstring.py +++ b/Lib/test/test_tstring.py @@ -219,6 +219,7 @@ class TestTString(unittest.TestCase, TStringBaseCase): ("t'{lambda:1}'", "t-string: lambda expressions are not allowed " "without parentheses"), ("t'{x:{;}}'", "t-string: expecting a valid expression after '{'"), + ("t'{1:d\n}'", "t-string: newlines are not allowed in format specifiers") ): with self.subTest(case), self.assertRaisesRegex(SyntaxError, err): eval(case) diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2025-06-24-06-41-47.gh-issue-129958.EaJuS0.rst b/Misc/NEWS.d/next/Core_and_Builtins/2025-06-24-06-41-47.gh-issue-129958.EaJuS0.rst new file mode 100644 index 000000000000..70b3e99425df --- /dev/null +++ b/Misc/NEWS.d/next/Core_and_Builtins/2025-06-24-06-41-47.gh-issue-129958.EaJuS0.rst @@ -0,0 +1,2 @@ +Differentiate between t-strings and f-strings in syntax error for newlines +in format specifiers of single-quoted interpolated strings. diff --git a/Parser/lexer/lexer.c b/Parser/lexer/lexer.c index 4d10bccf0a53..0a078dd59414 100644 --- a/Parser/lexer/lexer.c +++ b/Parser/lexer/lexer.c @@ -1421,7 +1421,8 @@ f_string_middle: return MAKE_TOKEN( _PyTokenizer_syntaxerror( tok, - "f-string: newlines are not allowed in format specifiers for single quoted f-strings" + "%c-string: newlines are not allowed in format specifiers for single quoted %c-strings", + TOK_GET_STRING_PREFIX(tok), TOK_GET_STRING_PREFIX(tok) ) ); }