Author: Ronan Lamy <[email protected]>
Branch: translation-cleanup
Changeset: r57429:b1d037d06395
Date: 2012-09-16 19:57 +0100
http://bitbucket.org/pypy/pypy/changeset/b1d037d06395/
Log: Replace Reraise exception with RaiseWithExplicitTraceback
diff --git a/pypy/interpreter/pyopcode.py b/pypy/interpreter/pyopcode.py
--- a/pypy/interpreter/pyopcode.py
+++ b/pypy/interpreter/pyopcode.py
@@ -90,10 +90,6 @@
next_instr = self.dispatch_bytecode(co_code, next_instr, ec)
except OperationError, operr:
next_instr = self.handle_operation_error(ec, operr)
- except Reraise:
- operr = self.last_exception
- next_instr = self.handle_operation_error(ec, operr,
- attach_tb=False)
except RaiseWithExplicitTraceback, e:
next_instr = self.handle_operation_error(ec, e.operr,
attach_tb=False)
@@ -548,7 +544,7 @@
space.wrap("raise: no active exception to re-raise"))
# re-raise, no new traceback obj will be attached
self.last_exception = operror
- raise Reraise
+ raise RaiseWithExplicitTraceback(operror)
w_value = w_traceback = space.w_None
if nbargs >= 3:
@@ -1165,10 +1161,8 @@
class Yield(ExitFrame):
"""Raised when exiting a frame via a 'yield' statement."""
-class Reraise(Exception):
- """Raised at interp-level by a bare 'raise' statement."""
class RaiseWithExplicitTraceback(Exception):
- """Raised at interp-level by a 3-arguments 'raise' statement."""
+ """Raised at interp-level by a 0- or 3-arguments 'raise' statement."""
def __init__(self, operr):
self.operr = operr
diff --git a/pypy/objspace/flow/flowcontext.py
b/pypy/objspace/flow/flowcontext.py
--- a/pypy/objspace/flow/flowcontext.py
+++ b/pypy/objspace/flow/flowcontext.py
@@ -8,7 +8,7 @@
from pypy.interpreter.pycode import CO_OPTIMIZED, CO_NEWLOCALS
from pypy.interpreter.argument import ArgumentsForTranslation
from pypy.interpreter.pyopcode import (Return, Yield, SuspendedUnroller,
- SReturnValue, SApplicationException, BytecodeCorruption, Reraise,
+ SReturnValue, SApplicationException, BytecodeCorruption,
RaiseWithExplicitTraceback)
from pypy.objspace.flow.model import *
from pypy.objspace.flow.framestate import (FrameState, recursively_unflatten,
@@ -453,9 +453,6 @@
except OperationError, operr:
self.attach_traceback(operr)
next_instr = self.handle_operation_error(operr)
- except Reraise:
- operr = self.last_exception
- next_instr = self.handle_operation_error(operr)
except RaiseWithExplicitTraceback, e:
next_instr = self.handle_operation_error(e.operr)
return next_instr
@@ -486,7 +483,7 @@
if self.last_exception is not None:
operror = self._convert_exc(self.last_exception)
self.last_exception = operror
- raise Reraise
+ raise RaiseWithExplicitTraceback(operror)
else:
raise OperationError(space.w_TypeError,
space.wrap("raise: no active exception to re-raise"))
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit