allow characters as atoms in Machine::use_module and Machine::use_qualified_module
This commit is contained in:
@@ -632,8 +632,12 @@ impl Machine {
|
|||||||
let addr = self.machine_st.store(self.machine_st.deref(module_spec));
|
let addr = self.machine_st.store(self.machine_st.deref(module_spec));
|
||||||
|
|
||||||
match self.machine_st.heap.index_addr(&addr).as_ref() {
|
match self.machine_st.heap.index_addr(&addr).as_ref() {
|
||||||
HeapCellValue::Atom(name, _) => name.clone(),
|
HeapCellValue::Atom(name, _) =>
|
||||||
_ => unreachable!(),
|
name.clone(),
|
||||||
|
HeapCellValue::Addr(Addr::Char(c)) =>
|
||||||
|
clause_name!(c.to_string(), self.indices.atom_tbl),
|
||||||
|
_ =>
|
||||||
|
unreachable!(),
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -679,8 +683,12 @@ impl Machine {
|
|||||||
let addr = self.machine_st.store(self.machine_st.deref(module_spec));
|
let addr = self.machine_st.store(self.machine_st.deref(module_spec));
|
||||||
|
|
||||||
match self.machine_st.heap.index_addr(&addr).as_ref() {
|
match self.machine_st.heap.index_addr(&addr).as_ref() {
|
||||||
HeapCellValue::Atom(name, _) => name.clone(),
|
HeapCellValue::Atom(name, _) =>
|
||||||
_ => unreachable!(),
|
name.clone(),
|
||||||
|
HeapCellValue::Addr(Addr::Char(c)) =>
|
||||||
|
clause_name!(c.to_string(), self.indices.atom_tbl),
|
||||||
|
_ =>
|
||||||
|
unreachable!(),
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user