Author: Armin Rigo <[email protected]>
Branch: kill-someobject
Changeset: r57927:d867247c7bc9
Date: 2012-10-08 14:57 +0200
http://bitbucket.org/pypy/pypy/changeset/d867247c7bc9/
Log: (fijal, arigo) Fix one of the failures: tuple equality now correctly
computes the union of the two tuples.
diff --git a/pypy/annotation/binaryop.py b/pypy/annotation/binaryop.py
--- a/pypy/annotation/binaryop.py
+++ b/pypy/annotation/binaryop.py
@@ -550,7 +550,9 @@
def union((tup1, tup2)):
if len(tup1.items) != len(tup2.items):
- return SomeObject()
+ raise Exception("cannot take the union of a tuple of length %d "
+ "and a tuple of length %d" % (len(tup1.items),
+ len(tup2.items)))
else:
unions = [unionof(x,y) for x,y in zip(tup1.items, tup2.items)]
return SomeTuple(items = unions)
@@ -558,6 +560,20 @@
def add((tup1, tup2)):
return SomeTuple(items = tup1.items + tup2.items)
+ def eq(tup1tup2):
+ tup1tup2.union()
+ return s_Bool
+ ne = eq
+
+ def lt((tup1, tup2)):
+ raise Exception("unsupported: (...) < (...)")
+ def le((tup1, tup2)):
+ raise Exception("unsupported: (...) <= (...)")
+ def gt((tup1, tup2)):
+ raise Exception("unsupported: (...) > (...)")
+ def ge((tup1, tup2)):
+ raise Exception("unsupported: (...) >= (...)")
+
class __extend__(pairtype(SomeDict, SomeDict)):
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit