Mercurial > cpython-lru_cache-weakref
diff Objects/typeobject.c @ 51460:0ed22f1aed04
Issue #1717: add a DeprecationWarning in 3.x on type initialization
for types that implement tp_reserved (formerly tp_compare) but
not tp_richcompare.
| author | Mark Dickinson <dickinsm@gmail.com> |
|---|---|
| date | Sun, 08 Feb 2009 11:02:10 +0000 |
| parents | debd14c489b9 |
| children | 8cfa108e7bdc |
line wrap: on
line diff
--- a/Objects/typeobject.c Sun Feb 08 04:01:00 2009 +0000 +++ b/Objects/typeobject.c Sun Feb 08 11:02:10 2009 +0000 @@ -3886,6 +3886,21 @@ 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 =
