Internal compiler-metadata bridge, not the public import API. Successful conversion supplies records and queries; it does not establish execution readiness, machine-hook adequacy, or Rust UB freedom. Original source nodes remain available beside every canonical layout result.
- missing (path : String) : RuntimeMetadataError
- unsupported (path : String) : RuntimeMetadataError
- invalid (path message : String) : RuntimeMetadataError
- duplicateType (id : TypeId) : RuntimeMetadataError
- unknownType (id : TypeId) : RuntimeMetadataError
Instances For
Equations
- One or more equations did not get rendered due to their size.
- Miri.Input.instDecidableEqRuntimeMetadataError.decEq (Miri.Input.RuntimeMetadataError.missing a) (Miri.Input.RuntimeMetadataError.missing b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- Miri.Input.instDecidableEqRuntimeMetadataError.decEq (Miri.Input.RuntimeMetadataError.missing path) (Miri.Input.RuntimeMetadataError.unsupported path_1) = isFalse ⋯
- Miri.Input.instDecidableEqRuntimeMetadataError.decEq (Miri.Input.RuntimeMetadataError.missing path) (Miri.Input.RuntimeMetadataError.invalid path_1 message) = isFalse ⋯
- Miri.Input.instDecidableEqRuntimeMetadataError.decEq (Miri.Input.RuntimeMetadataError.missing path) (Miri.Input.RuntimeMetadataError.duplicateType id) = isFalse ⋯
- Miri.Input.instDecidableEqRuntimeMetadataError.decEq (Miri.Input.RuntimeMetadataError.missing path) (Miri.Input.RuntimeMetadataError.unknownType id) = isFalse ⋯
- Miri.Input.instDecidableEqRuntimeMetadataError.decEq (Miri.Input.RuntimeMetadataError.unsupported path) (Miri.Input.RuntimeMetadataError.missing path_1) = isFalse ⋯
- Miri.Input.instDecidableEqRuntimeMetadataError.decEq (Miri.Input.RuntimeMetadataError.unsupported path) (Miri.Input.RuntimeMetadataError.invalid path_1 message) = isFalse ⋯
- Miri.Input.instDecidableEqRuntimeMetadataError.decEq (Miri.Input.RuntimeMetadataError.unsupported path) (Miri.Input.RuntimeMetadataError.duplicateType id) = isFalse ⋯
- Miri.Input.instDecidableEqRuntimeMetadataError.decEq (Miri.Input.RuntimeMetadataError.unsupported path) (Miri.Input.RuntimeMetadataError.unknownType id) = isFalse ⋯
- Miri.Input.instDecidableEqRuntimeMetadataError.decEq (Miri.Input.RuntimeMetadataError.invalid path message) (Miri.Input.RuntimeMetadataError.missing path_1) = isFalse ⋯
- Miri.Input.instDecidableEqRuntimeMetadataError.decEq (Miri.Input.RuntimeMetadataError.invalid path message) (Miri.Input.RuntimeMetadataError.unsupported path_1) = isFalse ⋯
- Miri.Input.instDecidableEqRuntimeMetadataError.decEq (Miri.Input.RuntimeMetadataError.invalid path message) (Miri.Input.RuntimeMetadataError.duplicateType id) = isFalse ⋯
- Miri.Input.instDecidableEqRuntimeMetadataError.decEq (Miri.Input.RuntimeMetadataError.invalid path message) (Miri.Input.RuntimeMetadataError.unknownType id) = isFalse ⋯
- Miri.Input.instDecidableEqRuntimeMetadataError.decEq (Miri.Input.RuntimeMetadataError.duplicateType id) (Miri.Input.RuntimeMetadataError.missing path) = isFalse ⋯
- Miri.Input.instDecidableEqRuntimeMetadataError.decEq (Miri.Input.RuntimeMetadataError.duplicateType id) (Miri.Input.RuntimeMetadataError.unsupported path) = isFalse ⋯
- Miri.Input.instDecidableEqRuntimeMetadataError.decEq (Miri.Input.RuntimeMetadataError.duplicateType id) (Miri.Input.RuntimeMetadataError.invalid path message) = isFalse ⋯
- Miri.Input.instDecidableEqRuntimeMetadataError.decEq (Miri.Input.RuntimeMetadataError.duplicateType id) (Miri.Input.RuntimeMetadataError.unknownType id_1) = isFalse ⋯
- Miri.Input.instDecidableEqRuntimeMetadataError.decEq (Miri.Input.RuntimeMetadataError.unknownType id) (Miri.Input.RuntimeMetadataError.missing path) = isFalse ⋯
- Miri.Input.instDecidableEqRuntimeMetadataError.decEq (Miri.Input.RuntimeMetadataError.unknownType id) (Miri.Input.RuntimeMetadataError.unsupported path) = isFalse ⋯
- Miri.Input.instDecidableEqRuntimeMetadataError.decEq (Miri.Input.RuntimeMetadataError.unknownType id) (Miri.Input.RuntimeMetadataError.invalid path message) = isFalse ⋯
- Miri.Input.instDecidableEqRuntimeMetadataError.decEq (Miri.Input.RuntimeMetadataError.unknownType id) (Miri.Input.RuntimeMetadataError.duplicateType id_1) = isFalse ⋯
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- Miri.Input.instToStringRuntimeMetadataError = { toString := fun (e : Miri.Input.RuntimeMetadataError) => reprStr e }
A private, checked certificate that one immutable JSON tree compares equal
to itself. JSON's BEq is not assumed lawful: a malformed tree may fail this
test, in which case comparisons must retain their ordinary recursive path.
Instances For
Equations
Instances For
Compare in the source-left orientation, preserving left == candidate.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Compare in the candidate-left orientation, preserving candidate == left.
Equations
Instances For
Optional-cache entry point for callers that keep their historical API.
Equations
- Miri.Input.RuntimeMetadata.JsonReflexivity.matchesRightOr none candidate = (left == candidate)
- Miri.Input.RuntimeMetadata.JsonReflexivity.matchesRightOr (some certificate_2) candidate = certificate_2.matchesRight candidate
Instances For
Instances For
Equations
- Miri.Input.RuntimeMetadata.require (some value_2) path = pure value_2
- Miri.Input.RuntimeMetadata.require none path = throw (Miri.Input.RuntimeMetadataError.missing path)
Instances For
Equations
- Miri.Input.RuntimeMetadata.jsonField j name = Miri.Input.RuntimeMetadata.convert✝ name (j.getObjVal? name)
Instances For
Equations
- Miri.Input.RuntimeMetadata.number j name = do let __do_lift ← Miri.Input.RuntimeMetadata.jsonField j name Miri.Input.RuntimeMetadata.convert✝ name __do_lift.getNat?
Instances For
Equations
- Miri.Input.RuntimeMetadata.truth j name = do let __do_lift ← Miri.Input.RuntimeMetadata.jsonField j name Miri.Input.RuntimeMetadata.convert✝ name __do_lift.getBool?
Instances For
Equations
- Miri.Input.RuntimeMetadata.text j name = do let __do_lift ← Miri.Input.RuntimeMetadata.jsonField j name Miri.Input.RuntimeMetadata.convert✝ name __do_lift.getStr?
Instances For
Equations
- Miri.Input.RuntimeMetadata.array j name = do let __do_lift ← Miri.Input.RuntimeMetadata.jsonField j name Miri.Input.RuntimeMetadata.convert✝ name __do_lift.getArr?
Instances For
Equations
- Miri.Input.RuntimeMetadata.u64 n path = if n < 2 ^ 64 then pure (UInt64.ofNat n) else throw (Miri.Input.RuntimeMetadataError.invalid path "u64 overflow")
Instances For
Equations
- Miri.Input.RuntimeMetadata.u32 n path = if n < 2 ^ 32 then pure (UInt32.ofNat n) else throw (Miri.Input.RuntimeMetadataError.invalid path "u32 overflow")
Instances For
Equations
- Miri.Input.RuntimeMetadata.u128 n path = if n < 2 ^ 128 then pure (BitVec.ofNat 128 n) else throw (Miri.Input.RuntimeMetadataError.invalid path "u128 overflow")
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Miri.Input.RuntimeMetadata.integer Miri.MIR.IntegerKind.i8 = pure Miri.ABI.Integer.I8
- Miri.Input.RuntimeMetadata.integer Miri.MIR.IntegerKind.u8 = pure Miri.ABI.Integer.I8
- Miri.Input.RuntimeMetadata.integer Miri.MIR.IntegerKind.i16 = pure Miri.ABI.Integer.I16
- Miri.Input.RuntimeMetadata.integer Miri.MIR.IntegerKind.u16 = pure Miri.ABI.Integer.I16
- Miri.Input.RuntimeMetadata.integer Miri.MIR.IntegerKind.i32 = pure Miri.ABI.Integer.I32
- Miri.Input.RuntimeMetadata.integer Miri.MIR.IntegerKind.u32 = pure Miri.ABI.Integer.I32
- Miri.Input.RuntimeMetadata.integer Miri.MIR.IntegerKind.i64 = pure Miri.ABI.Integer.I64
- Miri.Input.RuntimeMetadata.integer Miri.MIR.IntegerKind.u64 = pure Miri.ABI.Integer.I64
- Miri.Input.RuntimeMetadata.integer Miri.MIR.IntegerKind.i128 = pure Miri.ABI.Integer.I128
- Miri.Input.RuntimeMetadata.integer Miri.MIR.IntegerKind.u128 = pure Miri.ABI.Integer.I128
- Miri.Input.RuntimeMetadata.integer Miri.MIR.IntegerKind.isize = throw (Miri.Input.RuntimeMetadataError.unsupported "pointer-sized integer primitive tag")
- Miri.Input.RuntimeMetadata.integer Miri.MIR.IntegerKind.usize = throw (Miri.Input.RuntimeMetadataError.unsupported "pointer-sized integer primitive tag")
Instances For
Equations
- Miri.Input.RuntimeMetadata.float Miri.Input.FloatTypeTag.f16 = pure Miri.ABI.Float.F16
- Miri.Input.RuntimeMetadata.float Miri.Input.FloatTypeTag.f16b = pure Miri.ABI.Float.F16B
- Miri.Input.RuntimeMetadata.float Miri.Input.FloatTypeTag.f32 = pure Miri.ABI.Float.F32
- Miri.Input.RuntimeMetadata.float Miri.Input.FloatTypeTag.f64 = pure Miri.ABI.Float.F64
- Miri.Input.RuntimeMetadata.float Miri.Input.FloatTypeTag.f128 = pure Miri.ABI.Float.F128
- Miri.Input.RuntimeMetadata.float Miri.Input.FloatTypeTag.ppcf128 = pure Miri.ABI.Float.PpcF128
- Miri.Input.RuntimeMetadata.float (Miri.Input.FloatTypeTag.unknown value) = throw (Miri.Input.RuntimeMetadataError.unsupported "float tag")
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
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
Every canonical target field is required. LLVM's original layout string and address-space bounds stay in the enclosing source document as evidence.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A prepared type-node table is tied to the exact source array it summarizes, and its table must equal the canonical first-row-wins map for that array.
- entries : Std.HashMap TypeId TypeNode
Instances For
Build a first-row-wins index, matching Array.find? on nodes.
Equations
- Miri.Input.RuntimeNodeLookupCache.build nodes = { entries := Miri.Input.canonicalNodeLookup✝ nodes, exact := ⋯ }
Instances For
A prepared layout table indexed by the exact layout array it summarizes. Its entries equal the canonical first-row-wins map, retaining first-row errors.
- entries : Std.HashMap TypeId (Except RuntimeMetadataError (ABI.TyAndLayout TypeId))
Instances For
Build a first-row-wins index, matching Array.find? on layouts.
Equations
- Miri.Input.RuntimeLayoutLookupCache.build layouts = { entries := Miri.Input.canonicalLayoutLookup✝ layouts, exact := ⋯ }
Instances For
Internal metadata cache. A failed type-layout conversion remains a stored obligation; successful import never marks the document execution-ready.
- source : ImportDocumentCore
- target : ABI.RuntimeTargetDataLayout
- layouts : Array (TypeId × Except RuntimeMetadataError (ABI.TyAndLayout TypeId))
- nodeCache : Option (RuntimeNodeLookupCache self.source.types)
- layoutCache : Option (RuntimeLayoutLookupCache self.layouts)
Instances For
Preparation-only immutable lookup view. The public base record remains an
array-backed value, so existing direct construction and record updates retain
their old semantics. The index is constructed from one fixed metadata value;
its first-entry policy matches the base .find? lookups for manually built
records that contain duplicate keys.
- nodeCache : Option (RuntimeNodeLookupCache self.source.types)
- layoutCache : Option (RuntimeLayoutLookupCache self.layouts)
- nodeIndex : Std.HashMap TypeId TypeNode
- layoutIndex : Std.HashMap TypeId (Except RuntimeMetadataError (ABI.TyAndLayout TypeId))
- rawReflexivity : JsonReflexivity self.source.raw
A checked fast-path certificate for reflexive source-document equality. JSON equality is not assumed lawful: malformed trees may fail even
raw == raw. When absent, consumers must run the original full comparator.
Instances For
Build exact-key tables for repeated source/compiler fact lookups. Duplicate keys in manually constructed records preserve the first source-order entry.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Compare a candidate document using the exact original JSON equality. The
checked self-equality certificate permits Lean's safe withPtrEq fast path
when the indexed metadata object is reused by the source world.
Equations
- metadata.matchesSourceLeft left = metadata.rawReflexivity.matchesLeft left
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
- metadata.lookup id = do let entry ← Miri.Input.RuntimeMetadata.require metadata.layoutIndex[id]? (toString "layout " ++ toString id) entry
Instances For
This is an explicit diagnostic inventory, not an execution-readiness test.
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
Canonical primitive lookup compares the compiler integer tag, rather than
choosing an arbitrary member of the broad int/uint shape category.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Source Ty::new_tup identity from the exact ordered compiler element IDs. No size, display spelling, or first-match heuristic establishes a tuple type.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- metadata.overflowTupleLayout element = do let boolean ← metadata.findKind Miri.Input.TypeShapeKind.bool metadata.tupleLayout #[element.ty, boolean.ty]
Instances For
Source type relationships are read from typed compiler payloads, never from display/debug strings. ADT field selection uses the selected variant.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Reconstructs precisely LayoutData::for_variant in pinned
rustc_abi/layout/simple.rs:158–185. Missing uninhabited-variant compiler queries
remain obligations instead of fabricated field metadata.
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
Boundary adapter preserves missing compiler metadata as explicit failures.
Equations
- One or more equations did not get rendered due to their size.