From c48f08ed0ee6f7054084e366cfa5fad2a51bac53 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Sun, 25 May 2025 14:47:30 -0400 Subject: Add a check to ensure that Extend is extending a recognized type. --- src/compile.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/compile.c') diff --git a/src/compile.c b/src/compile.c index bd963951..89cb667b 100644 --- a/src/compile.c +++ b/src/compile.c @@ -4383,7 +4383,10 @@ CORD compile_top_level_code(env_t *env, ast_t *ast) } case Extend: { DeclareMatch(extend, ast, Extend); - env_t *ns_env = namespace_env(env, extend->name); + binding_t *b = get_binding(env, extend->name); + if (!b) + code_err(ast, "'", extend->name, "' is not the name of any type I recognize."); + env_t *ns_env = Match(b->type, TypeInfoType)->env; env_t *extended = new(env_t); *extended = *ns_env; extended->locals = new(Table_t, .fallback=env->locals); -- cgit v1.2.3