aboutsummaryrefslogtreecommitdiff
path: root/src/typecheck.c
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2025-09-21 16:54:36 -0400
committerBruce Hill <bruce@bruce-hill.com>2025-09-21 16:54:36 -0400
commit1cec086a6034ad546977cae7aeaf4bb876d21970 (patch)
treecd2889aea7ca830359ba329a3f82b96e706bcdee /src/typecheck.c
parent0ab878ff4f72f7f6f6f64c1fc5d8023cd19fbe82 (diff)
Deprecate `>> x ... = val` form of doctests and rename them to 'debugdoctests-to-debuglog
logs', also add multi-expression support
Diffstat (limited to 'src/typecheck.c')
-rw-r--r--src/typecheck.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/typecheck.c b/src/typecheck.c
index b4798768..308ed259 100644
--- a/src/typecheck.c
+++ b/src/typecheck.c
@@ -263,8 +263,9 @@ static env_t *load_module(env_t *env, ast_t *use_ast) {
void prebind_statement(env_t *env, ast_t *statement) {
switch (statement->tag) {
- case DocTest: {
- prebind_statement(env, Match(statement, DocTest)->expr);
+ case DebugLog: {
+ for (ast_list_t *value = Match(statement, DebugLog)->values; value; value = value->next)
+ prebind_statement(env, value->ast);
break;
}
case Assert: {
@@ -351,8 +352,9 @@ void prebind_statement(env_t *env, ast_t *statement) {
void bind_statement(env_t *env, ast_t *statement) {
switch (statement->tag) {
- case DocTest: {
- bind_statement(env, Match(statement, DocTest)->expr);
+ case DebugLog: {
+ for (ast_list_t *value = Match(statement, DebugLog)->values; value; value = value->next)
+ prebind_statement(env, value->ast);
break;
}
case Assert: {
@@ -1105,7 +1107,7 @@ type_t *get_type(env_t *env, ast_t *ast) {
case Declare:
case Assign:
case UPDATE_CASES:
- case DocTest:
+ case DebugLog:
case Assert: {
return Type(VoidType);
}