diff options
| -rw-r--r-- | environment.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/environment.c b/environment.c index 1f8d5745..06e1a032 100644 --- a/environment.c +++ b/environment.c @@ -171,13 +171,14 @@ env_t *new_compilation_unit(void) } for (size_t i = 0; i < sizeof(global_types)/sizeof(global_types[0]); i++) { - table_t *namespace = new(table_t); + table_t *namespace = new(table_t, .fallback=env->globals); + Table_str_set(env->type_namespaces, global_types[i].name, namespace); + env_t *ns_env = namespace_env(env, global_types[i].name); $ARRAY_FOREACH(global_types[i].namespace, j, ns_entry_t, entry, { - type_t *type = parse_type_string(env, entry.type_str); + type_t *type = parse_type_string(ns_env, entry.type_str); binding_t *b = new(binding_t, .code=entry.code, .type=type); Table_str_set(namespace, entry.name, b); }, {}) - Table_str_set(env->type_namespaces, global_types[i].name, namespace); } return env; |
