more imported function fixes

This commit is contained in:
Folkert 2020-12-14 02:08:40 +01:00
parent 5e29ee1576
commit 6704208fc7

View file

@ -571,6 +571,12 @@ impl<'a> Procs<'a> {
return;
}
// If this is an imported symbol, let its home module make this specialization
if env.is_imported_symbol(name) {
add_needed_external(self, env, fn_var, name);
return;
}
// We're done with that tuple, so move layout back out to avoid cloning it.
let (name, layout) = tuple;
@ -589,7 +595,7 @@ impl<'a> Procs<'a> {
// TODO should pending_procs hold a Rc<Proc>?
let partial_proc = match self.partial_procs.get(&symbol) {
Some(p) => p.clone(),
None => panic!("no partial_proc for {:?}", symbol),
None => panic!("no partial_proc for {:?} in module {:?}", symbol, env.home),
};
// Mark this proc as in-progress, so if we're dealing with
@ -4831,8 +4837,6 @@ fn reuse_function_symbol<'a>(
.from_var(env.arena, arg_var, env.subs)
.expect("creating layout does not fail");
add_needed_external(procs, env, arg_var, original);
procs.insert_passed_by_name(
env,
arg_var,