[pypy-commit] pypy controller-refactor: kill Controller.rtype_* methods
rlamy
pypy.commits at gmail.com
Wed Dec 7 19:23:00 EST 2016
Author: Ronan Lamy <ronan.lamy at gmail.com>
Branch: controller-refactor
Changeset: r88962:82b3d304854c
Date: 2016-12-07 11:48 +0000
http://bitbucket.org/pypy/pypy/changeset/82b3d304854c/
Log: kill Controller.rtype_* methods
diff --git a/rpython/rtyper/controllerentry.py b/rpython/rtyper/controllerentry.py
--- a/rpython/rtyper/controllerentry.py
+++ b/rpython/rtyper/controllerentry.py
@@ -23,12 +23,14 @@
return self._controller_()
def specialize_call(self, hop, **kwds_i):
+ from rpython.rtyper.rcontrollerentry import rtypedelegate
if hop.s_result == annmodel.s_ImpossibleValue:
raise TyperError("object creation always raises: %s" % (
hop.spaceop,))
+ assert not kwds_i
controller = hop.s_result.controller
- return controller.rtype_new(hop, **kwds_i)
-
+ return rtypedelegate(controller.new, hop, revealargs=[],
+ revealresult=True)
def controlled_instance_box(controller, obj):
@@ -72,46 +74,14 @@
return controlled_instance_is_box(self, obj)
is_box._annspecialcase_ = 'specialize:arg(0)'
- def rtype_new(self, hop):
- from rpython.rtyper.rcontrollerentry import rtypedelegate
- return rtypedelegate(self.new, hop, revealargs=[], revealresult=True)
-
def getattr(self, obj, attr):
return getattr(self, 'get_' + attr)(obj)
getattr._annspecialcase_ = 'specialize:arg(0, 2)'
- def rtype_getattr(self, hop):
- from rpython.rtyper.rcontrollerentry import rtypedelegate
- return rtypedelegate(self.getattr, hop)
-
def setattr(self, obj, attr, value):
return getattr(self, 'set_' + attr)(obj, value)
setattr._annspecialcase_ = 'specialize:arg(0, 2)'
- def rtype_setattr(self, hop):
- from rpython.rtyper.rcontrollerentry import rtypedelegate
- return rtypedelegate(self.setattr, hop)
-
- def rtype_getitem(self, hop):
- from rpython.rtyper.rcontrollerentry import rtypedelegate
- return rtypedelegate(self.getitem, hop)
-
- def rtype_setitem(self, hop):
- from rpython.rtyper.rcontrollerentry import rtypedelegate
- return rtypedelegate(self.setitem, hop)
-
- def rtype_delitem(self, hop):
- from rpython.rtyper.rcontrollerentry import rtypedelegate
- return rtypedelegate(self.delitem, hop)
-
- def rtype_bool(self, hop):
- from rpython.rtyper.rcontrollerentry import rtypedelegate
- return rtypedelegate(self.bool, hop)
-
- def rtype_call(self, hop):
- from rpython.rtyper.rcontrollerentry import rtypedelegate
- return rtypedelegate(self.call, hop)
-
def delegate(boundmethod, *args_s):
bk = getbookkeeper()
diff --git a/rpython/rtyper/rcontrollerentry.py b/rpython/rtyper/rcontrollerentry.py
--- a/rpython/rtyper/rcontrollerentry.py
+++ b/rpython/rtyper/rcontrollerentry.py
@@ -24,28 +24,28 @@
return self.s_real_obj, self.r_real_obj
def rtype_getattr(self, hop):
- return self.controller.rtype_getattr(hop)
+ return rtypedelegate(self.controller.getattr, hop)
def rtype_setattr(self, hop):
- return self.controller.rtype_setattr(hop)
+ return rtypedelegate(self.controller.setattr, hop)
def rtype_bool(self, hop):
- return self.controller.rtype_bool(hop)
+ return rtypedelegate(self.controller.bool, hop)
def rtype_simple_call(self, hop):
- return self.controller.rtype_call(hop)
+ return rtypedelegate(self.controller.call, hop)
class __extend__(pairtype(ControlledInstanceRepr, Repr)):
def rtype_getitem((r_controlled, r_key), hop):
- return r_controlled.controller.rtype_getitem(hop)
+ return rtypedelegate(r_controlled.controller.getitem, hop)
def rtype_setitem((r_controlled, r_key), hop):
- return r_controlled.controller.rtype_setitem(hop)
+ return rtypedelegate(r_controlled.controller.setitem, hop)
def rtype_delitem((r_controlled, r_key), hop):
- return r_controlled.controller.rtype_delitem(hop)
+ return rtypedelegate(r_controlled.controller.delitem, hop)
def rtypedelegate(callable, hop, revealargs=[0], revealresult=False):
More information about the pypy-commit
mailing list