generalize simple goal detection to fix call/N test failures in logtalk test suite

This commit is contained in:
Mark
2023-07-15 19:29:06 -06:00
parent 5a7da721cd
commit 65a8ce8e22

View File

@@ -1433,11 +1433,16 @@ impl Machine {
post_supp_args post_supp_args
.zip(supp_vars.iter()) .zip(supp_vars.iter())
.all(|(arg_term, supp_var)| { .all(|(arg_term, supp_var)| {
let arg_term = self.machine_st.store(self.machine_st.deref(arg_term)); let (module_loc, arg_term) = self.machine_st.strip_module(
arg_term,
heap_loc_as_cell!(0),
);
if module_loc.is_var() || module_loc == atom_as_cell!(atom!("user")) {
if arg_term.is_var() && supp_var.is_var() { if arg_term.is_var() && supp_var.is_var() {
return arg_term == *supp_var; return arg_term == *supp_var;
} }
}
false false
}) && expanded_vars.intersection(&supp_vars).next().is_none() }) && expanded_vars.intersection(&supp_vars).next().is_none()