Stateful virtual receiver/vtable dispatch, dynamic drop and caller-location selection from pinned interpret/call.rs and eval_context.rs. Complete compiler instances, argument rebasing, type constructors and inline-scope span queries remain required compiler leaves; no ABI or function identity is guessed.
- reference : ReceiverKind
- rawPointer : ReceiverKind
- dynamic : ReceiverKind
- other : ReceiverKind
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
SourceScopeData fields consumed by Body::caller_location_span.
- inlined : Option (CallInstance × MIR.SpanRef)
Instances For
- classifyReceiver : MIR.TyId → CallM S ReceiverKind
- fieldLayout : LocalLayout → Nat → CallM S LocalLayout
- dynamicData : MIR.TyId → CallM S (Option DynamicData)
- layoutOf : MIR.TyId → CallM S LocalLayout
- rebaseVirtualArgs : Array MIR.GenericArg → MIR.DefId → MIR.TyId → CallM S (Array MIR.GenericArg)
from_assoc→erase_self_ty→with_self_ty→args.rebase_onto, all using compiler generic arguments, not an assumed first-argument replacement.
- expectResolveForVTable : C → MIR.DefId → Array MIR.GenericArg → CallM S CallInstance
- resolveDropGlue : MIR.TyId → CallM S CallInstance
- requiresCallerLocation : CallInstance → CallM S Bool
- sourceScope : BodyIdentity → CallInstance → MIR.Body → Nat → CallM S CallerScope
- unitLayout : CallM S LocalLayout
Instances For
- debugAssertions : Bool
- compiler : CompilerHooks S C
- target : ABI.TargetDataLayout
- vtable : VTableHooks P S C CallInstance (ABI.FnAbi MIR.TyId)
- getFrame : CallM S (Frame P LocalLayout E)
- readImmediate : C → OpTy P → CallM S (RvalueImmTy P)
- immPtrToMPlace : C → RvalueImmTy P → CallM S (MPlaceTy P)
Instances For
place.rs imm_ptr_to_mplace: type/deref/layout queries precede scalar extraction; this caches misalignment without checking pointer dereferenceability or dynamic size. An unaligned raw receiver can still resolve a virtual method.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Actual canonical memory reads and existing operand field projection. Compiler/global-vtable/host-alignment leaves remain explicit dictionaries.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Source TyAndLayout::non_1zst_field exits immediately on a second non-1-ZST field; no later field query is executed. It does not project/read field values.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Receiver unwrapping performs ordinary typed immediate reads but never a reference dereference/validity check: raw dyn receivers need not be accessible. The budget is a concrete runner recursion limit, not source semantics.
Equations
- One or more equations did not get rendered due to their size.
- Miri.Interpreter.VirtualCalls.receiverPlace h choice 0 x✝ = throw (Miri.Interpreter.StepError.resourceExhaustion "virtual receiver newtype traversal")
Instances For
Exact full-instance consistency assertion after symbolic Method selection. Compiler rebasing preserves all method-level generic arguments and shim kind.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Source Virtual arm: unwrap receiver, inspect dyn tail, check symbolic vtable, select Method, assert full instance, build thin raw receiver, then patch only the first caller-ABI argument's type. The real callee ABI check occurs in the normal recursive Call pipeline, not eagerly at vtable selection.
Equations
- One or more equations did not get rendered due to their size.
Instances For
rustc_middle Body::caller_location_span walks only inlined-parent scopes, stopping inside the first non-track_caller callee; the incoming argument is a fallback only after the whole inlined chain has been considered.
Equations
- One or more equations did not get rendered due to their size.
Instances For
eval_context.rs caller_location: Call's fn_span replaces only SourceInfo's span; inline-scope-aware compiler handling still receives trackCallerArg.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Concrete dyn drop unpacks the symbolic vtable's type/layout with a wrapping zero offset and clears metadata, retaining the canonical pointer/misalignment.
Equations
- One or more equations did not get rendered due to their size.
Instances For
call.rs constructs an erased-region mutable reference, then mplace_to_imm_ptr converts the place before builtin-deref/layout assertions.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Install actual runtime dispatch and location selection while preserving mandatory normal-call/ABI/body/machine leaves in the base Call dictionary.
Equations
- One or more equations did not get rendered due to their size.