diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2022-11-01 07:33:09 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-01 07:33:09 (GMT) |
commit | 0e15c31c7e9907fdbe38a3f419b669fed5bb3b33 (patch) | |
tree | 14a32e4a22f2b236624cbbb21a278e3bffc8bad3 /Objects/genericaliasobject.c | |
parent | f5afb7f2331efa8f64080576a75517c3a96442b9 (diff) | |
download | cpython-0e15c31c7e9907fdbe38a3f419b669fed5bb3b33.zip cpython-0e15c31c7e9907fdbe38a3f419b669fed5bb3b33.tar.gz cpython-0e15c31c7e9907fdbe38a3f419b669fed5bb3b33.tar.bz2 |
gh-98852: Fix subscription of type aliases (GH-98920)
Fix subscription of type aliases containing bare generic types or types
like TypeVar: for example tuple[A, T][int] and tuple[TypeVar, T][int],
where A is a generic type, and T is a type variable.
Diffstat (limited to 'Objects/genericaliasobject.c')
-rw-r--r-- | Objects/genericaliasobject.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/Objects/genericaliasobject.c b/Objects/genericaliasobject.c index 19f011f..77acd1b 100644 --- a/Objects/genericaliasobject.c +++ b/Objects/genericaliasobject.c @@ -458,6 +458,13 @@ _Py_subs_parameters(PyObject *self, PyObject *args, PyObject *parameters, PyObje } for (Py_ssize_t iarg = 0, jarg = 0; iarg < nargs; iarg++) { PyObject *arg = PyTuple_GET_ITEM(args, iarg); + if (PyType_Check(arg)) { + Py_INCREF(arg); + PyTuple_SET_ITEM(newargs, jarg, arg); + jarg++; + continue; + } + int unpack = _is_unpacked_typevartuple(arg); if (unpack < 0) { Py_DECREF(newargs); |