[−][src]Enum rustc_mir_build::thir::pattern::_match::SpecializationCache
Depending on the match patterns, the specialization process might be able to use a fast path. Tracks whether we can use the fast path and the lookup table needed in those cases.
Variants
Patterns consist of only enum variants.
Variant patterns does not intersect with each other (in contrast to range patterns),
so it is possible to precompute the result of Matrix::specialize_constructor at a
lower computational complexity.
lookup is responsible for holding the precomputed result of
Matrix::specialize_constructor, while wilds is used for two purposes: the first one is
the precomputed result of Matrix::specialize_wildcard, and the second is to be used as a
fallback for Matrix::specialize_constructor when it tries to apply a constructor that
has not been seen in the Matrix. See update_cache for further explanations.
Does not belong to the cases above, use the slow path.
Trait Implementations
impl Clone for SpecializationCache[src]
fn clone(&self) -> SpecializationCache[src]
fn clone_from(&mut self, source: &Self)1.0.0[src]
impl Debug for SpecializationCache[src]
impl PartialEq<SpecializationCache> for SpecializationCache[src]
fn eq(&self, other: &SpecializationCache) -> bool[src]
fn ne(&self, other: &SpecializationCache) -> bool[src]
impl StructuralPartialEq for SpecializationCache[src]
Auto Trait Implementations
impl RefUnwindSafe for SpecializationCache
impl Send for SpecializationCache
impl Sync for SpecializationCache
impl Unpin for SpecializationCache
impl UnwindSafe for SpecializationCache
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T[src]
impl<'a, T> Captures<'a> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone, [src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T[src]
fn clone_into(&self, target: &mut T)[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,