Module rustc_const_eval::transform::check_consts::qualifs [−][src]
Expand description
Structural const qualification.
See the Qualif
trait for more info.
Structs
A constant that cannot be used as part of a pattern in a match
expression.
Constant containing interior mutability (UnsafeCell<T>
).
This must be ruled out to make sure that evaluating the constant at compile-time
and at any point during the run-time would produce the same result. In particular,
promotion of temporaries must not change program behavior; if the promoted could be
written to, that would be a problem.
Constant containing an ADT that implements Drop
.
This must be ruled out because implicit promotion would remove side-effects
that occur as part of dropping that value. N.B., the implicit promotion has
to reject const Drop implementations because even if side-effects are ruled
out through other means, the execution of the drop could diverge.
Constant containing an ADT that implements non-const Drop
.
This must be ruled out because we cannot run Drop
during compile-time.
Traits
A “qualif”(-ication) is a way to look for something “bad” in the MIR that would disqualify some code for promotion or prevent it from evaluating at compile time.
Functions
Returns true
if this Operand
contains qualif Q
.
Returns true
if this Place
contains qualif Q
.
Returns true
if this Rvalue
contains qualif Q
.