aboutsummaryrefslogtreecommitdiff
path: root/typecheck.c
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2024-11-24 16:49:26 -0500
committerBruce Hill <bruce@bruce-hill.com>2024-11-24 16:49:26 -0500
commita38161179b7cfc925b4d16bd042f2b1754dca7fd (patch)
treed51564fdfb514d2f1cea6e89d8f57cec85a92338 /typecheck.c
parent52de4258e9e973f453909176b20bebead2f86dd6 (diff)
Cleaner None-handling
Diffstat (limited to 'typecheck.c')
-rw-r--r--typecheck.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/typecheck.c b/typecheck.c
index 8bb5dc48..a37357d2 100644
--- a/typecheck.c
+++ b/typecheck.c
@@ -998,6 +998,8 @@ type_t *get_type(env_t *env, ast_t *ast)
if (type_eq(rhs_ptr->pointed, lhs_ptr->pointed))
return Type(PointerType, .pointed=lhs_ptr->pointed);
}
+ } else if (rhs_t->tag == OptionalType) {
+ return type_or_type(lhs_t, rhs_t);
}
code_err(ast, "I can't figure out the type of this `or` expression between a %T and a %T", lhs_t, rhs_t);
}