From 3e0dc60283d457b599dfbfbb3c6aea93cf682d32 Mon Sep 17 00:00:00 2001 From: LordBaryhobal Date: Sun, 7 Jun 2026 13:59:27 +0200 Subject: [PATCH] fix(checker): only unfold alias on subtype --- midas/checker/checker.py | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/midas/checker/checker.py b/midas/checker/checker.py index 9ed50f0..43948eb 100644 --- a/midas/checker/checker.py +++ b/midas/checker/checker.py @@ -178,13 +178,6 @@ class Checker( stmts: list[m.Stmt] = parser.parse() self.ctx.resolve(stmts) - def unfold_type(self, type: Type) -> Type: - match type: - case AliasType(type=ref_type): - return self.unfold_type(ref_type) - case _: - return type - def is_subtype(self, type1: Type, type2: Type) -> bool: """Check whether `type1` is a subtype of `type2` @@ -198,13 +191,13 @@ class Checker( bool: whether `type1` is a subtype of `type2` """ - type1 = self.unfold_type(type1) - type2 = self.unfold_type(type2) - if type1 == type2: return True match (type1, type2): + case (AliasType(type=base1), _): + return self.is_subtype(base1, type2) + case (BaseType(name=name1), BaseType(name=name2)): return name1 in BUILTIN_SUBTYPES.get(name2, set())