@@ -1193,7 +1193,7 @@ impl<'a, Outputter: HCValueOutputter> HCPrinter<'a, Outputter> {
|
|||||||
self.state_stack.push(TokenOrRedirect::Atom(atom!("...")));
|
self.state_stack.push(TokenOrRedirect::Atom(atom!("...")));
|
||||||
self.state_stack.push(TokenOrRedirect::HeadTailSeparator);
|
self.state_stack.push(TokenOrRedirect::HeadTailSeparator);
|
||||||
} else if end_cell != empty_list_as_cell!() {
|
} else if end_cell != empty_list_as_cell!() {
|
||||||
if value.get_tag() != HeapCellValueTag::CStr {
|
if end_h != h+1 && value.get_tag() != HeapCellValueTag::CStr {
|
||||||
self.iter.pop_stack();
|
self.iter.pop_stack();
|
||||||
self.iter.push_stack(h+1);
|
self.iter.push_stack(h+1);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -792,7 +792,7 @@ impl MachineState {
|
|||||||
let err = self.instantiation_error();
|
let err = self.instantiation_error();
|
||||||
return Err(self.error_form(err, stub_gen()))
|
return Err(self.error_form(err, stub_gen()))
|
||||||
}
|
}
|
||||||
CycleSearchResult::NotList(..) => {
|
CycleSearchResult::NotList(..) | CycleSearchResult::Cyclic(_) => {
|
||||||
let err = self.type_error(ValidType::List, list);
|
let err = self.type_error(ValidType::List, list);
|
||||||
return Err(self.error_form(err, stub_gen()));
|
return Err(self.error_form(err, stub_gen()));
|
||||||
}
|
}
|
||||||
@@ -800,7 +800,7 @@ impl MachineState {
|
|||||||
};
|
};
|
||||||
|
|
||||||
match BrentAlgState::detect_cycles(&self.heap, sorted) {
|
match BrentAlgState::detect_cycles(&self.heap, sorted) {
|
||||||
CycleSearchResult::NotList(..) if !sorted.is_var() => {
|
CycleSearchResult::NotList(..) | CycleSearchResult::Cyclic(_) if !sorted.is_var() => {
|
||||||
let err = self.type_error(ValidType::List, sorted);
|
let err = self.type_error(ValidType::List, sorted);
|
||||||
Err(self.error_form(err, stub_gen()))
|
Err(self.error_form(err, stub_gen()))
|
||||||
}
|
}
|
||||||
@@ -812,7 +812,7 @@ impl MachineState {
|
|||||||
let stub_gen = || functor_stub(atom!("keysort"), 2);
|
let stub_gen = || functor_stub(atom!("keysort"), 2);
|
||||||
|
|
||||||
match BrentAlgState::detect_cycles(&self.heap, list) {
|
match BrentAlgState::detect_cycles(&self.heap, list) {
|
||||||
CycleSearchResult::NotList(..) if !list.is_var() => {
|
CycleSearchResult::NotList(..) | CycleSearchResult::Cyclic(_) if !list.is_var() => {
|
||||||
let err = self.type_error(ValidType::List, list);
|
let err = self.type_error(ValidType::List, list);
|
||||||
Err(self.error_form(err, stub_gen()))
|
Err(self.error_form(err, stub_gen()))
|
||||||
}
|
}
|
||||||
@@ -878,7 +878,7 @@ impl MachineState {
|
|||||||
let err = self.instantiation_error();
|
let err = self.instantiation_error();
|
||||||
Err(self.error_form(err, stub_gen()))
|
Err(self.error_form(err, stub_gen()))
|
||||||
}
|
}
|
||||||
CycleSearchResult::NotList(..) => {
|
CycleSearchResult::NotList(..) | CycleSearchResult::Cyclic(_) => {
|
||||||
let err = self.type_error(ValidType::List, pairs);
|
let err = self.type_error(ValidType::List, pairs);
|
||||||
Err(self.error_form(err, stub_gen()))
|
Err(self.error_form(err, stub_gen()))
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user