From ab55eee556ecbe6a8bd0a4f4cd92e38b021f6841 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Mon, 21 Apr 2025 16:50:40 -0400 Subject: Add `assert` --- src/typecheck.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/typecheck.c') diff --git a/src/typecheck.c b/src/typecheck.c index 7f7cb438..7f901010 100644 --- a/src/typecheck.c +++ b/src/typecheck.c @@ -223,6 +223,10 @@ void prebind_statement(env_t *env, ast_t *statement) prebind_statement(env, Match(statement, DocTest)->expr); break; } + case Assert: { + prebind_statement(env, Match(statement, Assert)->expr); + break; + } case StructDef: { DeclareMatch(def, statement, StructDef); if (get_binding(env, def->name)) @@ -298,6 +302,10 @@ void bind_statement(env_t *env, ast_t *statement) bind_statement(env, Match(statement, DocTest)->expr); break; } + case Assert: { + bind_statement(env, Match(statement, Assert)->expr); + break; + } case Declare: { DeclareMatch(decl, statement, Declare); const char *name = Match(decl->var, Var)->name; @@ -998,7 +1006,7 @@ type_t *get_type(env_t *env, ast_t *ast) case Extern: { return parse_type_ast(env, Match(ast, Extern)->type); } - case Declare: case Assign: case UPDATE_CASES: case DocTest: { + case Declare: case Assign: case UPDATE_CASES: case DocTest: case Assert: { return Type(VoidType); } case Use: { -- cgit v1.2.3