fix(checker): handle generic overloads
This commit is contained in:
@@ -664,9 +664,10 @@ class PythonTyper(
|
|||||||
|
|
||||||
# No match -> invalid call
|
# No match -> invalid call
|
||||||
if n_candidates == 0:
|
if n_candidates == 0:
|
||||||
|
overloads_str: str = ", ".join(map(str, overloads))
|
||||||
self.reporter.error(
|
self.reporter.error(
|
||||||
location,
|
location,
|
||||||
f"No matching overload in {overloads} {for_args}",
|
f"No matching overload in [{overloads_str}] {for_args}",
|
||||||
)
|
)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|||||||
@@ -164,6 +164,14 @@ def substitute_typevars(type: Type, substitutions: dict[str, Type]) -> Type:
|
|||||||
returns=substitute_typevars(returns, substitutions),
|
returns=substitute_typevars(returns, substitutions),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
case OverloadedFunction(overloads=overloads):
|
||||||
|
return OverloadedFunction(
|
||||||
|
overloads=[
|
||||||
|
substitute_typevars(overload, substitutions)
|
||||||
|
for overload in overloads
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
case ComplexType(members=members):
|
case ComplexType(members=members):
|
||||||
members2: dict[str, Type] = {
|
members2: dict[str, Type] = {
|
||||||
name: substitute_typevars(prop, substitutions)
|
name: substitute_typevars(prop, substitutions)
|
||||||
|
|||||||
Reference in New Issue
Block a user