[−][src]Enum rustc_mir_build::build::matches::TestKind

pub(in build::matches) enum TestKind<'tcx> {
    Switch {
        adt_def: &'tcx AdtDef,
        variants: BitSet<VariantIdx>,
    },
    SwitchInt {
        switch_ty: Ty<'tcx>,
        options: FxIndexMap<&'tcx Const<'tcx>, u128>,
    },
    Eq {
        value: &'tcx Const<'tcx>,
        ty: Ty<'tcx>,
    },
    Range(PatRange<'tcx>),
    Len {
        len: u64,
        op: BinOp,
    },
}

Variants

Switch

Test the branches of enum.

Fields of Switch

adt_def: &'tcx AdtDef

The enum being tested

variants: BitSet<VariantIdx>

The set of variants that we should create a branch for. We also create an additional "otherwise" case.

SwitchInt

Test what value an integer, bool or char has.

Fields of SwitchInt

switch_ty: Ty<'tcx>

The type of the value that we're testing.

options: FxIndexMap<&'tcx Const<'tcx>, u128>

The (ordered) set of values that we test for.

For integers and chars we create a branch to each of the values in options, as well as an "otherwise" branch for all other values, even in the (rare) case that options is exhaustive.

For bool we always generate two edges, one for true and one for false.

Eq

Test for equality with value, possibly after an unsizing coercion to ty,

Fields of Eq

value: &'tcx Const<'tcx>ty: Ty<'tcx>
Range(PatRange<'tcx>)

Test whether the value falls within an inclusive or exclusive range

Len

Test length of the slice is equal to len

Fields of Len

len: u64op: BinOp

Trait Implementations

impl<'tcx> Clone for TestKind<'tcx>[src]

impl<'tcx> Debug for TestKind<'tcx>[src]

impl<'tcx> PartialEq<TestKind<'tcx>> for TestKind<'tcx>[src]

impl<'tcx> StructuralPartialEq for TestKind<'tcx>[src]

Auto Trait Implementations

impl<'tcx> !RefUnwindSafe for TestKind<'tcx>

impl<'tcx> !Send for TestKind<'tcx>

impl<'tcx> !Sync for TestKind<'tcx>

impl<'tcx> Unpin for TestKind<'tcx>

impl<'tcx> !UnwindSafe for TestKind<'tcx>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized, 
[src]

impl<T> Borrow<T> for T where
    T: ?Sized, 
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized, 
[src]

impl<'a, T> Captures<'a> for T where
    T: ?Sized, 
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone, 
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.