struct MatchTreeSubBranch<'tcx> {
span: Span,
success_block: BasicBlock,
otherwise_block: BasicBlock,
bindings: Vec<Binding<'tcx>>,
ascriptions: Vec<Ascription<'tcx>>,
is_never: bool,
}Expand description
A sub-branch in the output of match lowering. Match lowering has generated MIR code that will
branch to success_block when the matched value matches the corresponding pattern. If there is
a guard, its failure must continue to otherwise_block, which will resume testing patterns.
Fields§
§span: Span§success_block: BasicBlockThe block that is branched to if the corresponding subpattern matches.
otherwise_block: BasicBlockThe block to branch to if this arm had a guard and the guard fails.
bindings: Vec<Binding<'tcx>>The bindings to set up in this sub-branch.
ascriptions: Vec<Ascription<'tcx>>The ascriptions to set up in this sub-branch.
is_never: boolWhether the sub-branch corresponds to a never pattern.
Implementations§
source§impl<'tcx> MatchTreeSubBranch<'tcx>
impl<'tcx> MatchTreeSubBranch<'tcx>
fn from_sub_candidate( candidate: Candidate<'_, 'tcx>, parent_data: &Vec<PatternExtraData<'tcx>>, ) -> Self
Trait Implementations§
Auto Trait Implementations§
impl<'tcx> DynSend for MatchTreeSubBranch<'tcx>
impl<'tcx> DynSync for MatchTreeSubBranch<'tcx>
impl<'tcx> Freeze for MatchTreeSubBranch<'tcx>
impl<'tcx> !RefUnwindSafe for MatchTreeSubBranch<'tcx>
impl<'tcx> Send for MatchTreeSubBranch<'tcx>
impl<'tcx> Sync for MatchTreeSubBranch<'tcx>
impl<'tcx> Unpin for MatchTreeSubBranch<'tcx>
impl<'tcx> !UnwindSafe for MatchTreeSubBranch<'tcx>
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
source§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
source§impl<T> Filterable for T
impl<T> Filterable for T
source§fn filterable(
self,
filter_name: &'static str,
) -> RequestFilterDataProvider<T, fn(_: DataRequest<'_>) -> bool>
fn filterable( self, filter_name: &'static str, ) -> RequestFilterDataProvider<T, fn(_: DataRequest<'_>) -> bool>
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>
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>
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 moresource§impl<P> IntoQueryParam<P> for P
impl<P> IntoQueryParam<P> for P
fn into_query_param(self) -> P
source§impl<T> MaybeResult<T> for T
impl<T> MaybeResult<T> for T
source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<I, T, U> Upcast<I, U> for Twhere
U: UpcastFrom<I, T>,
impl<I, T, U> Upcast<I, U> for Twhere
U: UpcastFrom<I, T>,
source§impl<I, T> UpcastFrom<I, T> for T
impl<I, T> UpcastFrom<I, T> for T
fn upcast_from(from: T, _tcx: I) -> T
source§impl<Tcx, T> Value<Tcx> for Twhere
Tcx: DepContext,
impl<Tcx, T> Value<Tcx> for Twhere
Tcx: DepContext,
default fn from_cycle_error( tcx: Tcx, cycle_error: &CycleError, _guar: ErrorGuaranteed, ) -> T
source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<'a, T> Captures<'a> for Twhere
T: ?Sized,
impl<'a, T> Captures<'a> for Twhere
T: ?Sized,
impl<T> ErasedDestructor for Twhere
T: 'static,
impl<T> MaybeSendSync for T
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: 72 bytes