Whole-state stack lifecycle for real calls. Unlike the generic StackEffect adapter, local-storage hooks operate on the actual current frame, retaining FrameExtra clock mutations and exact StepError classifications.
- compiler : FrameMetadata.CompilerHooks K User
- storage : MachineHooks.StorageHooks K User
- freshLocalsIdentity : MachineHooks.MachineState K User → MachineHooks.MachineState K User × LocalsIdentity
Ghost label for the actual new locals buffer; no guessed zero token.
- preambleSpan : LoadedBody → MachineHooks.M K User MIR.SpanRef
tcx.def_span(body.source.def_id()), not the caller's location.
- requiredConstants : LoadedBody → MachineHooks.M K User Unit
Instantiate/normalize/evaluate every required_const in source order.
- afterPop : C → Frame Memory.Provenance LocalLayout MachineHooks.FrameExtra → Bool → MachineHooks.M K User ReturnAction
Instances For
Source push_stack_frame_raw. Initialization fails before insertion; required-constant failure retains the inserted frame and untouched cache.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Source mir/syntax.rs StorageLive contract and Body::vars_and_temps_iter: only variables/temporaries with no StorageLive or StorageDead anywhere in the body are implicitly live. Argument and return slots are excluded here.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Source push_stack_frame_done with actual local clocks retained after each storage-live event, including failure prefixes.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Source cleanup_stack_frame; detached locals/varargs retain allocation identity and deallocate in source order. NoCleanup skips the machine hook.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Bind the machine after_stack_pop implementation, including real caught unwind payload/call transitions, instead of an external success hook.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Compiler/ABI/foreign dispatch stays in base; all frame, place, storage and retag actions below are actual canonical machine actions. Miri does not override rustc Machine::after_stack_frame_init, whose pinned implementation returns ().
Equations
- One or more equations did not get rendered due to their size.
Instances For
Return and unwind terminators use the same raw-pop and detached cleanup pipeline as calls/tail calls, with actual typed return copying.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Threaded factory uses the actual process-wide locals-buffer identity supply and synchronizes every success/error prefix with saved per-thread real stacks.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Threaded return/unwind factory keeps the registry coherent on every protector-release, deallocation and catch-unwind failure prefix.
Equations
- One or more equations did not get rendered due to their size.