From fba2b99b65d5023675a3f270adbc87ef0b0ede8f Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Thu, 23 May 2024 12:40:21 -0400 Subject: Support 'while when' --- typecheck.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'typecheck.c') diff --git a/typecheck.c b/typecheck.c index 217937ed..9964c9d9 100644 --- a/typecheck.c +++ b/typecheck.c @@ -948,7 +948,9 @@ type_t *get_type(env_t *env, ast_t *ast) break; } } - if (!any_unhandled) + // HACK: `while when ...` is handled by the parser adding an implicit + // `else: stop`, which has an empty source code span. + if (!any_unhandled && when->else_body->end > when->else_body->start) code_err(when->else_body, "This 'else' block will never run because every tag is handled"); type_t *else_t = get_type(env, when->else_body); -- cgit v1.2.3