fn follow(&mut self) -> Option<HeapCellValue> {
while let Some(value) = self.iter_stack.pop() {
if value.get_mark_bit() == self.mark_phase {
+ if value.is_var() {
+ let h = value.get_value() as usize;
+
+ if self.heap[h].is_var() && self.heap[h].get_value() as usize == h {
+ return Some(unmark_cell_bits!(value));
+ }
+ }
+
continue;
}
Vars = [C]
)).
+test("term_variables#2097", (
+ termt(T), term_variables(T,Vs),
+ T = [[[A|B]|A]|A], Vs == [A,B]
+)).
+
+termt(T) :-
+ T = [T1|T2],
+ T1 = [T3|A],
+ T3 = [A|_],
+ T2 = A.
+
main :-
findall(test(Name, Goal), test(Name, Goal), Tests),
run_tests(Tests, Failed),