fix(checker): use dispatcher in frame method registry

This commit is contained in:
2026-07-01 14:17:10 +02:00
parent 663642ea6c
commit bd1c9581c7

View File

@@ -3,7 +3,9 @@ from __future__ import annotations
from dataclasses import dataclass
from typing import TYPE_CHECKING, Any, Callable, Optional
import midas.ast.python as p
from midas.ast.location import Location
from midas.checker.dispatcher import CallDispatcher, CallResult
from midas.checker.registry import TypesRegistry
from midas.checker.reporter import FileReporter
from midas.checker.types import (
@@ -71,6 +73,10 @@ class MethodRegistry(metaclass=_MethodRegistryMeta):
def types(self) -> TypesRegistry:
return self.typer.types
@property
def dispatcher(self) -> CallDispatcher[p.Expr]:
return self.typer.dispatcher
def call(
self,
method: str,
@@ -147,15 +153,13 @@ class MethodRegistry(metaclass=_MethodRegistryMeta):
returns=DataFrameType(columns=new_columns),
)
return (
self.typer._get_call_result(
result: CallResult = self.dispatcher.get_result(
location=call.location,
callee=signature,
positional=call.positional,
keywords=call.keywords,
)
or UnknownType()
)
return result.result
@frame_method()
def mean(self, call: Call) -> Type:
@@ -187,12 +191,11 @@ class MethodRegistry(metaclass=_MethodRegistryMeta):
without_axis,
]
)
return (
self.typer._get_call_result(
result: CallResult = self.dispatcher.get_result(
location=call.location,
callee=overload,
positional=call.positional,
keywords=call.keywords,
)
or UnknownType()
)
return result.result