[pypy-commit] pypy remove-set-smm: Remove set.__len__ multi-method.

Manuel Jacob noreply at buildbot.pypy.org
Wed May 15 14:01:01 CEST 2013


Author: Manuel Jacob
Branch: remove-set-smm
Changeset: r64129:6f5738129e7b
Date: 2013-05-15 11:12 +0200
http://bitbucket.org/pypy/pypy/changeset/6f5738129e7b/

Log:	Remove set.__len__ multi-method.

diff --git a/pypy/objspace/std/setobject.py b/pypy/objspace/std/setobject.py
--- a/pypy/objspace/std/setobject.py
+++ b/pypy/objspace/std/setobject.py
@@ -226,6 +226,9 @@
             return space.w_False
         return space.wrap(w_other.issubset(self))
 
+    def descr_len(self, space):
+        return space.newint(self.length())
+
     def descr_copy(self, space):
         """Return a shallow copy of a set."""
         if type(self) is W_FrozensetObject:
@@ -434,6 +437,7 @@
     __ge__ = gateway.interp2app(W_BaseSetObject.descr_ge),
 
     # non-mutating operators
+    __len__ = gateway.interp2app(W_BaseSetObject.descr_len),
     #__and__ = gateway.interp2app(W_BaseSetObject.descr_intersection),
     #__or__ = gateway.interp2app(W_BaseSetObject.descr_union),
     #__xor__ = gateway.interp2app(W_BaseSetObject.descr_symmetric_difference),
@@ -524,6 +528,7 @@
     __ge__ = gateway.interp2app(W_BaseSetObject.descr_ge),
 
     # non-mutating operators
+    __len__ = gateway.interp2app(W_BaseSetObject.descr_len),
     #__and__ = gateway.interp2app(W_BaseSetObject.descr_intersection),
     #__or__ = gateway.interp2app(W_BaseSetObject.descr_union),
     #__xor__ = gateway.interp2app(W_BaseSetObject.descr_symmetric_difference),
@@ -1536,11 +1541,6 @@
 xor__Frozenset_Set = xor__Set_Set
 xor__Frozenset_Frozenset = xor__Set_Set
 
-def len__Set(space, self):
-    return space.newint(self.length())
-
-len__Frozenset = len__Set
-
 def iter__Set(space, self):
     return W_SetIterObject(space, self.iter())
 


More information about the pypy-commit mailing list