Mercurial > cpython-lru_cache-weakref
diff Objects/typeobject.c @ 51461:7bfa64492d00 3.0
Merged revisions 69431 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r69431 | mark.dickinson | 2009-02-08 11:02:10 +0000 (Sun, 08 Feb 2009) | 4 lines
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:05:01 +0000 |
| parents | 87fbbf22adf3 |
| children | da0070cf4654 |
line wrap: on
line diff
--- a/Objects/typeobject.c Sun Feb 08 03:43:03 2009 +0000 +++ b/Objects/typeobject.c Sun Feb 08 11:05:01 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 =
