return Some(self.heap[h]);
}
(HeapCellValueTag::AttrVar | HeapCellValueTag::PStrLoc | HeapCellValueTag::Var, vh) => {
- self.push_if_unmarked(h);
- self.stack.push(IterStackLoc::iterable_heap_loc(vh));
+ self.push_if_unmarked(vh);
+ self.stack.push(IterStackLoc::mark_heap_loc(vh));
forward_if_referent_marked(&mut self.heap, vh);
}
(HeapCellValueTag::PStrOffset, offset) => {
);
assert_eq!(
unmark_cell_bits!(iter.next().unwrap()),
- list_loc_as_cell!(1)
+ heap_loc_as_cell!(0)
);
assert_eq!(iter.next(), None);
cyclic_link.set_forwarding_bit(true);
cyclic_link.set_mark_bit(true);
- assert_eq!(iter.next().unwrap(), list_loc_as_cell!(1));
+ assert_eq!(
+ unmark_cell_bits!(iter.next().unwrap()),
+ list_loc_as_cell!(1)
+ );
assert_eq!(
unmark_cell_bits!(iter.next().unwrap()),
list_loc_as_cell!(1)
assert_eq!(
unmark_cell_bits!(iter.next().unwrap()),
- str_loc_as_cell!(1)
+ heap_loc_as_cell!(0)
);
assert_eq!(
);
assert_eq!(
unmark_cell_bits!(iter.next().unwrap()),
- list_loc_as_cell!(1)
+ heap_loc_as_cell!(0)
);
assert_eq!(
unmark_cell_bits!(iter.next().unwrap()),
),
( nonvar(Error),
functor(Error, error, 2) ->
- writeq(Error),
- write('.')
- ; writeq(throw(Error)),
- write('.')
- ).
+ writeq(Error)
+ ; writeq(throw(Error))
+ ),
+ write('.').
'$print_message_and_fail'(Error) :-
( ( Error = error(existence_error(procedure, Expansion), Expansion)