Skip to main content

jit_print_iterator

Function jit_print_iterator 

Source
#[unsafe(no_mangle)]
pub extern "C" fn jit_print_iterator( ctx_ptr: *const JITContext, bits: u64, )
Expand description

Print an Arc<IteratorState>-shaped slot as the opaque tag <iterator> (lazy iterators have no user-facing print form; a terminal operation must materialize the values per printing.rs:430-439). Dispatched when the operand kind is proven NativeKind::Ptr(HeapKind::Iterator).

Mirrors jit_print_mutex — delegates to the canonical VM-side ValueFormatter::format_kinded. Note: per inventory §E.5 the Iterator HeapKind belongs to the Collection family (NOT the pure-discriminator family per ADR-006 §2.7.16 / Q17 W13-iterator-state) — HeapValue::Iterator(Arc<IteratorState>) participates in the §2.3 typed-Arc payload pattern, the dispatch arm in format_heap_kind at printing.rs:430 reads the bits as *const IteratorState and the Display rendering is the opaque tag.

SAFETY: bits must be Arc::into_raw(Arc<IteratorState>) as u64 per the producer-site contract on every KindedSlot::from_iterator-shaped producer (VM-side iterator-pipeline factory builtins). ADR-006 §2.7.5.B 2026-05-16