Author: Ronan Lamy <[email protected]>
Branch: less-stringly-ops
Changeset: r66243:5083ac174a41
Date: 2013-05-05 19:02 +0100
http://bitbucket.org/pypy/pypy/changeset/5083ac174a41/
Log: pull guessbool out of unnecessary utility methods
diff --git a/rpython/flowspace/objspace.py b/rpython/flowspace/objspace.py
--- a/rpython/flowspace/objspace.py
+++ b/rpython/flowspace/objspace.py
@@ -89,9 +89,6 @@
def build_flow(self, func):
return build_flow(func, self)
- def is_w(self, w_one, w_two):
- return self.frame.guessbool(self.is_(w_one, w_two))
-
is_ = None # real version added by add_operations()
id = None # real version added by add_operations()
@@ -132,11 +129,9 @@
w_type = const(type(exc))
return FSException(w_type, w_value)
- def exception_issubclass_w(self, w_cls1, w_cls2):
- return self.frame.guessbool(self.issubtype(w_cls1, w_cls2))
-
def exception_match(self, w_exc_type, w_check_class):
"""Checks if the given exception type matches 'w_check_class'."""
+ frame = self.frame
if not isinstance(w_check_class, Constant):
raise FlowingError("Non-constant except guard.")
check_class = w_check_class.value
@@ -145,11 +140,11 @@
"Catching %s is not valid in RPython" % check_class.__name__)
if not isinstance(check_class, tuple):
# the simple case
- return self.exception_issubclass_w(w_exc_type, w_check_class)
+ return frame.guessbool(self.issubtype(w_exc_type, w_check_class))
# special case for StackOverflow (see rlib/rstackovf.py)
if check_class == rstackovf.StackOverflow:
w_real_class = const(rstackovf._StackOverflow)
- return self.exception_issubclass_w(w_exc_type, w_real_class)
+ return frame.guessbool(self.issubtype(w_exc_type, w_real_class))
# checking a tuple of classes
for w_klass in self.unpackiterable(w_check_class):
if self.exception_match(w_exc_type, w_klass):
@@ -162,14 +157,15 @@
Returns an FSException object whose w_value is an instance of w_type.
"""
- if self.isinstance_w(w_arg1, self.w_type):
+ frame = self.frame
+ if frame.guessbool(self.isinstance(w_arg1, self.w_type)):
# this is for all cases of the form (Class, something)
- if self.is_w(w_arg2, self.w_None):
+ if frame.guessbool(self.is_(w_arg2, self.w_None)):
# raise Type: we assume we have to instantiate Type
w_value = self.call_function(w_arg1)
else:
w_valuetype = self.type(w_arg2)
- if self.exception_issubclass_w(w_valuetype, w_arg1):
+ if frame.guessbool(self.issubtype(w_valuetype, w_arg1)):
# raise Type, Instance: let etype be the exact type of
value
w_value = w_arg2
else:
@@ -177,7 +173,7 @@
w_value = self.call_function(w_arg1, w_arg2)
else:
# the only case left here is (inst, None), from a 'raise inst'.
- if not self.is_w(w_arg2, self.w_None):
+ if not frame.guessbool(self.is_(w_arg2, self.w_None)):
raise self.exc_wrap(TypeError(
"instance exception may not have a separate value"))
w_value = w_arg1
@@ -263,9 +259,6 @@
pass
return self.frame.do_op(op.getattr(w_obj, w_name))
- def isinstance_w(self, w_obj, w_type):
- return self.frame.guessbool(self.isinstance(w_obj, w_type))
-
def import_name(self, name, glob=None, loc=None, frm=None, level=-1):
try:
mod = __import__(name, glob, loc, frm, level)
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit