refactor(types): rename AliasType to DerivedType
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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():
|
||||
|
||||
@@ -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():
|
||||
|
||||
Reference in New Issue
Block a user