Module rustc_const_eval::transform::check_consts::qualifs
source · 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.