@@ -1381,6 +1381,12 @@ FutureObj_finalize(FutureObj *fut)
13811381 PyErr_Restore (error_type , error_value , error_traceback );
13821382}
13831383
1384+ static PyObject *
1385+ future_cls_getitem (PyObject * cls , PyObject * type )
1386+ {
1387+ Py_INCREF (cls );
1388+ return cls ;
1389+ }
13841390
13851391static PyAsyncMethods FutureType_as_async = {
13861392 (unaryfunc )future_new_iter , /* am_await */
@@ -1400,6 +1406,7 @@ static PyMethodDef FutureType_methods[] = {
14001406 _ASYNCIO_FUTURE_DONE_METHODDEF
14011407 _ASYNCIO_FUTURE_GET_LOOP_METHODDEF
14021408 _ASYNCIO_FUTURE__REPR_INFO_METHODDEF
1409+ {"__class_getitem__" , future_cls_getitem , METH_O |METH_CLASS , NULL },
14031410 {NULL , NULL } /* Sentinel */
14041411};
14051412
@@ -2429,6 +2436,13 @@ TaskObj_finalize(TaskObj *task)
24292436 FutureObj_finalize ((FutureObj * )task );
24302437}
24312438
2439+ static PyObject *
2440+ task_cls_getitem (PyObject * cls , PyObject * type )
2441+ {
2442+ Py_INCREF (cls );
2443+ return cls ;
2444+ }
2445+
24322446static void TaskObj_dealloc (PyObject * ); /* Needs Task_CheckExact */
24332447
24342448static PyMethodDef TaskType_methods [] = {
@@ -2449,6 +2463,7 @@ static PyMethodDef TaskType_methods[] = {
24492463 _ASYNCIO_TASK_GET_NAME_METHODDEF
24502464 _ASYNCIO_TASK_SET_NAME_METHODDEF
24512465 _ASYNCIO_TASK_GET_CORO_METHODDEF
2466+ {"__class_getitem__" , task_cls_getitem , METH_O |METH_CLASS , NULL },
24522467 {NULL , NULL } /* Sentinel */
24532468};
24542469
0 commit comments