Author: Armin Rigo <ar...@tunes.org> Branch: intern-not-immortal Changeset: r74611:95fdb025f04d Date: 2014-11-20 13:21 +0100 http://bitbucket.org/pypy/pypy/changeset/95fdb025f04d/
Log: Test and fix diff --git a/rpython/rlib/rweakref.py b/rpython/rlib/rweakref.py --- a/rpython/rlib/rweakref.py +++ b/rpython/rlib/rweakref.py @@ -105,7 +105,7 @@ rtyper.getrepr(self.s_key)) def rtyper_makekey(self): - return self.__class__, + return self.__class__, self.s_key.rtyper_makekey(), self.valueclassdef def method_get(self, s_key): return annmodel.SomeInstance(self.valueclassdef, can_be_None=True) @@ -165,7 +165,7 @@ return _rweakkeydict.WeakKeyDictRepr(rtyper) def rtyper_makekey(self): - return self.__class__, + return self.__class__, self.keyclassdef, self.valueclassdef def method_get(self, s_key): assert isinstance(s_key, annmodel.SomeInstance) diff --git a/rpython/rlib/test/test_rweakvaldict.py b/rpython/rlib/test/test_rweakvaldict.py --- a/rpython/rlib/test/test_rweakvaldict.py +++ b/rpython/rlib/test/test_rweakvaldict.py @@ -144,3 +144,13 @@ d = RWeakValueDictionary(str, Y) d.set("x", X()) py.test.raises(Exception, interpret, g, [1]) + + +def test_bogus_makekey(): + class X: pass + class Y: pass + def g(): + X(); Y() + RWeakValueDictionary(str, X).get("foobar") + RWeakValueDictionary(int, Y).get(42) + interpret(g, []) _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit