Documentation

Miri.Input.CompilerFrameContext

Canonical stack.rs frame/local/instruction queries. The body index is the identity key; body contents only check consistency. Local layouts consume exact full-instance body-normalization evidence, never template type substitution.

Resolve by canonical identity and validate the complete instance/body pair. Structural equality is an assertion, not a body-selection algorithm.

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

        The recorded normalization ran rustc's instantiate-MIR-and-normalize query with this exact full instance and body's typing environment.

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

          Source step.rs Cast target normalization at the exact current statement. The requested original type must be the actual Cast target. No type-ID-only substitution table is shared across distinct full instantiations.

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

            The uncached compiler leaf used by the canonical local-layout cache.

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

              Complete source layout_of_local for the actual current frame: a cached layout bypasses normalization; debug compatibility runs before cache mutation.

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

                The passed body is checked against the current identity, never searched.

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

                  Return the actual existing MIR node; no second executable instruction IR.

                  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 InterpCx::cur_span retains the actual enclosing compiler span for an empty stack. The caller supplies that source context; no dummy is invented.

                        Equations
                        Instances For

                          Remaining capabilities after source-owned local layout/span queries are removed. These concern typed operations, validation and compiler predicates.

                          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

                                Only TLS resolution remains a capability of the rvalue leaf record.

                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For
                                  def Miri.Input.CompilerFrameContext.executionHooks {K User C Other Extern Host : Type} (p : CompilerProviders.Prepared) (base : Interpreter.ExecutionMachine.Config K User C Other Extern Host) :
                                  Interpreter.ExecutionMachine.Config K User C Other Extern Host

                                  Close canonical frame access and local compiler leaves in the same config. The existing operational dictionaries retain physical/validation capabilities.

                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For
                                    theorem Miri.Input.CompilerFrameContext.localSpan_known {K U : Type} (p : CompilerProviders.Prepared) (body : Interpreter.LoadedBody) (actual : LoweredBody) (fnInstance : Interpreter.CallInstance) (decl : LocalDecl) (span : MIR.SpanRef) (row : p.program.bundle.bodies[body.identity.index]? = some actual) (contents : actual.body = body.body) (loader : CallResolution.loadedBodyOfInstance p.lifecycle.calls.calls fnInstance = Except.ok body) (declaration : actual.input.locals[0]? = some decl) (indexed : List.idxOf? decl.sourceInfo.span p.program.bundle.spans.toList = some span.id) (frames : Array ActualFrame) (frame : ActualFrame) (machine : Interpreter.MachineHooks.MachineState K U) (identity : frame.bodyIdentity = body.identity) (function : frame.functionInstance = fnInstance) (frameBody : frame.body = body.body) :
                                    localSpan p body.body 0 { stack := { frames := frames.push frame }, machine := machine } = EStateM.Result.ok span { stack := { frames := frames.push frame }, machine := machine }