update prolog_parser version, correct atom_chars/2 (#379)

This commit is contained in:
Mark Thom
2020-06-04 23:23:49 -06:00
parent 2a588ff943
commit 72c5908f09
3 changed files with 4 additions and 15 deletions

4
Cargo.lock generated
View File

@@ -634,9 +634,7 @@ dependencies = [
[[package]]
name = "prolog_parser"
version = "0.8.59"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "029a4682cf40923b8eb05c4b943d1d6be73775e7bf80bcb0866b5ef29abb0802"
version = "0.8.60"
dependencies = [
"lexical",
"num-rug-adapter",

View File

@@ -32,7 +32,7 @@ libc = "0.2.62"
nix = "0.15.0"
num-rug-adapter = { optional = true, version = "0.1.3" }
ordered-float = "0.5.0"
prolog_parser = { version = "0.8.59", default-features = false }
prolog_parser = { version = "0.8.60", default-features = false }
ref_thread_local = "0.0.0"
rug = { version = "1.4.0", optional = true }
rustyline = "6.0.0"

View File

@@ -830,19 +830,10 @@ impl MachineState {
}
Addr::Con(h) if self.heap.atom_at(h) => {
if let HeapCellValue::Atom(name, _) = self.heap.clone(h) {
let iter = name.as_str().chars().map(|c| Addr::Char(c));
let list_of_chars = Addr::HeapCell(self.heap.to_list(iter));
let s = self.heap.put_complete_string(name.as_str());
let a2 = self[temp_v!(2)];
match self.store(self.deref(a2)) {
Addr::PStrLocation(..) => {
self.fail = true;
}
a2 => {
self.unify(a2, list_of_chars);
}
}
self.unify(s, a2);
} else {
unreachable!()
}