Allocation and borrow identities from the pinned rustc/Miri sources.
AllocId is a nonzero u64 (mir/interpret/mod.rs); BorTag is a distinct
nonzero u64 (borrow_tracker/mod.rs). No address or validity is inferred from
either identity. Allocation liveness belongs to the allocation state.
@[instance_reducible]
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
@[instance_reducible]
Equations
- Miri.Memory.instReprAllocId = { reprPrec := Miri.Memory.instReprAllocId.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[instance_reducible]
Equations
- Miri.Memory.instReprBorTag = { reprPrec := Miri.Memory.instReprBorTag.repr }
Equations
- Miri.Memory.BorTag.one = { value := 1, nonzero := Miri.Memory.BorTag.one._proof_1 }
Instances For
@[instance_reducible]
Equations
- Miri.Memory.BorTag.instInhabited = { default := Miri.Memory.BorTag.one }
Pinned Miri machine::Provenance. Wildcard is distinct from no provenance.
- concrete (allocId : AllocId) (tag : BorTag) : Provenance
- wildcard : Provenance
Instances For
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
- Miri.Memory.instDecidableEqProvenance.decEq (Miri.Memory.Provenance.concrete allocId tag) Miri.Memory.Provenance.wildcard = isFalse ⋯
- Miri.Memory.instDecidableEqProvenance.decEq Miri.Memory.Provenance.wildcard (Miri.Memory.Provenance.concrete allocId tag) = isFalse ⋯
- Miri.Memory.instDecidableEqProvenance.decEq Miri.Memory.Provenance.wildcard Miri.Memory.Provenance.wildcard = isTrue ⋯
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[instance_reducible]
Equations
Equations
Instances For
Equations
Instances For
The semantic members of rustc's interpret::Provenance trait. The
formatting callback is diagnostic-only. Implementations are fixed by the
library for each concrete engine provenance type.
Instances
@[instance_reducible]
Equations
- Miri.Memory.instPointerProvenanceProvenance = { offsetIsAddr := true, wildcard := some Miri.Memory.Provenance.wildcard, getAllocId := Miri.Memory.Provenance.getAllocId }
@[instance_reducible]
The extra information from Miri's machine::ProvenanceExtra.
- concrete (tag : BorTag) : ProvenanceExtra
- wildcard : ProvenanceExtra
Instances For
@[instance_reducible]
Equations
- Miri.Memory.instDecidableEqProvenanceExtra.decEq (Miri.Memory.ProvenanceExtra.concrete a) (Miri.Memory.ProvenanceExtra.concrete b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- Miri.Memory.instDecidableEqProvenanceExtra.decEq (Miri.Memory.ProvenanceExtra.concrete tag) Miri.Memory.ProvenanceExtra.wildcard = isFalse ⋯
- Miri.Memory.instDecidableEqProvenanceExtra.decEq Miri.Memory.ProvenanceExtra.wildcard (Miri.Memory.ProvenanceExtra.concrete tag) = isFalse ⋯
- Miri.Memory.instDecidableEqProvenanceExtra.decEq Miri.Memory.ProvenanceExtra.wildcard Miri.Memory.ProvenanceExtra.wildcard = isTrue ⋯
Instances For
@[instance_reducible]
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Miri.Memory.ProvenanceExtra.andThen
{α : Type u_1}
(extra : ProvenanceExtra)
(f : BorTag → Option α)
:
Option α