Issue #17576: Deprecation warning emitted now when __int__() or __index__()
return not int instance. Introduced _PyLong_FromNbInt() and refactored
PyLong_As*() functions.
diff --git a/Include/longobject.h b/Include/longobject.h
index fbe738c..1c1c5de 100644
--- a/Include/longobject.h
+++ b/Include/longobject.h
@@ -152,6 +152,12 @@
unsigned char* bytes, size_t n,
int little_endian, int is_signed);
+/* _PyLong_FromNbInt: Convert the given object to a PyLongObject
+ using the nb_int slot, if available. Raise TypeError if either the
+ nb_int slot is not available or the result of the call to nb_int
+ returns something not of type int.
+*/
+PyAPI_FUNC(PyLongObject *)_PyLong_FromNbInt(PyObject *);
/* _PyLong_Format: Convert the long to a string object with given base,
appending a base prefix of 0[box] if base is 2, 8 or 16. */