diff options
Diffstat (limited to 'Objects/typevarobject.c')
-rw-r--r-- | Objects/typevarobject.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/Objects/typevarobject.c b/Objects/typevarobject.c index d8158293aca..3ab8cb14686 100644 --- a/Objects/typevarobject.c +++ b/Objects/typevarobject.c @@ -1,4 +1,4 @@ -// TypeVar, TypeVarTuple, and ParamSpec +// TypeVar, TypeVarTuple, ParamSpec, and TypeAlias #include "Python.h" #include "pycore_object.h" // _PyObject_GC_TRACK/UNTRACK, PyAnnotateFormat #include "pycore_typevarobject.h" @@ -394,7 +394,7 @@ caller(void) } static PyObject * -typevartuple_unpack(PyObject *tvt) +unpack(PyObject *self) { PyObject *typing = PyImport_ImportModule("typing"); if (typing == NULL) { @@ -405,7 +405,7 @@ typevartuple_unpack(PyObject *tvt) Py_DECREF(typing); return NULL; } - PyObject *unpacked = PyObject_GetItem(unpack, tvt); + PyObject *unpacked = PyObject_GetItem(unpack, self); Py_DECREF(typing); Py_DECREF(unpack); return unpacked; @@ -440,7 +440,7 @@ unpack_typevartuples(PyObject *params) for (Py_ssize_t i = 0; i < n; i++) { PyObject *param = PyTuple_GET_ITEM(params, i); if (Py_IS_TYPE(param, tp)) { - PyObject *unpacked = typevartuple_unpack(param); + PyObject *unpacked = unpack(param); if (unpacked == NULL) { Py_DECREF(new_params); return NULL; @@ -1524,9 +1524,9 @@ typevartuple_dealloc(PyObject *self) } static PyObject * -typevartuple_iter(PyObject *self) +unpack_iter(PyObject *self) { - PyObject *unpacked = typevartuple_unpack(self); + PyObject *unpacked = unpack(self); if (unpacked == NULL) { return NULL; } @@ -1782,7 +1782,7 @@ PyType_Slot typevartuple_slots[] = { {Py_tp_methods, typevartuple_methods}, {Py_tp_getset, typevartuple_getset}, {Py_tp_new, typevartuple}, - {Py_tp_iter, typevartuple_iter}, + {Py_tp_iter, unpack_iter}, {Py_tp_repr, typevartuple_repr}, {Py_tp_dealloc, typevartuple_dealloc}, {Py_tp_alloc, PyType_GenericAlloc}, @@ -2158,6 +2158,7 @@ PyTypeObject _PyTypeAlias_Type = { .tp_dealloc = typealias_dealloc, .tp_new = typealias_new, .tp_free = PyObject_GC_Del, + .tp_iter = unpack_iter, .tp_traverse = typealias_traverse, .tp_clear = typealias_clear, .tp_repr = typealias_repr, |