fix(checker): get literal types from context
This commit is contained in:
@@ -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()
|
||||
|
||||
|
||||
@@ -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__",
|
||||
|
||||
Reference in New Issue
Block a user