From 78e10e0895cf430d1a4dab50f094b97404dc70b9 Mon Sep 17 00:00:00 2001 From: LordBaryhobal Date: Tue, 23 Jun 2026 16:12:27 +0200 Subject: [PATCH] feat(checker): process frame type definitions --- midas/checker/midas.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/midas/checker/midas.py b/midas/checker/midas.py index 13e83b6..350bed9 100644 --- a/midas/checker/midas.py +++ b/midas/checker/midas.py @@ -14,8 +14,10 @@ from midas.checker.reporter import FileReporter, Reporter from midas.checker.types import ( AliasType, AppliedType, + ColumnType, ComplexType, ConstraintType, + DataFrameType, ExtensionType, Function, GenericType, @@ -401,6 +403,18 @@ class MidasTyper(m.Stmt.Visitor[None], m.Expr.Visitor[Type], m.Type.Visitor[Type kw=[process_arg(arg, i + n_pos + n_mixed) for i, arg in enumerate(spec.kw)], ) + def visit_frame_type(self, type: m.FrameType) -> Type: + def process_column(i: int, col: m.FrameType.Column) -> DataFrameType.Column: + return DataFrameType.Column( + index=i, + name=col.name.lexeme, + type=ColumnType(type=col.type.accept(self)), + ) + + return DataFrameType( + columns=[process_column(i, col) for i, col in enumerate(type.columns)] + ) + def _resolve_type_params(self, params: list[m.TypeParam]): vars: list[TypeVar] = [] for param in params: