loader: &Loader<'a, Self>,
key: PredicateKey,
) -> Result<(), SessionError> {
+ if ClauseType::is_inbuilt(key.0, key.1) {
+ return Err(SessionError::CannotOverwriteBuiltIn(key));
+ }
+
if let Some(builtins) = loader.wam_prelude.indices.modules.get(&atom!("builtins")) {
if builtins.module_decl.exports.contains(&ModuleExport::PredicateKey(key)) {
return Err(SessionError::CannotOverwriteBuiltIn(key));
let (name, arity) = key;
if !ClauseType::is_inbuilt(name, arity) {
- return if let Some(module) = self.modules.get(&(atom!("builtins"))) {
- module.code_dir.contains_key(&(name, arity))
- } else {
- false
- };
+ self.modules.get(&(atom!("builtins")))
+ .map(|module| module.code_dir.contains_key(&(name, arity)))
+ .unwrap_or(false)
} else {
true
}