[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