Issue 2235: __hash__ is once again inherited by default, but inheritance can be blocked explicitly so that collections.Hashable remains meaningful
diff --git a/Modules/_collectionsmodule.c b/Modules/_collectionsmodule.c
index 4d13e45..18a72f9 100644
--- a/Modules/_collectionsmodule.c
+++ b/Modules/_collectionsmodule.c
@@ -608,13 +608,6 @@
return 0;
}
-static long
-deque_nohash(PyObject *self)
-{
- PyErr_SetString(PyExc_TypeError, "deque objects are unhashable");
- return -1;
-}
-
static PyObject *
deque_copy(PyObject *deque)
{
@@ -917,7 +910,7 @@
0, /* tp_as_number */
&deque_as_sequence, /* tp_as_sequence */
0, /* tp_as_mapping */
- deque_nohash, /* tp_hash */
+ (hashfunc)PyObject_HashNotImplemented, /* tp_hash */
0, /* tp_call */
0, /* tp_str */
PyObject_GenericGetAttr, /* tp_getattro */