recognize empty lists as partial strings (#328)

This commit is contained in:
Mark Thom
2020-04-11 23:08:15 -06:00
parent 4f0adad78e
commit 97d8d07947

View File

@@ -1196,7 +1196,21 @@ impl MachineState {
} }
} }
&SystemClauseType::IsPartialString => { &SystemClauseType::IsPartialString => {
let mut heap_pstr_iter = self.heap_pstr_iter(self[temp_v!(1)]); let addr = self.store(self.deref(self[temp_v!(1)]));
match addr {
Addr::EmptyList => {
return return_from_clause!(self.last_call, self);
}
Addr::AttrVar(_) | Addr::HeapCell(_) | Addr::StackCell(..) => {
self.fail = true;
return Ok(());
}
_ => {
}
}
let mut heap_pstr_iter = self.heap_pstr_iter(addr);
while let Some(_) = heap_pstr_iter.next() {} while let Some(_) = heap_pstr_iter.next() {}