From a1f2937e16fe18a84ef1df7e1ce0e7e52b7bdadc Mon Sep 17 00:00:00 2001 From: LordBaryhobal Date: Fri, 12 Jun 2026 17:01:19 +0200 Subject: [PATCH] feat(tests): update serializer --- tests/serializer/midas.py | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/tests/serializer/midas.py b/tests/serializer/midas.py index 2a5daf5..af4c0b1 100644 --- a/tests/serializer/midas.py +++ b/tests/serializer/midas.py @@ -6,16 +6,17 @@ from midas.ast.midas import ( ConstraintType, Expr, ExtendStmt, + ExtensionType, FunctionType, GenericType, GetExpr, GroupingExpr, LiteralExpr, LogicalExpr, + MemberStmt, NamedType, OpStmt, PredicateStmt, - PropertyStmt, Stmt, Type, TypeParam, @@ -58,9 +59,10 @@ class MidasAstJsonSerializer( "bound": self._serialize_optional(param.bound), } - def visit_property_stmt(self, stmt: PropertyStmt) -> dict: + def visit_member_stmt(self, stmt: MemberStmt) -> dict: return { - "_type": "PropertyStmt", + "_type": "MemberStmt", + "kind": stmt.kind.name, "name": stmt.name.lexeme, "type": stmt.type.accept(self), } @@ -68,8 +70,9 @@ class MidasAstJsonSerializer( def visit_extend_stmt(self, stmt: ExtendStmt) -> dict: return { "_type": "ExtendStmt", - "type": stmt.type.accept(self), - "operations": self._serialize_list(stmt.operations), + "name": stmt.name.lexeme, + "params": [self._serialize_type_param(param) for param in stmt.params], + "members": self._serialize_list(stmt.members), } def visit_op_stmt(self, stmt: OpStmt) -> dict: @@ -163,7 +166,7 @@ class MidasAstJsonSerializer( def visit_complex_type(self, type: ComplexType) -> dict: return { "_type": "ComplexType", - "properties": self._serialize_list(type.properties), + "members": self._serialize_list(type.members), } def visit_function_type(self, type: FunctionType) -> dict: @@ -180,3 +183,10 @@ class MidasAstJsonSerializer( "type": arg.type.accept(self), "required": arg.required, } + + def visit_extension_type(self, type: ExtensionType) -> dict: + return { + "_type": "ExtensionType", + "base": type.base.accept(self), + "extension": type.extension.accept(self), + }