Guido van Rossum <gu...@python.org> added the comment:

@Serhiy can you look at this? A possible fix might be:

diff --git a/Lib/typing.py b/Lib/typing.py
index 681ab6d21e..adcef1e82b 100644
--- a/Lib/typing.py
+++ b/Lib/typing.py
@@ -701,7 +701,8 @@ class _GenericAlias(_BaseGenericAlias, _root=True):
                 arg = subst[arg]
             elif isinstance(arg, (_BaseGenericAlias, GenericAlias)):
                 subargs = tuple(subst[x] for x in arg.__parameters__)
-                arg = arg[subargs]
+                if subargs:
+                    arg = arg[subargs]
             new_args.append(arg)
         return self.copy_with(tuple(new_args))
 

The immediate cause of the problem seems to be that we call arg[subargs] with 
subargs being (). So arg is a _GenericAlias but its __parameters__ is (). I'm 
not sure what path was taken previously. :-(

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue40397>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to