enum StatementEquality {
TrivialEqual,
ConsideredEqual(BasicBlock),
NotEqual,
}
Variants§
TrivialEqual
The two statements are trivially equal; same kind
ConsideredEqual(BasicBlock)
The two statements are considered equal, but may be of different kinds. The BasicBlock field is the basic block to jump to when performing the branch-same optimization.
For example, _0 = _1
and discriminant(_0) = discriminant(0)
are considered equal if 0 is a fieldless variant of an enum. But we don’t want to jump to the basic block with the SetDiscriminant, as that is not legal if _1 is not the 0 variant index
NotEqual
The two statements are not equal
Implementations§
source§impl StatementEquality
impl StatementEquality
fn combine(&self, other: &StatementEquality) -> StatementEquality
Trait Implementations§
source§impl Clone for StatementEquality
impl Clone for StatementEquality
source§fn clone(&self) -> StatementEquality
fn clone(&self) -> StatementEquality
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl PartialEq<StatementEquality> for StatementEquality
impl PartialEq<StatementEquality> for StatementEquality
source§fn eq(&self, other: &StatementEquality) -> bool
fn eq(&self, other: &StatementEquality) -> bool
impl Copy for StatementEquality
impl Eq for StatementEquality
impl StructuralEq for StatementEquality
impl StructuralPartialEq for StatementEquality
Auto Trait Implementations§
impl RefUnwindSafe for StatementEquality
impl Send for StatementEquality
impl Sync for StatementEquality
impl Unpin for StatementEquality
impl UnwindSafe for StatementEquality
Blanket Implementations§
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference’s “Type Layout” chapter for details on type layout guarantees.
Size: 4 bytes
Size for each variant:
TrivialEqual
: 0 bytesConsideredEqual
: 4 bytesNotEqual
: 0 bytes