rustc_type_ir/
pattern.rs

1use derive_where::derive_where;
2#[cfg(feature = "nightly")]
3use rustc_macros::{Decodable_NoContext, Encodable_NoContext, HashStable_NoContext};
4use rustc_type_ir_macros::{
5    GenericTypeVisitable, Lift_Generic, TypeFoldable_Generic, TypeVisitable_Generic,
6};
7
8use crate::Interner;
9
10#[derive_where(Clone, Copy, Hash, PartialEq; I: Interner)]
11#[derive(TypeVisitable_Generic, GenericTypeVisitable, TypeFoldable_Generic, Lift_Generic)]
12#[cfg_attr(
13    feature = "nightly",
14    derive(Decodable_NoContext, Encodable_NoContext, HashStable_NoContext)
15)]
16pub enum PatternKind<I: Interner> {
17    Range { start: I::Const, end: I::Const },
18    Or(I::PatList),
19    NotNull,
20}
21
22impl<I: Interner> Eq for PatternKind<I> {}