diff --git a/midas/checker/python.py b/midas/checker/python.py index f28ce77..a0f7a06 100644 --- a/midas/checker/python.py +++ b/midas/checker/python.py @@ -664,9 +664,10 @@ class PythonTyper( # No match -> invalid call if n_candidates == 0: + overloads_str: str = ", ".join(map(str, overloads)) self.reporter.error( location, - f"No matching overload in {overloads} {for_args}", + f"No matching overload in [{overloads_str}] {for_args}", ) return None diff --git a/midas/checker/types.py b/midas/checker/types.py index 0bf8ea2..c6d41d1 100644 --- a/midas/checker/types.py +++ b/midas/checker/types.py @@ -164,6 +164,14 @@ def substitute_typevars(type: Type, substitutions: dict[str, Type]) -> Type: returns=substitute_typevars(returns, substitutions), ) + case OverloadedFunction(overloads=overloads): + return OverloadedFunction( + overloads=[ + substitute_typevars(overload, substitutions) + for overload in overloads + ] + ) + case ComplexType(members=members): members2: dict[str, Type] = { name: substitute_typevars(prop, substitutions)