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) _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit