only clear the parser error if it's set (closes #12264)

This commit is contained in:
Benjamin Peterson 2011-06-04 22:06:42 -05:00
parent 4dfcb1a00d
commit f719957d7a
2 changed files with 11 additions and 2 deletions

View File

@ -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,
)

View File

@ -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);
}