Kaydet (Commit) 2a7d45b6 authored tarafından Mark Dickinson's avatar Mark Dickinson

Issue #1717: add a DeprecationWarning in 3.x on type initialization

for types that implement tp_reserved (formerly tp_compare) but
not tp_richcompare.
üst 598c3a8a
......@@ -3886,6 +3886,21 @@ PyType_Ready(PyTypeObject *type)
goto error;
}
/* Warn for a type that implements tp_compare (now known as
tp_reserved) but not tp_richcompare. */
if (type->tp_reserved && !type->tp_richcompare) {
int error;
char msg[240];
PyOS_snprintf(msg, sizeof(msg),
"Type %.100s defines tp_reserved (formerly "
"tp_compare) but not tp_richcompare. "
"Comparisons may not behave as intended.",
type->tp_name);
error = PyErr_WarnEx(PyExc_DeprecationWarning, msg, 1);
if (error == -1)
goto error;
}
/* All done -- set the ready flag */
assert(type->tp_dict != NULL);
type->tp_flags =
......
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