summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPablo Galindo <Pablogsal@gmail.com>2019-05-12 00:43:04 (GMT)
committerGitHub <noreply@github.com>2019-05-12 00:43:04 (GMT)
commit26f55c29f2316648939ad12a9d3730a2118da2ea (patch)
treecf021f784f1201ae0e1a9e221ab4a154d5b40b28
parent5833e94d8615ea18b14e4830ecdb868aec81b378 (diff)
downloadcpython-26f55c29f2316648939ad12a9d3730a2118da2ea.zip
cpython-26f55c29f2316648939ad12a9d3730a2118da2ea.tar.gz
cpython-26f55c29f2316648939ad12a9d3730a2118da2ea.tar.bz2
bpo-36817: Do not decrement reference for expr_text on fstring = parsing failure (GH-13256)
-rw-r--r--Lib/test/test_fstring.py2
-rw-r--r--Python/ast.c1
2 files changed, 2 insertions, 1 deletions
diff --git a/Lib/test/test_fstring.py b/Lib/test/test_fstring.py
index a0fae50..3484fce 100644
--- a/Lib/test/test_fstring.py
+++ b/Lib/test/test_fstring.py
@@ -1148,6 +1148,8 @@ non-important content
self.assertEqual(f'{C()=:x}', 'C()=FORMAT-x')
self.assertEqual(f'{C()=!r:*^20}', 'C()=********REPR********')
+ self.assertRaises(SyntaxError, eval, "f'{C=]'")
+
def test_walrus(self):
x = 20
# This isn't an assignment expression, it's 'x', with a format
diff --git a/Python/ast.c b/Python/ast.c
index 585f8b3..03da4e7 100644
--- a/Python/ast.c
+++ b/Python/ast.c
@@ -5283,7 +5283,6 @@ unexpected_end_of_string:
/* Falls through to error. */
error:
- Py_XDECREF(expr_text);
return -1;
}