]> Repositorios git - scryer-prolog.git/commitdiff
metacall always hashes in user (re: issue #27)
authorMark Thom <[email protected]>
Thu, 19 Apr 2018 01:32:58 +0000 (19:32 -0600)
committerMark Thom <[email protected]>
Thu, 19 Apr 2018 01:32:58 +0000 (19:32 -0600)
src/prolog/machine/machine_state.rs

index 81cff9c9dbc662a444672b9a5064e7c3409e5d5c..a88aa65fd187ced0b3990b849dbe48d2a7d6d9b1 100644 (file)
@@ -28,11 +28,12 @@ impl<'a> CodeDirs<'a> {
     {
         match in_mod.as_str() {
             "user" | "builtin" => self.code_dir.get(&(name, arity)).cloned(),
-            _ => match self.modules.get(&in_mod) {
-                Some(&Module { ref code_dir, .. }) =>
-                    code_dir.get(&(name, arity)).cloned().map(CodeIndex::from),
-                None => None
-            }
+            _ =>
+                match self.modules.get(&in_mod) {
+                    Some(&Module { ref code_dir, .. }) =>
+                        code_dir.get(&(name, arity)).cloned().map(CodeIndex::from),
+                    None => None
+                }
         }
     }
 }
@@ -426,8 +427,7 @@ pub(crate) trait CallPolicy: Any {
             },
             &ClauseType::CallN =>
                 if let Some((name, arity)) = machine_st.setup_call_n(arity) {
-                    if let Some(idx) = code_dirs.get(name.clone(), arity, machine_st.p.module_name())
-                    {
+                    if let Some(idx) = code_dirs.get(name.clone(), arity, clause_name!("user")) {
                         self.context_call(machine_st, name, arity, idx, lco)
                     } else {
                         Err(predicate_existence_error(name, arity, machine_st.heap.h))