[pypy-commit] pypy py3k: Fix "raise TypeError", exception type vs. exception instance.
amauryfa
noreply at buildbot.pypy.org
Thu Oct 13 22:40:20 CEST 2011
Author: Amaury Forgeot d'Arc <amauryfa at gmail.com>
Branch: py3k
Changeset: r48027:82ba9ff70fc2
Date: 2011-10-13 22:38 +0200
http://bitbucket.org/pypy/pypy/changeset/82ba9ff70fc2/
Log: Fix "raise TypeError", exception type vs. exception instance.
diff --git a/pypy/interpreter/pyopcode.py b/pypy/interpreter/pyopcode.py
--- a/pypy/interpreter/pyopcode.py
+++ b/pypy/interpreter/pyopcode.py
@@ -494,7 +494,12 @@
w_cause = self.popvalue() # XXX cause?
if 1:
w_value = self.popvalue()
- operror = OperationError(space.type(w_value), w_value)
+ if space.exception_is_valid_obj_as_class_w(w_value):
+ w_type = w_value
+ w_value = space.call_function(w_type)
+ else:
+ w_type = space.type(w_value)
+ operror = OperationError(w_type, w_value)
operror.normalize_exception(space)
w_traceback = space.w_None # XXX with_traceback?
if not space.full_exceptions or space.is_w(w_traceback, space.w_None):
More information about the pypy-commit
mailing list