From bd0421b5d83ee4383ffffc62252388cb03361fa2 Mon Sep 17 00:00:00 2001 From: LordBaryhobal Date: Sun, 14 Jun 2026 17:04:10 +0200 Subject: [PATCH] fix(checker): handle generic overloads --- midas/checker/python.py | 3 ++- midas/checker/types.py | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) 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)