[pypy-commit] pypy remove-remaining-smm: Make W_NoneObject a W_Root.
Manuel Jacob
noreply at buildbot.pypy.org
Mon Feb 24 06:00:04 CET 2014
Author: Manuel Jacob
Branch: remove-remaining-smm
Changeset: r69341:9f9e64ea5ddc
Date: 2014-02-24 05:17 +0100
http://bitbucket.org/pypy/pypy/changeset/9f9e64ea5ddc/
Log: Make W_NoneObject a W_Root.
diff --git a/pypy/objspace/std/model.py b/pypy/objspace/std/model.py
--- a/pypy/objspace/std/model.py
+++ b/pypy/objspace/std/model.py
@@ -34,7 +34,6 @@
from pypy.objspace.std.objecttype import object_typedef
from pypy.objspace.std.typeobject import type_typedef
from pypy.objspace.std.slicetype import slice_typedef
- from pypy.objspace.std.nonetype import none_typedef
self.pythontypes = [value for key, value in result.__dict__.items()
if not key.startswith('_')] # don't look
@@ -67,6 +66,7 @@
# not-multimethod based types
+ self.pythontypes.append(noneobject.W_NoneObject.typedef)
self.pythontypes.append(tupleobject.W_TupleObject.typedef)
self.pythontypes.append(listobject.W_ListObject.typedef)
self.pythontypes.append(dictmultiobject.W_DictMultiObject.typedef)
diff --git a/pypy/objspace/std/noneobject.py b/pypy/objspace/std/noneobject.py
--- a/pypy/objspace/std/noneobject.py
+++ b/pypy/objspace/std/noneobject.py
@@ -1,27 +1,23 @@
-"""
- None Object implementation
+from pypy.interpreter.baseobjspace import W_Root
+from pypy.interpreter.gateway import interp2app
+from pypy.objspace.std.stdtypedef import StdTypeDef
- ok and tested
-"""
-from pypy.objspace.std.model import registerimplementation, W_Object
-from pypy.objspace.std.register_all import register_all
-
-class W_NoneObject(W_Object):
- from pypy.objspace.std.nonetype import none_typedef as typedef
-
+class W_NoneObject(W_Root):
def unwrap(w_self, space):
return None
-registerimplementation(W_NoneObject)
+ def descr_nonzero(self, space):
+ return space.w_False
+
+ def descr_repr(self, space):
+ return space.wrap('None')
+
W_NoneObject.w_None = W_NoneObject()
-def nonzero__None(space, w_none):
- return space.w_False
-
-def repr__None(space, w_none):
- return space.wrap('None')
-
-register_all(vars())
-
+W_NoneObject.typedef = StdTypeDef("NoneType",
+ __nonzero__ = interp2app(W_NoneObject.descr_nonzero),
+ __repr__ = interp2app(W_NoneObject.descr_repr),
+)
+W_NoneObject.typedef.acceptable_as_base_class = False
diff --git a/pypy/objspace/std/nonetype.py b/pypy/objspace/std/nonetype.py
deleted file mode 100644
--- a/pypy/objspace/std/nonetype.py
+++ /dev/null
@@ -1,8 +0,0 @@
-from pypy.objspace.std.stdtypedef import StdTypeDef
-
-
-# ____________________________________________________________
-
-none_typedef = StdTypeDef("NoneType",
- )
-none_typedef.acceptable_as_base_class = False
diff --git a/pypy/objspace/std/test/test_noneobject.py b/pypy/objspace/std/test/test_noneobject.py
--- a/pypy/objspace/std/test/test_noneobject.py
+++ b/pypy/objspace/std/test/test_noneobject.py
@@ -1,11 +1,7 @@
-
-
-
class TestW_NoneObject:
-
def test_equality(self):
assert self.space.eq_w(self.space.w_None, self.space.w_None)
-
+
def test_inequality(self):
neresult = self.space.ne(self.space.w_None, self.space.w_None)
assert not self.space.is_true(neresult)
More information about the pypy-commit
mailing list