Author: Ronan Lamy <[email protected]>
Branch: kill-typesystem
Changeset: r65742:52c5500cb939
Date: 2013-07-28 02:31 +0100
http://bitbucket.org/pypy/pypy/changeset/52c5500cb939/
Log: Simplify makerepr and makekey
diff --git a/rpython/rtyper/rtyper.py b/rpython/rtyper/rtyper.py
--- a/rpython/rtyper/rtyper.py
+++ b/rpython/rtyper/rtyper.py
@@ -157,10 +157,9 @@
raise KeyError(search)
def makekey(self, s_obj):
- return pair(self.type_system, s_obj).rtyper_makekey(self)
-
- def _makerepr(self, s_obj):
- return pair(self.type_system, s_obj).rtyper_makerepr(self)
+ if hasattr(s_obj, "rtyper_makekey_ex"):
+ return s_obj.rtyper_makekey_ex(self)
+ return s_obj.rtyper_makekey()
def getrepr(self, s_obj):
# s_objs are not hashable... try hard to find a unique key anyway
@@ -170,7 +169,7 @@
result = self.reprs[key]
except KeyError:
self.reprs[key] = None
- result = self._makerepr(s_obj)
+ result = s_obj.rtyper_makerepr(self)
assert not isinstance(result.lowleveltype, ContainerType), (
"missing a Ptr in the type specification "
"of %s:\n%r" % (s_obj, result.lowleveltype))
diff --git a/rpython/rtyper/typesystem.py b/rpython/rtyper/typesystem.py
--- a/rpython/rtyper/typesystem.py
+++ b/rpython/rtyper/typesystem.py
@@ -145,17 +145,3 @@
LowLevelTypeSystem.instance = LowLevelTypeSystem()
getfunctionptr = LowLevelTypeSystem.instance.getcallable
-
-# Multiple dispatch on type system and high-level annotation
-
-from rpython.tool.pairtype import pairtype
-from rpython.annotator.model import SomeObject
-
-class __extend__(pairtype(TypeSystem, SomeObject)):
- def rtyper_makerepr((ts, s_obj), rtyper):
- return s_obj.rtyper_makerepr(rtyper)
-
- def rtyper_makekey((ts, s_obj), rtyper):
- if hasattr(s_obj, "rtyper_makekey_ex"):
- return s_obj.rtyper_makekey_ex(rtyper)
- return s_obj.rtyper_makekey()
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit