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:
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()

View File

@@ -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__",