Author: Ronan Lamy <ronan.l...@gmail.com> Branch: ClassRepr Changeset: r73916:f4139c9bf4e4 Date: 2014-10-13 15:04 +0100 http://bitbucket.org/pypy/pypy/changeset/f4139c9bf4e4/
Log: Store the root class repr in rtyper.rootclass_repr (having a None key in rtyper.class_reprs was just too weird) diff --git a/rpython/rtyper/rclass.py b/rpython/rtyper/rclass.py --- a/rpython/rtyper/rclass.py +++ b/rpython/rtyper/rclass.py @@ -63,13 +63,12 @@ def getclassrepr(rtyper, classdef): + if classdef is None: + return rtyper.rootclass_repr try: result = rtyper.class_reprs[classdef] except KeyError: - if classdef is None: - result = RootClassRepr(rtyper) - else: - result = ClassRepr(rtyper, classdef) + result = ClassRepr(rtyper, classdef) rtyper.class_reprs[classdef] = result rtyper.add_pendingsetup(result) return result diff --git a/rpython/rtyper/rtyper.py b/rpython/rtyper/rtyper.py --- a/rpython/rtyper/rtyper.py +++ b/rpython/rtyper/rtyper.py @@ -27,6 +27,8 @@ from rpython.rtyper.rmodel import Repr, inputconst, BrokenReprTyperError from rpython.rtyper.typesystem import LowLevelTypeSystem, getfunctionptr from rpython.rtyper.normalizecalls import perform_normalizations +from rpython.rtyper import rclass +from rpython.rtyper.rclass import RootClassRepr from rpython.tool.pairtype import pair from rpython.translator.unsimplify import insert_empty_block @@ -43,6 +45,8 @@ self._seen_reprs_must_call_setup = {} self._dict_traits = {} self.class_reprs = {} + self.rootclass_repr = RootClassRepr(self) + self.add_pendingsetup(self.rootclass_repr) self.instance_reprs = {} self.type_for_typeptr = {} self.pbc_reprs = {} @@ -581,7 +585,6 @@ return rtype_newtuple(hop) def translate_op_instantiate1(self, hop): - from rpython.rtyper import rclass if not isinstance(hop.s_result, annmodel.SomeInstance): raise TyperError("instantiate1 got s_result=%r" % (hop.s_result,)) classdef = hop.s_result.classdef @@ -944,7 +947,7 @@ from rpython.rtyper import rint, rbool, rfloat, rnone from rpython.rtyper import rrange from rpython.rtyper import rstr, rdict, rlist, rbytearray -from rpython.rtyper import rclass, rbuiltin, rpbc +from rpython.rtyper import rbuiltin, rpbc from rpython.rtyper import rptr from rpython.rtyper import rweakref from rpython.rtyper import raddress # memory addresses _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit