summaryrefslogtreecommitdiff
path: root/Objects/abstract.c
diff options
context:
space:
mode:
Diffstat (limited to 'Objects/abstract.c')
-rw-r--r--Objects/abstract.c6
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;
}