diff options
Diffstat (limited to 'Objects/abstract.c')
| -rw-r--r-- | Objects/abstract.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/Objects/abstract.c b/Objects/abstract.c index 02e4ad7071..e975edd7c5 100644 --- a/Objects/abstract.c +++ b/Objects/abstract.c @@ -176,6 +176,12 @@ PyObject_GetItem(PyObject *o, PyObject *key) if (PyType_Check(o)) { PyObject *meth, *result; _Py_IDENTIFIER(__class_getitem__); + + // Special case type[int], but disallow other types so str[int] fails + if ((PyTypeObject*)o == &PyType_Type) { + return Py_GenericAlias(o, key); + } + if (_PyObject_LookupAttrId(o, &PyId___class_getitem__, &meth) < 0) { return NULL; } |
