protect imported predicates from being overwritten (re: issue #28)

This commit is contained in:
Mark Thom
2018-04-23 15:55:53 -06:00
parent b87d599b14
commit a891b9327c
2 changed files with 3 additions and 5 deletions

View File

@@ -190,12 +190,10 @@ impl Machine {
-> EvalSession
{
match self.code_dir.get(&(name.clone(), arity)) {
Some(&CodeIndex (ref idx)) =>
if idx.borrow().1 == clause_name!("builtin") {
Some(&CodeIndex (ref idx)) if idx.borrow().1 != clause_name!("user") =>
return EvalSession::from(EvalError::ImpermissibleEntry(format!("{}/{}",
name,
arity)))
},
arity))),
_ => {}
};