Author: Lukas Diekmann <[email protected]>
Branch: list-strategies
Changeset: r47460:aa3d3bbda4d5
Date: 2011-03-09 14:40 +0100
http://bitbucket.org/pypy/pypy/changeset/aa3d3bbda4d5/
Log: Finally use (real) rerased
diff --git a/pypy/objspace/std/listobject.py b/pypy/objspace/std/listobject.py
--- a/pypy/objspace/std/listobject.py
+++ b/pypy/objspace/std/listobject.py
@@ -9,19 +9,9 @@
from pypy.interpreter import gateway, baseobjspace
from pypy.rlib.objectmodel import instantiate
from pypy.rlib.listsort import TimSort
+from pypy.rlib import rerased
from pypy.interpreter.argument import Signature
-class cast_to_void_star(object):
- # this will later be replaced by something in rlib.rerased
- def __init__(self, content, from_where=""):
- self._content = content
- self._from_where = from_where
-
-def cast_from_void_star(wrapper, from_where=""):
- # this will later be replaced by something in rlib.rerased
- assert wrapper._from_where == from_where
- return wrapper._content
-
def make_range_list(space, start, step, length):
if length <= 0:
strategy = EmptyListStrategy(space)
@@ -201,13 +191,9 @@
assert len(list_w) == 0
w_list.storage = self.cast_to_void_star(None)
- @staticmethod
- def cast_from_void_star(storage):
- return cast_from_void_star(storage, "empty")
-
- @staticmethod
- def cast_to_void_star(obj):
- return cast_to_void_star(obj, "empty")
+ cast_to_void_star, cast_from_void_star = rerased.new_erasing_pair("empty")
+ cast_to_void_star = staticmethod(cast_to_void_star)
+ cast_from_void_star = staticmethod(cast_from_void_star)
def length(self, w_list):
return 0
@@ -270,13 +256,9 @@
def init_from_list_w(self, w_list, list_w):
raise NotImplementedError
- @staticmethod
- def cast_from_void_star(storage):
- return cast_from_void_star(storage, "range")
-
- @staticmethod
- def cast_to_void_star(obj):
- return cast_to_void_star(obj, "range")
+ cast_to_void_star, cast_from_void_star = rerased.new_erasing_pair("range")
+ cast_to_void_star = staticmethod(cast_to_void_star)
+ cast_from_void_star = staticmethod(cast_from_void_star)
def length(self, w_list):
return self.cast_from_void_star(w_list.storage)[2]
@@ -602,13 +584,9 @@
def wrap(self, item):
return item
- @staticmethod
- def cast_from_void_star(storage):
- return cast_from_void_star(storage, "object")
-
- @staticmethod
- def cast_to_void_star(obj):
- return cast_to_void_star(obj, "object")
+ cast_to_void_star, cast_from_void_star = rerased.new_erasing_pair("range")
+ cast_to_void_star = staticmethod(cast_to_void_star)
+ cast_from_void_star = staticmethod(cast_from_void_star)
def is_correct_type(self, w_obj):
return True
@@ -627,13 +605,9 @@
def unwrap(self, w_int):
return self.space.int_w(w_int)
- @staticmethod
- def cast_from_void_star(storage):
- return cast_from_void_star(storage, "integer")
-
- @staticmethod
- def cast_to_void_star(obj):
- return cast_to_void_star(obj, "integer")
+ cast_to_void_star, cast_from_void_star = rerased.new_erasing_pair("range")
+ cast_to_void_star = staticmethod(cast_to_void_star)
+ cast_from_void_star = staticmethod(cast_from_void_star)
def is_correct_type(self, w_obj):
return is_W_IntObject(w_obj)
@@ -649,13 +623,9 @@
def unwrap(self, w_string):
return self.space.str_w(w_string)
- @staticmethod
- def cast_from_void_star(storage):
- return cast_from_void_star(storage, "string")
-
- @staticmethod
- def cast_to_void_star(obj):
- return cast_to_void_star(obj, "string")
+ cast_to_void_star, cast_from_void_star = rerased.new_erasing_pair("range")
+ cast_to_void_star = staticmethod(cast_to_void_star)
+ cast_from_void_star = staticmethod(cast_from_void_star)
def is_correct_type(self, w_obj):
return is_W_StringObject(w_obj)
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit