pub type Key<'tcx> = ParamEnvAnd<'tcx, GenericArg<'tcx>>;

Aliased Type§

struct Key<'tcx> {
    pub param_env: ParamEnv<'tcx>,
    pub value: GenericArg<'tcx>,
}

Fields§

§param_env: ParamEnv<'tcx>§value: GenericArg<'tcx>

Implementations§

source§

impl<'tcx, T> ParamEnvAnd<'tcx, T>

source

pub fn into_parts(self) -> (ParamEnv<'tcx>, T)

Trait Implementations§

source§

impl<'tcx, T: Clone> Clone for ParamEnvAnd<'tcx, T>

source§

fn clone(&self) -> ParamEnvAnd<'tcx, T>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<'tcx, T: Debug> Debug for ParamEnvAnd<'tcx, T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'tcx, T: Hash> Hash for ParamEnvAnd<'tcx, T>

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl<'tcx, '__ctx, T> HashStable<StableHashingContext<'__ctx>> for ParamEnvAnd<'tcx, T>where T: HashStable<StableHashingContext<'__ctx>>,

source§

fn hash_stable( &self, __hcx: &mut StableHashingContext<'__ctx>, __hasher: &mut StableHasher )

source§

impl<'tcx, T: Key> Key for ParamEnvAnd<'tcx, T>

§

type CacheSelector = DefaultCacheSelector<ParamEnvAnd<'tcx, T>>

source§

fn default_span(&self, tcx: TyCtxt<'_>) -> Span

In the event that a cycle occurs, if no explicit span has been given for a query with key self, what span should we use?
source§

fn key_as_def_id(&self) -> Option<DefId>

If the key is a DefId or DefId–equivalent, return that DefId. Otherwise, return None.
source§

fn ty_adt_id(&self) -> Option<DefId>

source§

impl<'tcx, '__lifted, T> Lift<'__lifted> for ParamEnvAnd<'tcx, T>where T: Lift<'__lifted>,

§

type Lifted = ParamEnvAnd<'__lifted, <T as Lift<'__lifted>>::Lifted>

source§

fn lift_to_tcx( self, __tcx: TyCtxt<'__lifted> ) -> Option<ParamEnvAnd<'__lifted, T::Lifted>>

source§

impl<'tcx, T: PartialEq> PartialEq<ParamEnvAnd<'tcx, T>> for ParamEnvAnd<'tcx, T>

source§

fn eq(&self, other: &ParamEnvAnd<'tcx, T>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'tcx, T> TypeFoldable<TyCtxt<'tcx>> for ParamEnvAnd<'tcx, T>where T: TypeFoldable<TyCtxt<'tcx>>,

source§

fn try_fold_with<__F: FallibleTypeFolder<TyCtxt<'tcx>>>( self, __folder: &mut __F ) -> Result<Self, __F::Error>

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
source§

fn fold_with<F>(self, folder: &mut F) -> Selfwhere F: TypeFolder<I>,

A convenient alternative to try_fold_with for use with infallible folders. Do not override this method, to ensure coherence with try_fold_with.
source§

impl<'tcx, T> TypeVisitable<TyCtxt<'tcx>> for ParamEnvAnd<'tcx, T>where T: TypeVisitable<TyCtxt<'tcx>>,

source§

fn visit_with<__V: TypeVisitor<TyCtxt<'tcx>>>( &self, __visitor: &mut __V ) -> ControlFlow<__V::BreakTy>

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
source§

impl<'tcx, T: Copy> Copy for ParamEnvAnd<'tcx, T>

source§

impl<'tcx, T: Eq> Eq for ParamEnvAnd<'tcx, T>

source§

impl<'tcx, T> StructuralEq for ParamEnvAnd<'tcx, T>

source§

impl<'tcx, T> StructuralPartialEq for ParamEnvAnd<'tcx, T>

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:16 bytes