Enum rustc_const_eval::pattern::PatternKind
[−]
[src]
pub enum PatternKind<'tcx> {
Wild,
Binding {
mutability: Mutability,
name: Name,
mode: BindingMode<'tcx>,
var: NodeId,
ty: Ty<'tcx>,
subpattern: Option<Pattern<'tcx>>,
},
Variant {
adt_def: &'tcx AdtDef,
substs: &'tcx Substs<'tcx>,
variant_index: usize,
subpatterns: Vec<FieldPattern<'tcx>>,
},
Leaf {
subpatterns: Vec<FieldPattern<'tcx>>,
},
Deref {
subpattern: Pattern<'tcx>,
},
Constant {
value: ConstVal<'tcx>,
},
Range {
lo: ConstVal<'tcx>,
hi: ConstVal<'tcx>,
end: RangeEnd,
},
Slice {
prefix: Vec<Pattern<'tcx>>,
slice: Option<Pattern<'tcx>>,
suffix: Vec<Pattern<'tcx>>,
},
Array {
prefix: Vec<Pattern<'tcx>>,
slice: Option<Pattern<'tcx>>,
suffix: Vec<Pattern<'tcx>>,
},
}🔬 This is a nightly-only experimental API. (
rustc_private)Variants
Wild🔬 This is a nightly-only experimental API. (
rustc_private)Binding🔬 This is a nightly-only experimental API. (
rustc_private)x, ref x, x @ P, etc
Fields of Binding
mutability: Mutability | 🔬 This is a nightly-only experimental API. ( rustc_private) |
name: Name | 🔬 This is a nightly-only experimental API. ( rustc_private) |
mode: BindingMode<'tcx> | 🔬 This is a nightly-only experimental API. ( rustc_private) |
var: NodeId | 🔬 This is a nightly-only experimental API. ( rustc_private) |
ty: Ty<'tcx> | 🔬 This is a nightly-only experimental API. ( rustc_private) |
subpattern: Option<Pattern<'tcx>> | 🔬 This is a nightly-only experimental API. ( rustc_private) |
Variant🔬 This is a nightly-only experimental API. (
rustc_private)Foo(...) or Foo{...} or Foo, where Foo is a variant name from an adt with >1 variants
Fields of Variant
adt_def: &'tcx AdtDef | 🔬 This is a nightly-only experimental API. ( rustc_private) |
substs: &'tcx Substs<'tcx> | 🔬 This is a nightly-only experimental API. ( rustc_private) |
variant_index: usize | 🔬 This is a nightly-only experimental API. ( rustc_private) |
subpatterns: Vec<FieldPattern<'tcx>> | 🔬 This is a nightly-only experimental API. ( rustc_private) |
Leaf🔬 This is a nightly-only experimental API. (
rustc_private)(...), Foo(...), Foo{...}, or Foo, where Foo is a variant name from an adt with 1 variant
Fields of Leaf
subpatterns: Vec<FieldPattern<'tcx>> | 🔬 This is a nightly-only experimental API. ( rustc_private) |
Deref🔬 This is a nightly-only experimental API. (
rustc_private)box P, &P, &mut P, etc
Fields of Deref
subpattern: Pattern<'tcx> | 🔬 This is a nightly-only experimental API. ( rustc_private) |
Constant🔬 This is a nightly-only experimental API. (
rustc_private)Fields of Constant
value: ConstVal<'tcx> | 🔬 This is a nightly-only experimental API. ( rustc_private) |
Range🔬 This is a nightly-only experimental API. (
rustc_private)Fields of Range
lo: ConstVal<'tcx> | 🔬 This is a nightly-only experimental API. ( rustc_private) |
hi: ConstVal<'tcx> | 🔬 This is a nightly-only experimental API. ( rustc_private) |
end: RangeEnd | 🔬 This is a nightly-only experimental API. ( rustc_private) |
Slice🔬 This is a nightly-only experimental API. (
rustc_private)matches against a slice, checking the length and extracting elements
Fields of Slice
prefix: Vec<Pattern<'tcx>> | 🔬 This is a nightly-only experimental API. ( rustc_private) |
slice: Option<Pattern<'tcx>> | 🔬 This is a nightly-only experimental API. ( rustc_private) |
suffix: Vec<Pattern<'tcx>> | 🔬 This is a nightly-only experimental API. ( rustc_private) |
Array🔬 This is a nightly-only experimental API. (
rustc_private)fixed match against an array, irrefutable
Fields of Array
prefix: Vec<Pattern<'tcx>> | 🔬 This is a nightly-only experimental API. ( rustc_private) |
slice: Option<Pattern<'tcx>> | 🔬 This is a nightly-only experimental API. ( rustc_private) |
suffix: Vec<Pattern<'tcx>> | 🔬 This is a nightly-only experimental API. ( rustc_private) |
Trait Implementations
impl<'tcx> Clone for PatternKind<'tcx>[src]
fn clone(&self) -> PatternKind<'tcx>
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)1.0.0
Performs copy-assignment from source. Read more
impl<'tcx> Debug for PatternKind<'tcx>[src]
impl<'tcx> PatternFoldable<'tcx> for PatternKind<'tcx>[src]
fn fold_with<F: PatternFolder<'tcx>>(&self, folder: &mut F) -> Self
🔬 This is a nightly-only experimental API. (
rustc_private)fn super_fold_with<F: PatternFolder<'tcx>>(&self, folder: &mut F) -> Self
🔬 This is a nightly-only experimental API. (
rustc_private)