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

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,
    },
}
Expand description

See Test for more.

Variants

Switch

Test what enum variant a value is.

Fields of Switch

adt_def: &'tcx AdtDef

The enum type 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

Tuple Fields of Range

0: PatRange<'tcx>
Len

Test that the length of the slice is equal to len.

Fields of Len

len: u64op: BinOp

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

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

Size for each variant: