mirror of
https://github.com/davidhalter/jedi.git
synced 2026-01-10 14:02:27 +08:00
Improved Generic subclass matching
This commit is contained in:
@@ -183,6 +183,11 @@ class GenericClass(ClassMixin, DefineGenericBase):
|
||||
def _create_instance_with_generics(self, generics_manager):
|
||||
return GenericClass(self._class_value, generics_manager)
|
||||
|
||||
def is_sub_class_of(self, class_value):
|
||||
if super(GenericClass, self).is_sub_class_of(class_value):
|
||||
return True
|
||||
return self._class_value.is_sub_class_of(class_value)
|
||||
|
||||
|
||||
class _LazyGenericBaseClass(object):
|
||||
def __init__(self, class_value, lazy_base_class):
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
# python >= 3.4
|
||||
# python >= 3.6
|
||||
from typing import List, Dict, overload
|
||||
|
||||
lst: list
|
||||
list_alias: List
|
||||
list_str: List[str]
|
||||
|
||||
# -------------------------
|
||||
# With base classes
|
||||
@@ -15,6 +18,12 @@ def overload_f2(value: Dict) -> int: ...
|
||||
overload_f2([''])
|
||||
#? int()
|
||||
overload_f2({1.0: 1.0})
|
||||
#? str()
|
||||
overload_f2(lst)
|
||||
#? str()
|
||||
overload_f2(list_alias)
|
||||
#? str()
|
||||
overload_f2(list_str)
|
||||
|
||||
|
||||
@overload
|
||||
@@ -26,3 +35,9 @@ def overload_f3(value: dict) -> float: ...
|
||||
overload_f3([''])
|
||||
#? float()
|
||||
overload_f3({1.0: 1.0})
|
||||
#? str()
|
||||
overload_f3(lst)
|
||||
#? str()
|
||||
overload_f3(list_alias)
|
||||
#? str()
|
||||
overload_f3(list_str)
|
||||
|
||||
Reference in New Issue
Block a user