pub struct MatchPattern {
pub switch_node: NodeIndex,
pub targets: Vec<NodeIndex>,
pub otherwise: NodeIndex,
}Expand description
Represents a match/switch structure detected in the CFG
Fields§
§switch_node: NodeIndexSwitch node (contains SwitchInt terminator)
targets: Vec<NodeIndex>Branch targets (excluding default/otherwise)
otherwise: NodeIndexDefault/otherwise branch
Implementations§
Source§impl MatchPattern
impl MatchPattern
Sourcepub fn branch_count(&self) -> usize
pub fn branch_count(&self) -> usize
Get total number of branches
Sourcepub fn has_explicit_default(&self) -> bool
pub fn has_explicit_default(&self) -> bool
Check if this match is exhaustive (all branches defined) This is a simplified check - true exhaustiveness requires type info
Trait Implementations§
Source§impl Clone for MatchPattern
impl Clone for MatchPattern
Source§fn clone(&self) -> MatchPattern
fn clone(&self) -> MatchPattern
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 moreAuto Trait Implementations§
impl Freeze for MatchPattern
impl RefUnwindSafe for MatchPattern
impl Send for MatchPattern
impl Sync for MatchPattern
impl Unpin for MatchPattern
impl UnsafeUnpin for MatchPattern
impl UnwindSafe for MatchPattern
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<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more