[pypy-svn] r49752 - pypy/branch/interplevel-oldstyle-classes/pypy/module/__builtin__
cfbolz at codespeak.net
cfbolz at codespeak.net
Fri Dec 14 00:08:16 CET 2007
Author: cfbolz
Date: Fri Dec 14 00:08:16 2007
New Revision: 49752
Modified:
pypy/branch/interplevel-oldstyle-classes/pypy/module/__builtin__/interp_classobj.py
Log:
more annotation stuff
Modified: pypy/branch/interplevel-oldstyle-classes/pypy/module/__builtin__/interp_classobj.py
==============================================================================
--- pypy/branch/interplevel-oldstyle-classes/pypy/module/__builtin__/interp_classobj.py (original)
+++ pypy/branch/interplevel-oldstyle-classes/pypy/module/__builtin__/interp_classobj.py Fri Dec 14 00:08:16 2007
@@ -27,8 +27,8 @@
# XXX missing: lengthy and obscure logic about "__module__"
- bases = []
- for w_base in space.unpackiterable(w_bases):
+ bases_w = space.unpackiterable(w_bases)
+ for w_base in bases_w:
if not isinstance(w_base, W_ClassObject):
w_metaclass = space.type(w_base)
if space.is_true(space.callable(w_metaclass)):
@@ -36,9 +36,8 @@
w_bases, w_dict)
raise OperationError(space.w_TypeError,
space.wrap("base must be class"))
- bases.append(w_base)
- return W_ClassObject(space, w_name, bases, w_dict)
+ return W_ClassObject(space, w_name, bases_w, w_dict)
class W_ClassObject(Wrappable):
def __init__(self, space, w_name, bases, w_dict):
@@ -95,13 +94,11 @@
space.w_TypeError,
space.wrap("__bases__ must be a tuple object"))
bases_w = space.unpackiterable(w_bases)
- bases = []
for w_base in bases_w:
if not isinstance(w_base, W_ClassObject):
raise OperationError(space.w_TypeError,
space.wrap("__bases__ items must be classes"))
- bases.append(w_base)
- self.bases_w = bases
+ self.bases_w = bases_w
def fdel_bases(space, self):
raise OperationError(
@@ -114,6 +111,8 @@
if w_result is not None:
return w_result
for base in self.bases_w:
+ # XXX fix annotation of bases_w to be a list of W_ClassObjects
+ assert isinstance(base, W_ClassObject)
w_result = base.lookup(space, w_attr)
if w_result is not None:
return w_result
@@ -260,6 +259,7 @@
def __init__(self, space, w_class, w_dict=None):
if w_dict is None:
w_dict = space.newdict()
+ assert isinstance(w_class, W_ClassObject)
self.w_class = w_class
self.w_dict = w_dict
More information about the Pypy-commit
mailing list