diff --git a/Lib/typing.py b/Lib/typing.py index 95bd61c7f8c61f..990fbe85ec0a12 100644 --- a/Lib/typing.py +++ b/Lib/typing.py @@ -1440,6 +1440,8 @@ def _determine_new_args(self, args): substfunc = getattr(old_arg, '__typing_subst__', None) if substfunc: new_arg = substfunc(new_arg_by_param[old_arg]) + elif not isinstance(old_arg, (_GenericAlias, GenericAlias, types.UnionType)): + new_arg = old_arg else: subparams = getattr(old_arg, '__parameters__', ()) if not subparams: diff --git a/Misc/NEWS.d/next/Library/2022-10-29-19-29-35.gh-issue-98852.jR9qxY.rst b/Misc/NEWS.d/next/Library/2022-10-29-19-29-35.gh-issue-98852.jR9qxY.rst new file mode 100644 index 00000000000000..c3b05c66450033 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-10-29-19-29-35.gh-issue-98852.jR9qxY.rst @@ -0,0 +1 @@ +Add extra type check in ``_determine_new_args`` to avoid a bug with parameterizing generics.