From 928901ef9c3f3bd244f5f4d0383fbb6529e8f73f Mon Sep 17 00:00:00 2001 From: LordBaryhobal Date: Thu, 28 May 2026 18:16:35 +0200 Subject: [PATCH] fix(checker): get literal types from context --- midas/checker/checker.py | 10 +++++----- midas/resolver/midas.py | 3 ++- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/midas/checker/checker.py b/midas/checker/checker.py index b019083..8fecb5e 100644 --- a/midas/checker/checker.py +++ b/midas/checker/checker.py @@ -124,14 +124,14 @@ class Checker( def visit_literal_expr(self, expr: p.LiteralExpr) -> Type: match expr.value: + case bool(): # Must be before int + return self.ctx.get_type("bool") case int(): - return BaseType(name="int") + return self.ctx.get_type("int") case float(): - return BaseType(name="float") - case bool(): - return BaseType(name="bool") + return self.ctx.get_type("float") case str(): - return BaseType(name="str") + return self.ctx.get_type("str") case _: return UnknownType() diff --git a/midas/resolver/midas.py b/midas/resolver/midas.py index 66c3152..5a20a35 100644 --- a/midas/resolver/midas.py +++ b/midas/resolver/midas.py @@ -27,9 +27,10 @@ class MidasResolver(m.Stmt.Visitor[None], m.Expr.Visitor[Type]): return result def _define_builtin(self): + self.define_type("bool", BaseType(name="bool")) self.define_type("int", BaseType(name="int")) self.define_type("float", BaseType(name="float")) - self.define_type("bool", BaseType(name="bool")) + self.define_type("str", BaseType(name="str")) self.define_operation( left=self.get_type("int"), operator="__add__",