MIR datatypes and passes. See the rustc dev guide for more info.
A subset of a mir body used for const evaluatability checking.
Metadata from source code coverage analysis and instrumentation.
An interpreter for MIR used in CTFE and by miri.
Lazily compute the reverse control-flow graph for the MIR.
Values computed by queries that use MIR.
Methods for the various MIR types. These are intended for use after building is complete.
A node in the MIR control-flow graph.
The lowered representation of a single function.
Indicates an outlives-constraint between a type or between two free regions declared on the closure.
After we borrow check a closure, we are left with various requirements that we have inferred between the free regions that appear in the closure's signature or on its field types. These requirements are then verified and proved by the closure's creating function. This struct encodes those requirements.
The result of the
Coverage information summarized from a MIR if instrumented for source code coverage (see
The constituent parts of an ADT or array.
The layout of generator state.
A MIR local.
Where a specific
A path to a value; something that can be evaluated without changing or disturbing program state.
Grouped information about the source code origin of a MIR entity. Intended to be inspected by diagnostics and debuginfo. Most passes can work with it as a whole, within a single function.
Encodes the effect of a user-supplied type annotation on the
subcomponents of a pattern. The effect is determined by applying the
given list of proejctions to some underlying base type. Often,
the projection element list
A collection of projections into user types.
Debug information pertaining to a user variable.
Information about an assertion failure.
The subject of a
Outlives-constraints can be categorized to determine whether and why they are interesting (for error reporting). Order of variants indicates sort order of the category, thereby influencing diagnostic output.
Represents what type of implicit self a function has, if any.
Extra information about a some locals that's used for diagnostics and for classifying variables into local variables, statics, etc, which is needed e.g. for unsafety checking.
Classifies locals into categories. See
The various "big phases" that MIR goes through.
These are values that can appear inside an rvalue. They are intentionally limited to prevent rvalues from being nested in one another.
Describes what kind of retag is to be performed.
Type for MIR
Types for locals
Alias for projections as they appear in places, where the base is a place and the index is a local.
Alias for projections as they appear in