return None;
}
}
+ Addr::Char(c) => (clause_name!(c.to_string(), self.atom_tbl), 0),
Addr::Con(h) => match &self.heap[h] {
HeapCellValue::Atom(ref name, _) => (name.clone(), 0),
_ => {
self.throw_exception(instantiation_error);
return None;
}
- _ => {
+ addr => {
let stub = MachineError::functor_stub(clause_name!("call"), arity + 1);
let type_error = self.error_form(
MachineError::type_error(self.heap.h(), ValidType::Callable, addr),
unreachable!()
}
}
+ Addr::Char(c) => {
+ return self.module_lookup(
+ indices,
+ call_policy,
+ (clause_name!(c.to_string(), self.atom_tbl), narity),
+ module_name,
+ true,
+ current_input_stream,
+ current_output_stream,
+ );
+ }
addr => {
let stub = MachineError::functor_stub(clause_name!("(:)"), 2);