Documentation

Miri.Interpreter.Cast

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.

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
        structure Miri.Interpreter.CastHooks (P S C V : Type) :
        Instances For
          def Miri.Interpreter.Cast.intLikeValue {P S C V : Type} [Memory.PointerProvenance P] (h : CastHooks P S C V) (choice : C) (scalar : Memory.Scalar P) (source : ABI.TyAndLayout MIR.TyId) :

          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
            def Miri.Interpreter.Cast.castFromIntLike {P S C V : Type} [Memory.PointerProvenance P] (h : CastHooks P S C V) (choice : C) (scalar : Memory.Scalar P) (source target : ABI.TyAndLayout MIR.TyId) :
            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              def Miri.Interpreter.Cast.ptrToPtr {P S C V : Type} [Memory.PointerProvenance P] (h : CastHooks P S C V) (choice : C) (source : RvalueImmTy P) (target : ABI.TyAndLayout MIR.TyId) :
              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
                    def Miri.Interpreter.Cast.unsizeIntoPointer {P S C V : Type} [Memory.PointerProvenance P] (h : CastHooks P S C V) (choice : C) (source : OpTy P) (dest : V) (sourceTy targetTy : MIR.TyId) :

                    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
                      def Miri.Interpreter.Cast.unsizeInto {P S C V : Type} [Memory.PointerProvenance P] (h : CastHooks P S C V) (choice : C) (fuel : Nat) (source : OpTy P) (target : ABI.TyAndLayout MIR.TyId) (dest : V) :

                      Recursive source aggregate unsizing. Earlier field copies stay committed when a later field fails, including the second-changing-field invariant.

                      Equations
                      Instances For
                        def Miri.Interpreter.Cast.cast {P S C V : Type} [Memory.PointerProvenance P] (h : CastHooks P S C V) (choice : C) (fuel : Nat) (source : OpTy P) (kind : MIR.CastKind) (castTy : MIR.TyId) (dest : V) :

                        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.
                        Instances For