1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-02-04 02:40:04 +08:00
SpaceVim/bundle/jedi-vim/pythonx/jedi/test/completion/pep0484_overload.py
2022-10-23 15:41:52 +08:00

90 lines
1.4 KiB
Python
Vendored

# python >= 3.6
from typing import List, Dict, overload, Tuple, TypeVar
lst: list
list_alias: List
list_str: List[str]
list_str: List[int]
# -------------------------
# With base classes
# -------------------------
@overload
def overload_f2(value: List) -> str: ...
@overload
def overload_f2(value: Dict) -> int: ...
#? str()
overload_f2([''])
#? int()
overload_f2({1.0: 1.0})
#? str()
overload_f2(lst)
#? str()
overload_f2(list_alias)
#? str()
overload_f2(list_str)
@overload
def overload_f3(value: list) -> str: ...
@overload
def overload_f3(value: dict) -> float: ...
#? str()
overload_f3([''])
#? float()
overload_f3({1.0: 1.0})
#? str()
overload_f3(lst)
#? str()
overload_f3(list_alias)
#? str()
overload_f3(list_str)
# -------------------------
# Generics Matching
# -------------------------
@overload
def overload_f1(value: List[str]) -> str: ...
@overload
def overload_f1(value: Dict[str, str]) -> Dict[str, str]: ...
def overload_f1():
pass
#? str()
overload_f1([''])
#? str() dict()
overload_f1(1)
#? dict()
overload_f1({'': ''})
#? str() dict()
overload_f1(lst)
#? str() dict()
overload_f1(list_alias)
#? str()
overload_f1(list_str)
#? str() dict()
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]