]> granicus.if.org Git - python/commitdiff
count() should return integers #10474
authorBenjamin Peterson <benjamin@python.org>
Sat, 20 Nov 2010 22:35:41 +0000 (22:35 +0000)
committerBenjamin Peterson <benjamin@python.org>
Sat, 20 Nov 2010 22:35:41 +0000 (22:35 +0000)
Lib/test/test_builtin.py
Misc/NEWS
Objects/rangeobject.c

index d2d4fa9fcf11227451823f27396d1f4c528f789d..4d9b5c320a01f6e118630891f3ecda432b45dec8 100644 (file)
@@ -1033,6 +1033,8 @@ class BuiltinTest(unittest.TestCase):
         self.assertEqual(range(3).count(1), 1)
         self.assertEqual(range(3).count(2), 1)
         self.assertEqual(range(3).count(3), 0)
+        self.assertIs(type(range(3).count(-1)), int)
+        self.assertIs(type(range(3).count(1)), int)
 
         self.assertEqual(range(10**20).count(1), 1)
         self.assertEqual(range(10**20).count(10**20), 0)
index f27c4b0d3f634bb283072894e7c3c988f0d6cb29..04d624c68d24415230af19c8ef455d8f96a1e29e 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,6 +10,8 @@ What's New in Python 3.2 Beta 1?
 Core and Builtins
 -----------------
 
+- Issue #10474: range().count() should return integers.
+
 - Issue #10255: Fix reference leak in Py_InitializeEx().  Patch by Neil
   Schemenauer.
 
index 965038635c39d5b1789a993c16bca591e4a6487b..2188dfba5974c44fbbcabffbb7eeead157206683 100644 (file)
@@ -338,9 +338,9 @@ range_count(rangeobject *r, PyObject *ob)
 {
     if (PyLong_CheckExact(ob) || PyBool_Check(ob)) {
         if (range_contains_long(r, ob))
-            Py_RETURN_TRUE;
+            return PyLong_FromLong(1);
         else
-            Py_RETURN_FALSE;
+            return PyLong_FromLong(0);
     } else {
         Py_ssize_t count;
         count = _PySequence_IterSearch((PyObject*)r, ob, PY_ITERSEARCH_COUNT);