Force tuple creation for generic append.
authorRobert Bradshaw <robertwb@math.washington.edu>
Wed, 30 Apr 2008 17:25:18 +0000 (10:25 -0700)
committerRobert Bradshaw <robertwb@math.washington.edu>
Wed, 30 Apr 2008 17:25:18 +0000 (10:25 -0700)
Cython/Compiler/ExprNodes.py
tests/run/append.pyx

index 1d656f9570e597cc64255a431ebf41710b5d20e1..491d0b8b546efba5278e8c29f4cf548f31e8e858 100644 (file)
@@ -4131,7 +4131,7 @@ static inline PyObject* __Pyx_PyObject_Append(PyObject* L, PyObject* x) {
         return Py_None; // this is just to have an accurate signature
     }
     else {
-        return PyObject_CallMethod(L, "append", "O", x);
+        return PyObject_CallMethod(L, "append", "(O)", x);
     }
 }
 """,""
index b802dc1c63a3b196e336333d8469b3761e7c2e9e..3967647ef003b0dca51d606508bab4ff82a9b019 100644 (file)
@@ -3,19 +3,21 @@ __doc__ = """
 None
 None
 got error
-[1, 2]
->>> test_append(A()) # doctest: +ELLIPSIS
+[1, 2, (3, 4)]
+>>> _ = test_append(A())
 appending
 1
 appending
 2
+appending
+(3, 4)
 got error
-<append.A instance at ...>
 >>> test_append(B())
 None
 None
 None
-[1, 2, 3, 4]
+None
+[1, 2, (3, 4), 5, 6]
 """
 
 class A:
@@ -31,9 +33,10 @@ class B(list):
 def test_append(L):
     print L.append(1)
     print L.append(2)
+    print L.append((3,4))
     try:
-        print L.append(3,4)
+        print L.append(5,6)
     except TypeError:
         print "got error"
-    print L
+    return L