diff options
| author | Bruce Hill <bruce@bruce-hill.com> | 2025-05-25 14:47:30 -0400 |
|---|---|---|
| committer | Bruce Hill <bruce@bruce-hill.com> | 2025-05-25 14:47:30 -0400 |
| commit | c48f08ed0ee6f7054084e366cfa5fad2a51bac53 (patch) | |
| tree | 7eedebe60cfdfc1c9b4896d7a2d78ab577e15a59 | |
| parent | 6d15697edce2217a2bbc82def26262d18dac6373 (diff) | |
Add a check to ensure that Extend is extending a recognized type.
| -rw-r--r-- | src/compile.c | 5 |
1 files changed, 4 insertions, 1 deletions
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); |
