]> Repositorios git - scryer-prolog.git/commitdiff
generalize simple goal detection to fix call/N test failures in logtalk test suite
authorMark <[email protected]>
Sun, 16 Jul 2023 01:29:06 +0000 (19:29 -0600)
committerMark <[email protected]>
Sun, 16 Jul 2023 01:29:06 +0000 (19:29 -0600)
src/machine/system_calls.rs

index 35e019ffd1bd14e115bab0c30668b24ae39dd31f..926557d76f237e9dff0a2e2a28a7f8b14de8481e 100644 (file)
@@ -1433,10 +1433,15 @@ impl Machine {
                     post_supp_args
                         .zip(supp_vars.iter())
                         .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 arg_term.is_var() && supp_var.is_var() {
-                                return arg_term == *supp_var;
+                            if module_loc.is_var() || module_loc == atom_as_cell!(atom!("user")) {
+                                if arg_term.is_var() && supp_var.is_var() {
+                                    return arg_term == *supp_var;
+                                }
                             }
 
                             false