Mark some definitions as global, so as not to capture them.

This commit is contained in:
2020-05-31 00:34:12 -07:00
parent a1d679a59d
commit 08503116ff
6 changed files with 41 additions and 24 deletions

View File

@@ -26,8 +26,8 @@ void definition_defn::find_free(type_mgr& mgr, type_env_ptr& env) {
body->find_free(mgr, var_env, free_variables);
}
void definition_defn::insert_types(type_mgr& mgr) {
env->bind(name, full_type);
void definition_defn::insert_types(type_mgr& mgr, visibility v) {
env->bind(name, full_type, v);
}
void definition_defn::typecheck(type_mgr& mgr) {
@@ -150,7 +150,7 @@ void definition_group::typecheck(type_mgr& mgr) {
auto& group = *it;
for(auto& def_defnn_name : group->members) {
auto& def_defn = defs_defn.find(def_defnn_name)->second;
def_defn->insert_types(mgr);
def_defn->insert_types(mgr, vis);
}
for(auto& def_defnn_name : group->members) {
auto& def_defn = defs_defn.find(def_defnn_name)->second;