Connected pinned interpret/cast.rs dispatcher and recursive unsizing.
Compiler-owned type descriptions are metadata queries, not a program IR.
Machine provenance, memory access/copy and compiler resolution are explicit
stateful leaves; none is replaced by successful approximation.
- integer (kind : MIR.IntegerKind) : CastTypeInfo
- floating (format : FloatFormat) : CastTypeInfo
- boolean : CastTypeInfo
- character : CastTypeInfo
- rawPointer (pointee : MIR.TyId) : CastTypeInfo
- reference (pointee : MIR.TyId) : CastTypeInfo
- fnPointer : CastTypeInfo
- fnDefinition (definition : MIR.DefId) (args : Array MIR.GenericArg) : CastTypeInfo
- closure (definition : MIR.DefId) (args : Array MIR.GenericArg) (upvarCount : Nat) : CastTypeInfo
- pattern (inner : MIR.TyId) (patternId : Nat) : CastTypeInfo
- adt (definition : MIR.DefId) : CastTypeInfo
- array (element : MIR.TyId) (length : UInt64) : CastTypeInfo
- slice (element : MIR.TyId) : CastTypeInfo
- dynamic (predicates : Nat) : CastTypeInfo
Instances For
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
- target : ABI.TargetDataLayout
- typeInfo : C → MIR.TyId → RvalueM S CastTypeInfo
- layoutOf : C → MIR.TyId → RvalueM S (ABI.TyAndLayout MIR.TyId)
- destLayout : V → ABI.TyAndLayout MIR.TyId
- readImmediate : C → OpTy P → RvalueM S (RvalueImmTy P)
- writePointer : C → Memory.Pointer (Option P) → V → RvalueM S Unit
- enforceValidity : C → ABI.TyAndLayout MIR.TyId → RvalueM S Bool
- enforceValidityRecursively : C → ABI.TyAndLayout MIR.TyId → RvalueM S Bool
- checkFunctionPointer : C → Memory.Pointer (Option P) → RvalueM S Unit
- pointerFromExposedAddress : C → UInt64 → RvalueM S (Memory.Pointer (Option P))
- usizeLayout : C → RvalueM S (ABI.TyAndLayout MIR.TyId)
- floatOps : FloatOpsHooks P S C
- requireNoBoundVars : C → Array MIR.GenericArg → RvalueM S Unit
- resolveFunction : C → MIR.DefId → Array MIR.GenericArg → RvalueM S (Option CallInstance)
- resolveClosureFnOnce : C → MIR.DefId → Array MIR.GenericArg → RvalueM S CallInstance
- functionPointer : C → CallInstance → RvalueM S (Memory.Pointer (Option P))
- boxLayout : C → MIR.TyId → RvalueM S (ABI.TyAndLayout MIR.TyId)
- validateImmediateABI : Immediate P → ABI.LayoutData → Except StepError Unit
- fieldLayout : C → ABI.TyAndLayout MIR.TyId → Nat → RvalueM S (ABI.TyAndLayout MIR.TyId)
- vtablePointer : C → MIR.TyId → Nat → RvalueM S (Memory.Pointer (Option P))
- vtableEntries : C → Option Nat → MIR.TyId → RvalueM S (Array (VTableEntry CallInstance))
Instances For
Source cast_from_int_like's u128 intermediate, after typed validity conversion. Pointer inputs use the existing provenance-aware Scalar conversion; no pointer address approximation or provenance clearing occurs here.
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
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
Equations
- One or more equations did not get rendered due to their size.
Instances For
Source unsize_into_ptr, including dynamic upcast slot/prefix assertions.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Recursive source aggregate unsizing. Earlier field copies stay committed when a later field fails, including the second-changing-field invariant.
Equations
- One or more equations did not get rendered due to their size.
- Miri.Interpreter.Cast.unsizeInto h choice 0 source target dest = throw (Miri.Interpreter.StepError.resourceExhaustion "cast unsizing recursion fuel")
Instances For
Full source cast dispatch. Cast layout resolution precedes source validity, which is skipped exactly for transmute/subtype/box-deref and unsizing.
Equations
- One or more equations did not get rendered due to their size.