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]] [[package]]
name = "prolog_parser" name = "prolog_parser"
version = "0.8.59" version = "0.8.60"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "029a4682cf40923b8eb05c4b943d1d6be73775e7bf80bcb0866b5ef29abb0802"
dependencies = [ dependencies = [
"lexical", "lexical",
"num-rug-adapter", "num-rug-adapter",

View File

@@ -32,7 +32,7 @@ libc = "0.2.62"
nix = "0.15.0" nix = "0.15.0"
num-rug-adapter = { optional = true, version = "0.1.3" } num-rug-adapter = { optional = true, version = "0.1.3" }
ordered-float = "0.5.0" 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" ref_thread_local = "0.0.0"
rug = { version = "1.4.0", optional = true } rug = { version = "1.4.0", optional = true }
rustyline = "6.0.0" rustyline = "6.0.0"

View File

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