#[non_exhaustive]pub enum MutationClass {
Cosmetic,
Structural,
Semantic,
Lowering,
}Expand description
Frozen classification of IR-mutating passes.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Cosmetic
Renames and alias collapse only. Byte-exact output required.
Structural
Reshape without semantic change (CSE, DCE, flatten, inline). Byte-exact.
Semantic
Semantic change under a declared precondition. Requires witness proof.
Lowering
Backend lowering. Output checked against declared algebraic laws, not against byte-for-byte reference output.
Implementations§
Source§impl MutationClass
impl MutationClass
Sourcepub const fn requires_byte_parity(self) -> bool
pub const fn requires_byte_parity(self) -> bool
true when the conform gate must verify byte-for-byte parity with the
reference interpreter after this class of mutation.
Sourcepub const fn uses_law_proof(self) -> bool
pub const fn uses_law_proof(self) -> bool
true when the conform gate verifies declared AlgebraicLaws rather
than byte-for-byte equivalence.
Trait Implementations§
Source§impl Clone for MutationClass
impl Clone for MutationClass
Source§fn clone(&self) -> MutationClass
fn clone(&self) -> MutationClass
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for MutationClass
Source§impl Debug for MutationClass
impl Debug for MutationClass
impl Eq for MutationClass
Source§impl Hash for MutationClass
impl Hash for MutationClass
Source§impl PartialEq for MutationClass
impl PartialEq for MutationClass
Source§fn eq(&self, other: &MutationClass) -> bool
fn eq(&self, other: &MutationClass) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for MutationClass
Auto Trait Implementations§
impl Freeze for MutationClass
impl RefUnwindSafe for MutationClass
impl Send for MutationClass
impl Sync for MutationClass
impl Unpin for MutationClass
impl UnsafeUnpin for MutationClass
impl UnwindSafe for MutationClass
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.