Prompted by Tim's comment, when handle_range_longs() sees an
unexpected type, report the actual type rather than 'float'. (It's
hard to even reach this code with a float. :-)
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index c8b784a..aeb2d53 100644
--- a/Python/bltinmodule.c
+++ b/Python/bltinmodule.c
@@ -1366,24 +1366,24 @@
Py_INCREF(istep);
}
- /* XXX What reason do we have to believe that if an arg isn't an
- * XXX int, it must be a float?
- */
if (!PyInt_Check(ilow) && !PyLong_Check(ilow)) {
- PyErr_SetString(PyExc_ValueError,
- "integer start argument expected, got float.");
+ PyErr_Format(PyExc_ValueError,
+ "integer start argument expected, got %s.",
+ ilow->ob_type->tp_name);
goto Fail;
}
if (!PyInt_Check(ihigh) && !PyLong_Check(ihigh)) {
- PyErr_SetString(PyExc_ValueError,
- "integer end argument expected, got float.");
+ PyErr_Format(PyExc_ValueError,
+ "integer end argument expected, got %s.",
+ ihigh->ob_type->tp_name);
goto Fail;
}
if (!PyInt_Check(istep) && !PyLong_Check(istep)) {
- PyErr_SetString(PyExc_ValueError,
- "integer step argument expected, got float.");
+ PyErr_Format(PyExc_ValueError,
+ "integer step argument expected, got %s.",
+ istep->ob_type->tp_name);
goto Fail;
}