gh-92114: Improve error message for types with __class_getitem__ = None (GH-92115)

This commit is contained in:
Serhiy Storchaka 2022-05-02 08:29:49 +03:00 committed by GitHub
parent ed711290a0
commit 4d10f703d7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 12 additions and 1 deletions

View file

@ -185,11 +185,12 @@ PyObject_GetItem(PyObject *o, PyObject *key)
if (_PyObject_LookupAttr(o, &_Py_ID(__class_getitem__), &meth) < 0) {
return NULL;
}
if (meth) {
if (meth && meth != Py_None) {
result = PyObject_CallOneArg(meth, key);
Py_DECREF(meth);
return result;
}
Py_XDECREF(meth);
PyErr_Format(PyExc_TypeError, "type '%.200s' is not subscriptable",
((PyTypeObject *)o)->tp_name);
return NULL;