Expand description
A simplified version of rust mir.
Structs§
- An
Instance
is the resolved call-target at a particular trait-call-site - A node in the MIR control-flow graph.
- The source-order index of a field in a variant.
Location
represents the position of the start of the statement; or, ifstatement_index
equals the number of statements, then the start of the terminator.- 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.
- The source-order index of a variant in a type.
Enums§
- The
FakeReadCause
describes the type of pattern why a FakeRead statement exists. - Classifies locals into categories. See
Body::local_kind
. - Action to be taken when a stack unwind happens.
Constants§
- Equivalent to
VariantIdx(0)
.
Functions§
- The
FalseEdge/imaginary_target
edges mess up theis_join_point
computation which creates spurious join points that lose information e.g. in match arms, the k+1-th arm has the k-th arm as a “fake” predecessor so we lose the assumptions specific to the k+1-th arm due to a spurious join. This code corrects for this problem by computing the number of “fake” predecessors and decreasing them from the total number of “predecessors” returned byrustc
. The option is to recompute “predecessors” from scratch but we may miss some cases there. (see alsois_join_point
) - Replicate the
InferCtxt
used for mir typeck by generating region variables for every region in theRegionInferenceContext