fix(checker): handle generic overloads

This commit is contained in:
2026-06-14 17:04:10 +02:00
parent 37a464d2bc
commit bd0421b5d8
2 changed files with 10 additions and 1 deletions

View File

@@ -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

View File

@@ -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)