[pypy-svn] r65852 - in pypy/branch/pyjitpl5/pypy/rpython: . test

arigo at codespeak.net arigo at codespeak.net
Sun Jun 21 19:40:30 CEST 2009


Author: arigo
Date: Sun Jun 21 19:40:28 2009
New Revision: 65852

Modified:
   pypy/branch/pyjitpl5/pypy/rpython/rtuple.py
   pypy/branch/pyjitpl5/pypy/rpython/test/test_rtuple.py
Log:
A fix for tuple comparison.  Shown by a test involving a tuple
where one item is a list, resized or not.


Modified: pypy/branch/pyjitpl5/pypy/rpython/rtuple.py
==============================================================================
--- pypy/branch/pyjitpl5/pypy/rpython/rtuple.py	(original)
+++ pypy/branch/pyjitpl5/pypy/rpython/rtuple.py	Sun Jun 21 19:40:28 2009
@@ -292,32 +292,27 @@
     rtype_inplace_add = rtype_add
 
     def rtype_eq((r_tup1, r_tup2), hop):
-        # XXX assumes that r_tup2 is convertible to r_tup1
-        v_tuple1, v_tuple2 = hop.inputargs(r_tup1, r_tup1)
+        v_tuple1, v_tuple2 = hop.inputargs(r_tup1, r_tup2)
         ll_eq = r_tup1.get_ll_eq_function()
         return hop.gendirectcall(ll_eq, v_tuple1, v_tuple2)
 
     def rtype_ge((r_tup1, r_tup2), hop):
-        # XXX assumes that r_tup2 is convertible to r_tup1
-        v_tuple1, v_tuple2 = hop.inputargs(r_tup1, r_tup1)
+        v_tuple1, v_tuple2 = hop.inputargs(r_tup1, r_tup2)
         ll_ge = r_tup1.get_ll_ge_function()
         return hop.gendirectcall(ll_ge, v_tuple1, v_tuple2)
 
     def rtype_gt((r_tup1, r_tup2), hop):
-        # XXX assumes that r_tup2 is convertible to r_tup1
-        v_tuple1, v_tuple2 = hop.inputargs(r_tup1, r_tup1)
+        v_tuple1, v_tuple2 = hop.inputargs(r_tup1, r_tup2)
         ll_gt = r_tup1.get_ll_gt_function()
         return hop.gendirectcall(ll_gt, v_tuple1, v_tuple2)
 
     def rtype_le((r_tup1, r_tup2), hop):
-        # XXX assumes that r_tup2 is convertible to r_tup1
-        v_tuple1, v_tuple2 = hop.inputargs(r_tup1, r_tup1)
+        v_tuple1, v_tuple2 = hop.inputargs(r_tup1, r_tup2)
         ll_le = r_tup1.get_ll_le_function()
         return hop.gendirectcall(ll_le, v_tuple1, v_tuple2)
 
     def rtype_lt((r_tup1, r_tup2), hop):
-        # XXX assumes that r_tup2 is convertible to r_tup1
-        v_tuple1, v_tuple2 = hop.inputargs(r_tup1, r_tup1)
+        v_tuple1, v_tuple2 = hop.inputargs(r_tup1, r_tup2)
         ll_lt = r_tup1.get_ll_lt_function()
         return hop.gendirectcall(ll_lt, v_tuple1, v_tuple2)
 

Modified: pypy/branch/pyjitpl5/pypy/rpython/test/test_rtuple.py
==============================================================================
--- pypy/branch/pyjitpl5/pypy/rpython/test/test_rtuple.py	(original)
+++ pypy/branch/pyjitpl5/pypy/rpython/test/test_rtuple.py	Sun Jun 21 19:40:28 2009
@@ -280,6 +280,14 @@
         res = self.interpret(f, [2])
         assert res is True
 
+    def test_tuple_eq_list(self):
+        def f(n):
+            lst1 = [1, n]
+            lst1.append(3)
+            return (lst1, 52) == ([1, 53, 3], n-1)
+        res = self.interpret(f, [53])
+        assert res is True
+
     TUPLES = [
         ((1,2),  (2,3),   -1),
         ((1,2),  (1,3),   -1),



More information about the Pypy-commit mailing list