slice(5).__hash__() now raises a TypeError.
def test_repr(self):
self.assertEqual(repr(slice(1, 2, 3)), "slice(1, 2, 3)")
+ def test_hash(self):
+ # Verify clearing of SF bug #800796
+ self.assertRaises(TypeError, hash, slice(5))
+ self.assertRaises(TypeError, slice(5).__hash__)
+
def test_cmp(self):
s1 = slice(1, 2, 3)
s2 = slice(1, 2, 3)
return result;
}
+static long
+slice_hash(PySliceObject *v)
+{
+ PyErr_SetString(PyExc_TypeError, "unhashable type");
+ return -1L;
+}
+
PyTypeObject PySlice_Type = {
PyObject_HEAD_INIT(&PyType_Type)
0, /* Number of items for varobject */
0, /* tp_as_number */
0, /* tp_as_sequence */
0, /* tp_as_mapping */
- 0, /* tp_hash */
+ (hashfunc)slice_hash, /* tp_hash */
0, /* tp_call */
0, /* tp_str */
PyObject_GenericGetAttr, /* tp_getattro */