From 087f6b4669107d341608b9128ca61031cb0f032c Mon Sep 17 00:00:00 2001 From: LordBaryhobal Date: Tue, 30 Jun 2026 16:28:16 +0200 Subject: [PATCH] refactor(types): rename AliasType to DerivedType --- midas/checker/midas.py | 4 ++-- midas/checker/python.py | 6 +++--- midas/checker/registry.py | 10 +++++----- midas/checker/types.py | 14 ++++++++------ midas/cli/commands/registry.py | 4 ++-- midas/generator/generator.py | 4 ++-- midas/generator/stubs.py | 8 ++++---- 7 files changed, 26 insertions(+), 24 deletions(-) diff --git a/midas/checker/midas.py b/midas/checker/midas.py index 13e83b6..d67146c 100644 --- a/midas/checker/midas.py +++ b/midas/checker/midas.py @@ -12,10 +12,10 @@ from midas.checker.preamble import Preamble from midas.checker.registry import TypesRegistry from midas.checker.reporter import FileReporter, Reporter from midas.checker.types import ( - AliasType, AppliedType, ComplexType, ConstraintType, + DerivedType, ExtensionType, Function, GenericType, @@ -152,7 +152,7 @@ class MidasTyper(m.Stmt.Visitor[None], m.Expr.Visitor[Type], m.Type.Visitor[Type if len(params) != 0: type = GenericType(name=name, params=params, body=type) else: - type = AliasType(name=name, type=type) + type = DerivedType(name=name, type=type) self.types.define_type(name, type) self._local_variables.clear() self._current_name = None diff --git a/midas/checker/python.py b/midas/checker/python.py index ffa1600..6a01764 100644 --- a/midas/checker/python.py +++ b/midas/checker/python.py @@ -18,10 +18,10 @@ from midas.checker.registry import TypesRegistry from midas.checker.reporter import FileReporter, Reporter from midas.checker.resolver import Resolver from midas.checker.types import ( - AliasType, AppliedType, BaseType, ConstraintType, + DerivedType, Function, GenericType, OverloadedFunction, @@ -740,7 +740,7 @@ class PythonTyper( case UnknownType(): return UnknownType() - case AliasType(type=base): + case DerivedType(type=base): return self._get_call_result( location, base, positional, keywords, report_errors ) @@ -1169,7 +1169,7 @@ class PythonTyper( self, expr: p.CastExpr, subject_type: Type, target_type: Type, lit_value: Any ) -> bool: match target_type: - case AliasType(type=base): + case DerivedType(type=base): return self._evaluate_cast_statically( expr, subject_type, base, lit_value ) diff --git a/midas/checker/registry.py b/midas/checker/registry.py index bbd3d85..7520981 100644 --- a/midas/checker/registry.py +++ b/midas/checker/registry.py @@ -5,11 +5,11 @@ from typing import Optional from midas.ast.midas import MemberKind from midas.checker.builtins import BUILTIN_SUBTYPES from midas.checker.types import ( - AliasType, AppliedType, BaseType, ComplexType, ConstraintType, + DerivedType, ExtensionType, Function, GenericType, @@ -143,7 +143,7 @@ class TypesRegistry: return True return self.is_subtype(type1, bound) - case (AliasType(type=base1), _): + case (DerivedType(type=base1), _): return self.is_subtype(base1, type2) case (BaseType(name=name1), BaseType(name=name2)): @@ -294,8 +294,8 @@ class TypesRegistry: def apply_generic(self, type: Type, args: list[Type]) -> Type: match type: - case AliasType(name=name, type=base): - return AliasType(name=name, type=self.apply_generic(base, args)) + case DerivedType(name=name, type=base): + return DerivedType(name=name, type=self.apply_generic(base, args)) case GenericType(name=name, params=type_vars, body=body): n_args: int = len(args) @@ -362,7 +362,7 @@ class TypesRegistry: return self._members[name][member_name].type return None - case AliasType(name=name, type=base): + case DerivedType(name=name, type=base): if name in self._members: if member_name in self._members[name]: return self._members[name][member_name].type diff --git a/midas/checker/types.py b/midas/checker/types.py index 4ebda35..bf1703b 100644 --- a/midas/checker/types.py +++ b/midas/checker/types.py @@ -23,7 +23,7 @@ class BaseType: @dataclass(frozen=True, kw_only=True) -class AliasType: +class DerivedType: name: str type: Type @@ -175,8 +175,10 @@ def substitute_typevars(type: Type, substitutions: dict[str, Type]) -> Type: case BaseType(): return type - case AliasType(name=name, type=type2): - return AliasType(name=name, type=substitute_typevars(type2, substitutions)) + case DerivedType(name=name, type=type2): + return DerivedType( + name=name, type=substitute_typevars(type2, substitutions) + ) case Function( pos_args=pos_args, @@ -263,7 +265,7 @@ def substitute_typevars(type: Type, substitutions: dict[str, Type]) -> Type: def unfold_type(type: Type) -> Type: match type: - case AliasType(type=ref_type): + case DerivedType(type=ref_type): return unfold_type(ref_type) case _: return type @@ -286,7 +288,7 @@ def to_annotation(type: Type) -> str: case BaseType(name=name): return name - case AliasType(name=name): + case DerivedType(name=name): return name case UnknownType(): @@ -331,7 +333,7 @@ class Predicate: Type = ( TopType | BaseType - | AliasType + | DerivedType | UnknownType | UnitType | Function diff --git a/midas/cli/commands/registry.py b/midas/cli/commands/registry.py index 12c222b..de340d2 100644 --- a/midas/cli/commands/registry.py +++ b/midas/cli/commands/registry.py @@ -11,14 +11,14 @@ import click from midas.ast.printer import MidasPrinter from midas.checker.checker import TypeChecker from midas.checker.registry import Member -from midas.checker.types import AliasType, AppliedType, BaseType, GenericType, Type +from midas.checker.types import AppliedType, BaseType, DerivedType, GenericType, Type def base_type(type: Type) -> Type: match type: case BaseType(): return type - case AliasType(type=base): + case DerivedType(type=base): return base case AppliedType(body=body): return body diff --git a/midas/generator/generator.py b/midas/generator/generator.py index 0af3fcd..3f87ef2 100644 --- a/midas/generator/generator.py +++ b/midas/generator/generator.py @@ -10,11 +10,11 @@ from midas.ast.location import Location from midas.ast.printer import MidasPrinter from midas.checker.registry import TypesRegistry from midas.checker.types import ( - AliasType, AppliedType, BaseType, ComplexType, ConstraintType, + DerivedType, ExtensionType, Function, GenericType, @@ -305,7 +305,7 @@ class Generator(p.Stmt.Visitor[ast.stmt], p.Expr.Visitor[ast.expr]): self._make_cast_assert_message(src_location, expr, type), ) - case AliasType(type=base): + case DerivedType(type=base): self._make_cast_asserts(src_location, expr, base) case UnitType(): diff --git a/midas/generator/stubs.py b/midas/generator/stubs.py index c9a3804..2ebcbd2 100644 --- a/midas/generator/stubs.py +++ b/midas/generator/stubs.py @@ -4,11 +4,11 @@ from typing import Optional, assert_never import midas.ast.midas as m from midas.checker.registry import Member, TypesRegistry from midas.checker.types import ( - AliasType, AppliedType, BaseType, ComplexType, ConstraintType, + DerivedType, ExtensionType, Function, GenericType, @@ -96,7 +96,7 @@ class StubsGenerator: def get_bases(self, type: Type) -> tuple[list[ast.expr], dict[str, Type]]: match type: - case AliasType(type=base): + case DerivedType(type=base): return [self.dump_type(base)], {} case GenericType(params=params, body=body): @@ -161,7 +161,7 @@ class StubsGenerator: def dump_type(self, type: Type) -> ast.expr: match type: - case AliasType(name=name) | GenericType(name=name) if ( + case DerivedType(name=name) | GenericType(name=name) if ( name in self.substitutions ): type = substitute_typevars(type, self.substitutions[name]) @@ -174,7 +174,7 @@ class StubsGenerator: case BaseType(name=name): return ast.Name(id=name) - case AliasType(name=name): + case DerivedType(name=name): return ast.Name(id=name) case UnitType():