add permission error for attempts at redefining builtins, re: #50
This commit is contained in:
@@ -124,7 +124,14 @@ fn compile_decl(wam: &mut Machine, tl: TopLevel, queue: Vec<TopLevel>) -> EvalSe
|
|||||||
EvalSession::from(ParserError::InvalidModuleDecl),
|
EvalSession::from(ParserError::InvalidModuleDecl),
|
||||||
_ => {
|
_ => {
|
||||||
let name = try_eval_session!(if let Some(name) = tl.name() {
|
let name = try_eval_session!(if let Some(name) = tl.name() {
|
||||||
Ok(name)
|
match ClauseType::from(name.clone(), tl.arity(), None) {
|
||||||
|
ClauseType::Named(..) | ClauseType::Op(..) =>
|
||||||
|
Ok(name),
|
||||||
|
_ => {
|
||||||
|
let err_str = format!("{}/{}", name.as_str(), tl.arity());
|
||||||
|
Err(SessionError::ImpermissibleEntry(err_str))
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
Err(SessionError::NamelessEntry)
|
Err(SessionError::NamelessEntry)
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user