Structs

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 mir_const_qualif query.

Coverage information summarized from a MIR if instrumented for source code coverage (see compiler option -Cinstrument-coverage). This information is generated by the InstrumentCoverage MIR pass and can be retrieved via the coverageinfo query.

The constituent parts of a type level constant of kind ADT or array.

The constituent parts of a mir constant of kind ADT or array.

The layout of generator state.

Enums

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

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.

A note on unwinding: Panics may occur during the execution of some terminators. Depending on the -C panic flag, this may either cause the program to abort or the call stack to unwind. Such terminators have a cleanup: Option<BasicBlock> field on them. If stack unwinding occurs, then once the current function is reached, execution continues at the given basic block, if any. If cleanup is None then no cleanup is performed, and the stack continues unwinding. This is equivalent to the execution of a Resume terminator.