diff --git a/midas/checker/midas.py b/midas/checker/midas.py index f54d6ab..3764c03 100644 --- a/midas/checker/midas.py +++ b/midas/checker/midas.py @@ -105,24 +105,32 @@ class MidasTyper(m.Stmt.Visitor[None], m.Expr.Visitor[None], m.Type.Visitor[Type member.kind == m.MemberKind.METHOD, ) - def visit_predicate_stmt(self, stmt: m.PredicateStmt) -> None: ... + def visit_predicate_stmt(self, stmt: m.PredicateStmt) -> None: + self.reporter.warning(stmt.location, "PredicateStmt not yet supported") - def visit_logical_expr(self, expr: m.LogicalExpr) -> None: ... + def visit_logical_expr(self, expr: m.LogicalExpr) -> None: + self.reporter.warning(expr.location, "LogicalExpr not yet supported") - def visit_binary_expr(self, expr: m.BinaryExpr) -> None: ... + def visit_binary_expr(self, expr: m.BinaryExpr) -> None: + self.reporter.warning(expr.location, "BinaryExpr not yet supported") - def visit_unary_expr(self, expr: m.UnaryExpr) -> None: ... + def visit_unary_expr(self, expr: m.UnaryExpr) -> None: + self.reporter.warning(expr.location, "UnaryExpr not yet supported") - def visit_get_expr(self, expr: m.GetExpr) -> None: ... + def visit_get_expr(self, expr: m.GetExpr) -> None: + self.reporter.warning(expr.location, "GetExpr not yet supported") - def visit_variable_expr(self, expr: m.VariableExpr) -> None: ... + def visit_variable_expr(self, expr: m.VariableExpr) -> None: + self.reporter.warning(expr.location, "VariableExpr not yet supported") def visit_grouping_expr(self, expr: m.GroupingExpr) -> None: return expr.expr.accept(self) - def visit_literal_expr(self, expr: m.LiteralExpr) -> None: ... + def visit_literal_expr(self, expr: m.LiteralExpr) -> None: + self.reporter.warning(expr.location, "LiteralExpr not yet supported") - def visit_wildcard_expr(self, expr: m.WildcardExpr) -> None: ... + def visit_wildcard_expr(self, expr: m.WildcardExpr) -> None: + self.reporter.warning(expr.location, "WildcardExpr not yet supported") def visit_named_type(self, type: m.NamedType) -> Type: name: str = type.name.lexeme diff --git a/midas/checker/python.py b/midas/checker/python.py index 88ecde0..5149bb7 100644 --- a/midas/checker/python.py +++ b/midas/checker/python.py @@ -375,7 +375,9 @@ class PythonTyper( self.reporter.warning(location, f"Unsupported operation {operation}") return UnknownType() - def visit_unary_expr(self, expr: p.UnaryExpr) -> Type: ... + def visit_unary_expr(self, expr: p.UnaryExpr) -> Type: + self.reporter.warning(expr.location, "UnaryExpr not yet supported") + return UnknownType() def visit_call_expr(self, expr: p.CallExpr) -> Type: callee: Type = self.type_of(expr.callee) @@ -494,11 +496,17 @@ class PythonTyper( return self.types.apply_generic(base, [param]) return base - def visit_constraint_type(self, node: p.ConstraintType) -> Type: ... + def visit_constraint_type(self, node: p.ConstraintType) -> Type: + self.reporter.warning(node.location, "ConstraintType not yet supported") + return UnknownType() - def visit_frame_column(self, node: p.FrameColumn) -> Type: ... + def visit_frame_column(self, node: p.FrameColumn) -> Type: + self.reporter.warning(node.location, "FrameColumn not yet supported") + return UnknownType() - def visit_frame_type(self, node: p.FrameType) -> Type: ... + def visit_frame_type(self, node: p.FrameType) -> Type: + self.reporter.warning(node.location, "FrameType not yet supported") + return UnknownType() def map_call_arguments( self, function: Function, call: p.CallExpr