Author: Benjamin Peterson <benja...@python.org> Branch: py3k Changeset: r53613:8fe60affac0e Date: 2012-03-14 17:13 -0500 http://bitbucket.org/pypy/pypy/changeset/8fe60affac0e/
Log: compile asserts with messages correctly diff --git a/pypy/interpreter/astcompiler/codegen.py b/pypy/interpreter/astcompiler/codegen.py --- a/pypy/interpreter/astcompiler/codegen.py +++ b/pypy/interpreter/astcompiler/codegen.py @@ -418,9 +418,8 @@ self.emit_op_name(ops.LOAD_GLOBAL, self.names, "AssertionError") if asrt.msg: asrt.msg.walkabout(self) - self.emit_op_arg(ops.RAISE_VARARGS, 2) - else: - self.emit_op_arg(ops.RAISE_VARARGS, 1) + self.emit_op_arg(ops.CALL_FUNCTION, 1) + self.emit_op_arg(ops.RAISE_VARARGS, 1) self.use_next_block(end) def _binop(self, op): diff --git a/pypy/interpreter/astcompiler/test/test_compiler.py b/pypy/interpreter/astcompiler/test/test_compiler.py --- a/pypy/interpreter/astcompiler/test/test_compiler.py +++ b/pypy/interpreter/astcompiler/test/test_compiler.py @@ -716,6 +716,15 @@ decl = str(decl) + '\n' yield self.simple_test, decl, 'r', None + def test_assert(self): + decl = py.code.Source(""" + try: + assert 0, 'hi' + except AssertionError as e: + msg = str(e) + """) + yield self.simple_test, decl, 'msg', 'hi' + def test_indentation_error(self): source = py.code.Source(""" x _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit