Documentation

Miri.TreeBorrows.RetagPipeline

Source-ordered tb_retag_ptr_value / tb_retag_place / tb_reborrow core. Rustc type/layout queries, pointer validation/resolution, diagnostics, and data race operations are explicit hook results. The live allocation's actual BorrowTree is stored in MemoryState extra data and updated through the source allocation API. This module does not claim the interpreter hooks are implemented.

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

        The source tb_retag_ptr_value type dispatch. Raw pointers and boxes with custom allocators return before place conversion; only reference types and global boxes construct a NewPermission and call tb_retag_place.

        Instances For
          Equations
          • One or more equations did not get rendered due to their size.
          Instances For

            Predicates supplied by rustc for the source type match. Although Rust's type constructors are disjoint, isGlobalBox is a separate predicate and is tested before TyKind, exactly as in tb_retag_ptr_value. Keeping the predicates explicit lets the Lean caller preserve that guard priority.

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

                                  Inputs supplied by the rustc/Miri layer around tb_reborrow. A failed hook is kept at the point where the pinned source calls it. freezeVisitor is consulted only when precise interior mutability is enabled; dataRace is none when the allocation has no vector-clock model.

                                  Instances For
                                    Instances For
                                      def Miri.TreeBorrows.RetagPipeline.retagPointerValue {MachineKind : Type} [DecidableEq MachineKind] (state : MachineState MachineKind) (request : Request) :
                                      Result MachineKind

                                      Source tb_retag_ptr_value followed by tb_retag_place and the allocation-local portion of tb_reborrow. Policy selection precedes place conversion; the dynamic-size query precedes new_ptr; pointer validation follows tag allocation. Hook failures return the state accumulated up to that source point, including installed protectors and earlier parent accesses.

                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Instances For