[][src]Module rustc::mir

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

MIR datatypes and passes. See the rustc guide for more info.

Modules

binding_form_implInternal
cacheInternal
interpretInternal

An interpreter for MIR used in CTFE and by miri

monoInternal
tcxInternal

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

traversalInternal
visitInternal

Structs

BasicBlockInternal
BasicBlockDataInternal
BlockTailInfoInternal

BlockTailInfo is attached to the LocalDecl for temporaries created during evaluation of expressions in a block tail expression; that is, a block like { STMT_1; STMT_2; EXPR }.

BodyInternal

Lowered representation of a single function.

BorrowCheckResultInternal
ClosureOutlivesRequirementInternal

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

ClosureRegionRequirementsInternal

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.

ConstantInternal

Constants

FieldInternal
GeneratorLayoutInternal

The layout of generator state

GeneratorSavedLocalInternal
InlineAsmInternal
LocalInternal
LocalDeclInternal

A MIR local.

LocationInternal
ProjectionInternal

The Projection data structure defines things of the form base.x, *b or b[index].

ProjectionsIterInternal

Iterator over components; see Projections::iter for more information.

PromotedInternal
SourceInfoInternal

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.

SourceScopeInternal
SourceScopeDataInternal
SourceScopeLocalDataInternal
StatementInternal
StaticInternal

We store the normalized type to avoid requiring normalization when reading MIR

TerminatorInternal
UnsafetyCheckResultInternal
UnsafetyViolationInternal
UpvarDebuginfoInternal

A closure capture, with its name and mode.

UserTypeProjectionInternal

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 projs is empty, in which case this directly encodes a type in base. But in the case of complex patterns with subpatterns and bindings, we want to apply only a part of the type to a variable, in which case the projs vector is used.

UserTypeProjectionsInternal

A collection of projections into user types.

VarBindingFormInternal

Enums

AggregateKindInternal
BinOpInternal
BindingFormInternal
BorrowKindInternal
CastKindInternal
ClearCrossCrateInternal
ClosureOutlivesSubjectInternal

The subject of a ClosureOutlivesRequirement -- that is, the thing that must outlive some region.

ConstraintCategoryInternal

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.

FakeReadCauseInternal

The FakeReadCause describes the type of pattern why a FakeRead statement exists.

ImplicitSelfKindInternal

Represents what type of implicit self a function has, if any.

LocalKindInternal

Classifies locals into categories. See Body::local_kind.

MirPhaseInternal

The various "big phases" that MIR goes through.

MutabilityInternal
NullOpInternal
OperandInternal

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

PlaceInternal

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

PlaceBaseInternal
ProjectionElemInternal
ProjectionsInternal

A linked list of projections running up the stack; begins with the innermost projection and extends to the outermost (e.g., a.b.c would have the place b with a "next" pointer to b.c). Created by Place::iterate.

RetagKindInternal

RetagKind describes what kind of retag is to be performed.

RvalueInternal

Rvalues

SafetyInternal
StatementKindInternal
StaticKindInternal
TerminatorKindInternal
UnOpInternal
UnsafetyViolationKindInternal

Constants

OUTERMOST_SOURCE_SCOPEInternal
RETURN_PLACEInternal
START_BLOCKInternal
_Internal
_Internal

Traits

HasLocalDeclsInternal

Type Definitions

AssertMessageInternal
LocalDeclsInternal

Types for locals

PlaceElemInternal

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

ProjectionKindInternal

Alias for projections as they appear in UserTypeProjection, where we need neither the V parameter for Index nor the T for Field.

SuccessorsInternal
SuccessorsMutInternal