Runtime symbolic-vtable rules from pinned interpret/traits.rs and
memory.rs. The selected tree has no interpret/vtable.rs. Global allocation
identity, compiler predicates and function ABI checking are required leaves.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
- danglingInteger : VTablePointerError
- other (error : StepError) : VTablePointerError
Instances For
Equations
- One or more equations did not get rendered due to their size.
- Miri.Interpreter.instDecidableEqVTablePointerError.decEq Miri.Interpreter.VTablePointerError.danglingInteger Miri.Interpreter.VTablePointerError.danglingInteger = isTrue ⋯
- Miri.Interpreter.instDecidableEqVTablePointerError.decEq Miri.Interpreter.VTablePointerError.danglingInteger (Miri.Interpreter.VTablePointerError.other error) = isFalse ⋯
- Miri.Interpreter.instDecidableEqVTablePointerError.decEq (Miri.Interpreter.VTablePointerError.other error) Miri.Interpreter.VTablePointerError.danglingInteger = isFalse ⋯
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
- dropInPlace {F : Type} : VTableEntry F
- size {F : Type} : VTableEntry F
- align {F : Type} : VTableEntry F
- vacant {F : Type} : VTableEntry F
- method {F : Type} (function : F) : VTableEntry F
- traitVPtr {F : Type} (traitRef : Nat) : VTableEntry F
Instances For
- target : Miri.ABI.TargetDataLayout
- memoryOffset : C → MemPlace P → Miri.ABI.Size → OffsetMode → MemPlaceMeta P → RvalueM S (MemPlace P)
- resolvePointer : C → Memory.Pointer (Option P) → RvalueM S (Except VTablePointerError (Memory.AllocId × Miri.ABI.Size))
- globalFunction : C → Memory.AllocId → RvalueM S (Option F)
- predicates : C → Nat → RvalueM S (Array VTablePredicate)
- normalizePredicate : C → VTablePredicate → RvalueM S Nat
- layoutOf : C → MIR.TyId → RvalueM S (Miri.ABI.TyAndLayout MIR.TyId)
- reserveVTable : C → MIR.TyId → Nat → Nat → RvalueM S Memory.AllocId
- globalRootPointer : C → Memory.AllocId → RvalueM S (Memory.Pointer (Option P))
Instances For
Source symbolic reads separated from reservation and virtual calls, so machine-level dynamic layout needs no placeholder operational dictionary.
- resolvePointer : C → Memory.Pointer (Option P) → RvalueM S (Except VTablePointerError (Memory.AllocId × ABI.Size))
- predicates : C → Nat → RvalueM S (Array VTablePredicate)
- normalizePredicate : C → VTablePredicate → RvalueM S Nat
- layoutOf : C → MIR.TyId → RvalueM S (ABI.TyAndLayout MIR.TyId)
Instances For
Equations
- h.readHooks = { resolvePointer := h.resolvePointer, globalVTable := h.globalVTable, predicates := h.predicates, normalizePredicate := h.normalizePredicate, layoutOf := h.layoutOf }
Instances For
Source ignores auto traits, sorts by compiler stable comparison, removes identical predicates, then normalizes each paired predicate before equality.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
The interpreter consults the symbolic VTable allocation's type and layout; it does not trust or load the raw size/alignment words of arbitrary memory.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Miri.Interpreter.VTable.checkForType h choice actual expected = Miri.Interpreter.VTable.checkForTypeRead h.readHooks choice actual expected
Instances For
Equations
- Miri.Interpreter.VTable.getPtrVTableType h choice ptr expectedTrait = Miri.Interpreter.VTable.getPtrVTableTypeRead h.readHooks choice ptr expectedTrait
Instances For
Equations
- Miri.Interpreter.VTable.getSizeAndAlign h choice ptr expectedTrait = Miri.Interpreter.VTable.getSizeAndAlignRead h.readHooks choice ptr expectedTrait
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
This resolves allocation identity only, as memory.rs::get_ptr_fn does. Calling it requires ABI/type validation at the actual Call pipeline stage.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Explicit checked utility for virtual method resolution. This extra ABI validation is caller-selected; production call.rs validates at frame initialization. Wrong/vacant/header/supertrait entries are UB, never callable functions.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Source unpack_dyn_trait operates only on an indirect dynamic place, then changes its layout at zero wrapping offset while clearing the metadata.
Equations
- One or more equations did not get rendered due to their size.
Instances For
When a consumer actually loads a scalar field, retain the existing typed memory-read pipeline and all access/provenance hooks. Symbolic size/alignment lookup above deliberately does not call this helper.
Equations
- One or more equations did not get rendered due to their size.