Module rustc::mir [] [src]

🔬 This is a nightly-only experimental API. (rustc_private)

this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?

MIR datatypes and passes. See the module-level README for details.

Modules

interpret [
Experimental
]

An interpreter for MIR used in CTFE and by miri

tcx [
Experimental
]

Methods for the various MIR types. These are intended for use after building is complete.

traversal [
Experimental
]
visit [
Experimental
]

Structs

BasicBlock [
Experimental
]
BasicBlockData [
Experimental
]
ClosureOutlivesRequirement [
Experimental
]

Indicates an outlives constraint between two free-regions declared on the closure.

ClosureRegionRequirements [
Experimental
]

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.

Constant [
Experimental
]

Constants

Field [
Experimental
]
GeneratorLayout [
Experimental
]

The layout of generator state

Local [
Experimental
]
LocalDecl [
Experimental
]

A MIR local.

Location [
Experimental
]
Mir [
Experimental
]

Lowered representation of a single function.

Projection [
Experimental
]

The Projection data structure defines things of the form B.x or *B or B[index]. Note that it is parameterized because it is shared between Constant and Place. See the aliases PlaceProjection etc below.

Promoted [
Experimental
]
SourceInfo [
Experimental
]

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.

Statement [
Experimental
]
Static [
Experimental
]

The def-id of a static, along with its normalized type (which is stored to avoid requiring normalization when reading MIR).

Terminator [
Experimental
]
UnsafetyCheckResult [
Experimental
]
UnsafetyViolation [
Experimental
]
UpvarDecl [
Experimental
]

A closure capture, with its name and mode.

ValidationOperand [
Experimental
]
VisibilityScope [
Experimental
]
VisibilityScopeData [
Experimental
]
VisibilityScopeInfo [
Experimental
]

Enums

AggregateKind [
Experimental
]
AssertMessage [
Experimental
]
BinOp [
Experimental
]
BorrowKind [
Experimental
]
CastKind [
Experimental
]
ClearCrossCrate [
Experimental
]
Literal [
Experimental
]
LocalKind [
Experimental
]

Classifies locals into categories. See Mir::local_kind.

Mutability [
Experimental
]
NullOp [
Experimental
]
Operand [
Experimental
]

These are values that can appear inside an rvalue (or an index place). They are intentionally limited to prevent rvalues from being nested in one another.

Place [
Experimental
]

A path to a value; something that can be evaluated without changing or disturbing program state.

ProjectionElem [
Experimental
]
Rvalue [
Experimental
]

Rvalues

Safety [
Experimental
]
StatementKind [
Experimental
]
TerminatorKind [
Experimental
]
UnOp [
Experimental
]
UnsafetyViolationKind [
Experimental
]
ValidationOp [
Experimental
]

The ValidationOp describes what happens with each of the operands of a Validate statement.

Constants

ARGUMENT_VISIBILITY_SCOPE [
Experimental
]
RETURN_PLACE [
Experimental
]
START_BLOCK [
Experimental
]

where execution begins

Traits

HasLocalDecls [
Experimental
]

Type Definitions

PlaceElem [
Experimental
]

Alias for projections as they appear in places, where the base is a place and the index is a local.

PlaceProjection [
Experimental
]

Alias for projections as they appear in places, where the base is a place and the index is a local.