[pypy-svn] r20250 - pypy/branch/somepbc-refactoring/pypy/rpython/lltypesystem
arigo at codespeak.net
arigo at codespeak.net
Fri Nov 25 18:48:26 CET 2005
Author: arigo
Date: Fri Nov 25 18:48:21 2005
New Revision: 20250
Modified:
pypy/branch/somepbc-refactoring/pypy/rpython/lltypesystem/rclass.py
Log:
(mwh, pedronis, arigo)
fixed InstanceRepr.convert_const().
Modified: pypy/branch/somepbc-refactoring/pypy/rpython/lltypesystem/rclass.py
==============================================================================
--- pypy/branch/somepbc-refactoring/pypy/rpython/lltypesystem/rclass.py (original)
+++ pypy/branch/somepbc-refactoring/pypy/rpython/lltypesystem/rclass.py Fri Nov 25 18:48:21 2005
@@ -352,15 +352,12 @@
def convert_const(self, value):
if value is None:
return nullptr(self.object_type)
- try:
- classdef = self.rtyper.annotator.getuserclasses()[value.__class__]
- except KeyError:
- raise TyperError("no classdef: %r" % (value.__class__,))
+ cls = value.__class__
+ bk = self.rtyper.annotator.bookkeeper
+ classdef = bk.getdesc(cls).getuniqueclassdef()
if classdef != self.classdef:
# if the class does not match exactly, check that 'value' is an
# instance of a subclass and delegate to that InstanceRepr
- if classdef is None:
- raise TyperError("not implemented: object() instance")
if classdef.commonbase(self.classdef) != self.classdef:
raise TyperError("not an instance of %r: %r" % (
self.classdef.cls, value))
More information about the Pypy-commit
mailing list