pub struct RepeatCounterId(pub u32);Expand description
R-run Task 8 (PR-045/PR-006): a repeat(N) body; loop’s compiler-
synthesized iteration counter, minted once per RepeatLoop statement
[CfgBuilder::walk_repeat_loop] decomposes into a real CFG shape (i.e.
only when body contains a suspend point somewhere in its own subtree –
the suspend-free case stays the pre-existing opaque leaf stmt_shared:: lower_repeat_loop already handles unchanged, see walk_stmt’s own
dispatch comment). Unlike a for loop’s user-visible control variable
(a real sv_lang::Symbol, FrameSlotSource::DeclaredVar), repeat’s
count has no corresponding declared local at all – there is nothing a
Branch’s cond: Expression could re-evaluate every iteration the way
while/for do. This id is this crate’s own, sv_lang-free handle for
that counter’s eventual FrameSlotSource::SyntheticCounter frame slot
(process::liveness) – dense per-ProcessCfg, assigned in allocation
order (mirrors BlockId/SegId’s own numbering discipline), never
reused across two distinct repeat statements in the same process (so a
nested or sibling repeat gets its own, independent counter slot).
Tuple Fields§
§0: u32Trait Implementations§
Source§impl Clone for RepeatCounterId
impl Clone for RepeatCounterId
impl Copy for RepeatCounterId
Source§impl Debug for RepeatCounterId
impl Debug for RepeatCounterId
impl Eq for RepeatCounterId
Source§impl Hash for RepeatCounterId
impl Hash for RepeatCounterId
Source§impl PartialEq for RepeatCounterId
impl PartialEq for RepeatCounterId
impl StructuralPartialEq for RepeatCounterId
Auto Trait Implementations§
impl Freeze for RepeatCounterId
impl RefUnwindSafe for RepeatCounterId
impl Send for RepeatCounterId
impl Sync for RepeatCounterId
impl Unpin for RepeatCounterId
impl UnsafeUnpin for RepeatCounterId
impl UnwindSafe for RepeatCounterId
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.