correct inlining calling in last call context

This commit is contained in:
Mark Thom
2019-03-02 22:57:07 -07:00
parent e4cb904470
commit 77652d4458
6 changed files with 31 additions and 82 deletions

View File

@@ -747,8 +747,13 @@ pub(crate) trait CallPolicy: Any {
machine_st.setup_built_in_call(built_in.clone());
self.call_builtin(machine_st, &built_in, indices)?;
},
ClauseType::Inlined(inlined) =>
machine_st.execute_inlined(&inlined),
ClauseType::Inlined(inlined) => {
machine_st.execute_inlined(&inlined);
if machine_st.last_call {
machine_st.p = CodePtr::Local(machine_st.cp);
}
},
ClauseType::Op(..) | ClauseType::Named(..) => {
let module = name.owning_module();