Commit e4b83e01 authored by Mark Dickinson's avatar Mark Dickinson

Issue #8627: Fix "XXX undetected error" from unchecked PyErr_WarnPy3k return.

This is just a quick fix:  if the warning is turned into an exception, the
exception simply gets ignored.
parent e37d75fc
......@@ -13,7 +13,10 @@ Core and Builtins
-----------------
- Issue #8627: Remove bogus "Overriding __cmp__ blocks inheritance of
__hash__ in 3.x" warning.
__hash__ in 3.x" warning. Also fix "XXX undetected error" that
arises from the "Overriding __eq__ blocks inheritance ..." warning
when turned into an exception: in this case the exception simply
gets ignored.
- Issue #8748: Fix two issues with comparisons between complex and integer
objects. (1) The comparison could incorrectly return True in some cases
......
......@@ -3869,10 +3869,16 @@ inherit_slots(PyTypeObject *type, PyTypeObject *base)
(base->tp_hash != PyObject_HashNotImplemented) &&
!OVERRIDES_HASH(type)) {
if (OVERRIDES_EQ(type)) {
PyErr_WarnPy3k("Overriding "
"__eq__ blocks inheritance "
"of __hash__ in 3.x",
1);
if (PyErr_WarnPy3k("Overriding "
"__eq__ blocks inheritance "
"of __hash__ in 3.x",
1) < 0)
/* XXX This isn't right. If the warning is turned
into an exception, we should be communicating
the error back to the caller, but figuring out
how to clean-up in that case is tricky. See
issue 8627 for more. */
PyErr_Clear();
}
}
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment