forked from VimPlug/jedi
Fix an issue with Tuple generics
This commit is contained in:
@@ -138,13 +138,6 @@ class ProxyWithGenerics(BaseTypingClassWithGenerics):
|
|||||||
def gather_annotation_classes(self):
|
def gather_annotation_classes(self):
|
||||||
return ValueSet.from_sets(self._generics_manager.to_tuple())
|
return ValueSet.from_sets(self._generics_manager.to_tuple())
|
||||||
|
|
||||||
def _create_instance_with_generics(self, generics_manager):
|
|
||||||
return ProxyWithGenerics(
|
|
||||||
self.parent_context,
|
|
||||||
self._tree_name,
|
|
||||||
generics_manager
|
|
||||||
)
|
|
||||||
|
|
||||||
def infer_type_vars(self, value_set):
|
def infer_type_vars(self, value_set):
|
||||||
annotation_generics = self.get_generics()
|
annotation_generics = self.get_generics()
|
||||||
|
|
||||||
@@ -232,6 +225,13 @@ class TypingClassWithGenerics(_TypingClassMixin, ProxyWithGenerics):
|
|||||||
|
|
||||||
return type_var_dict
|
return type_var_dict
|
||||||
|
|
||||||
|
def _create_instance_with_generics(self, generics_manager):
|
||||||
|
return TypingClassWithGenerics(
|
||||||
|
self.parent_context,
|
||||||
|
self._tree_name,
|
||||||
|
generics_manager
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class ProxyTypingClassValue(_TypingClassMixin, ProxyTypingValue):
|
class ProxyTypingClassValue(_TypingClassMixin, ProxyTypingValue):
|
||||||
index_class = TypingClassWithGenerics
|
index_class = TypingClassWithGenerics
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# python >= 3.6
|
# python >= 3.6
|
||||||
from typing import List, Dict, overload
|
from typing import List, Dict, overload, Tuple, TypeVar
|
||||||
|
|
||||||
lst: list
|
lst: list
|
||||||
list_alias: List
|
list_alias: List
|
||||||
@@ -72,3 +72,18 @@ overload_f1(list_alias)
|
|||||||
overload_f1(list_str)
|
overload_f1(list_str)
|
||||||
#? str() dict()
|
#? str() dict()
|
||||||
overload_f1(list_int)
|
overload_f1(list_int)
|
||||||
|
|
||||||
|
# -------------------------
|
||||||
|
# Broken Matching
|
||||||
|
# -------------------------
|
||||||
|
T = TypeVar('T')
|
||||||
|
|
||||||
|
@overload
|
||||||
|
def broken_f1(value: 1) -> str: ...
|
||||||
|
|
||||||
|
@overload
|
||||||
|
def broken_f1(value: Tuple[T]) -> Tuple[T]: ...
|
||||||
|
|
||||||
|
tup: Tuple[float]
|
||||||
|
#? float()
|
||||||
|
broken_f1(broken_f1(tup))[0]
|
||||||
|
|||||||
Reference in New Issue
Block a user