diff options
author | Benjamin Peterson <benjamin@python.org> | 2011-06-05 03:06:42 (GMT) |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2011-06-05 03:06:42 (GMT) |
commit | f719957d7a1f8ee1545e7b5bd3f59aa24e6db5fc (patch) | |
tree | fa3d4773a7bd2a4883a5e7f2ed61b9218fd8fe2a | |
parent | 4dfcb1a00dbcbc76fcd152d652d3f83b53b14e45 (diff) | |
download | cpython-f719957d7a1f8ee1545e7b5bd3f59aa24e6db5fc.zip cpython-f719957d7a1f8ee1545e7b5bd3f59aa24e6db5fc.tar.gz cpython-f719957d7a1f8ee1545e7b5bd3f59aa24e6db5fc.tar.bz2 |
only clear the parser error if it's set (closes #12264)
-rw-r--r-- | Lib/test/test_parser.py | 8 | ||||
-rw-r--r-- | Modules/parsermodule.c | 5 |
2 files changed, 11 insertions, 2 deletions
diff --git a/Lib/test/test_parser.py b/Lib/test/test_parser.py index 020acd5..2b50fca 100644 --- a/Lib/test/test_parser.py +++ b/Lib/test/test_parser.py @@ -614,6 +614,13 @@ class STObjectTestCase(unittest.TestCase): # XXX tests for pickling and unpickling of ST objects should go here +class OtherParserCase(unittest.TestCase): + + def test_two_args_to_expr(self): + # See bug #12264 + with self.assertRaises(TypeError): + parser.expr("a", "b") + def test_main(): support.run_unittest( @@ -622,6 +629,7 @@ def test_main(): CompileTestCase, ParserStackLimitTestCase, STObjectTestCase, + OtherParserCase, ) diff --git a/Modules/parsermodule.c b/Modules/parsermodule.c index e5b4e55..1ffa896 100644 --- a/Modules/parsermodule.c +++ b/Modules/parsermodule.c @@ -581,10 +581,11 @@ parser_do_parse(PyObject *args, PyObject *kw, char *argspec, int type) if (res) ((PyST_Object *)res)->st_flags.cf_flags = flags & PyCF_MASK; } - else + else { PyParser_SetError(&err); + PyParser_ClearError(&err); + } } - PyParser_ClearError(&err); return (res); } |