fix(checker): get literal types from context

This commit is contained in:
2026-05-28 18:16:35 +02:00
parent 4b62c78874
commit 928901ef9c
2 changed files with 7 additions and 6 deletions

View File

@@ -124,14 +124,14 @@ class Checker(
def visit_literal_expr(self, expr: p.LiteralExpr) -> Type: def visit_literal_expr(self, expr: p.LiteralExpr) -> Type:
match expr.value: match expr.value:
case bool(): # Must be before int
return self.ctx.get_type("bool")
case int(): case int():
return BaseType(name="int") return self.ctx.get_type("int")
case float(): case float():
return BaseType(name="float") return self.ctx.get_type("float")
case bool():
return BaseType(name="bool")
case str(): case str():
return BaseType(name="str") return self.ctx.get_type("str")
case _: case _:
return UnknownType() return UnknownType()

View File

@@ -27,9 +27,10 @@ class MidasResolver(m.Stmt.Visitor[None], m.Expr.Visitor[Type]):
return result return result
def _define_builtin(self): def _define_builtin(self):
self.define_type("bool", BaseType(name="bool"))
self.define_type("int", BaseType(name="int")) self.define_type("int", BaseType(name="int"))
self.define_type("float", BaseType(name="float")) self.define_type("float", BaseType(name="float"))
self.define_type("bool", BaseType(name="bool")) self.define_type("str", BaseType(name="str"))
self.define_operation( self.define_operation(
left=self.get_type("int"), left=self.get_type("int"),
operator="__add__", operator="__add__",