Issue #9011: AST creation no longer modifies CST for negated numeric literals.
diff --git a/Lib/test/test_parser.py b/Lib/test/test_parser.py
index 93fbaec..12fa89c 100644
--- a/Lib/test/test_parser.py
+++ b/Lib/test/test_parser.py
@@ -567,6 +567,17 @@
st = parser.suite('a = u"\u1"')
self.assertRaises(SyntaxError, parser.compilest, st)
+ def test_issue_9011(self):
+ # Issue 9011: compilation of an unary minus expression changed
+ # the meaning of the ST, so that a second compilation produced
+ # incorrect results.
+ st = parser.expr('-3')
+ code1 = parser.compilest(st)
+ self.assertEqual(eval(code1), -3)
+ code2 = parser.compilest(st)
+ self.assertEqual(eval(code2), -3)
+
+
class ParserStackLimitTestCase(unittest.TestCase):
"""try to push the parser to/over it's limits.
see http://bugs.python.org/issue1881 for a discussion