From 1c4a2edbdb0493fafa51d0c7a74a46dd722da851 Mon Sep 17 00:00:00 2001 From: Peter Law Date: Sat, 18 Apr 2020 19:43:47 +0100 Subject: [PATCH] Fix construction of nested generic tuple return types Unfortunately this appears to show up a separate bug. --- jedi/inference/gradual/base.py | 2 +- test/completion/pep0484_generic_parameters.py | 21 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/jedi/inference/gradual/base.py b/jedi/inference/gradual/base.py index 5d7be602..70cfa447 100644 --- a/jedi/inference/gradual/base.py +++ b/jedi/inference/gradual/base.py @@ -99,7 +99,7 @@ class DefineGenericBase(LazyValueWrapper): for generic_set in self.get_generics(): values = NO_VALUES for generic in generic_set: - if isinstance(generic, (GenericClass, TypeVar)): + if isinstance(generic, (DefineGenericBase, TypeVar)): result = generic.define_generics(type_var_dict) values |= result if result != ValueSet({generic}): diff --git a/test/completion/pep0484_generic_parameters.py b/test/completion/pep0484_generic_parameters.py index 89572d99..dabe8d7c 100644 --- a/test/completion/pep0484_generic_parameters.py +++ b/test/completion/pep0484_generic_parameters.py @@ -6,6 +6,7 @@ from typing import ( Iterable, List, Mapping, + Tuple, Type, TypeVar, Union, @@ -59,6 +60,26 @@ for b in list_type_t_to_list_t(list_of_int_type): b +# Test construction of nested generic tuple return parameters +def list_t_to_list_tuple_t(the_list: List[T]) -> List[Tuple[T]]: + return [(x,) for x in the_list] + + +x1t = list_t_to_list_tuple_t(list_of_ints)[0][0] +#? int() +x1t + + +for c1 in list_t_to_list_tuple_t(list_of_ints): + #? int() + c1[0] + + +for c2, in list_t_to_list_tuple_t(list_of_ints): + #? int() + c2 + + def foo(x: T) -> T: return x