Trait chalk_ir::interner::HasInterner [−][src]
Expand description
Implemented by types that have an associated interner (which
are virtually all of the types in chalk-ir, for example).
This lets us map from a type like Ty<I>
to the parameter I
.
It’s particularly useful for writing Fold
impls for generic types like
Binder<T>
, since it allows us to figure out the interner of T
.
Associated Types
Implementations on Foreign Types
impl<T> HasInterner for Option<T> where
T: HasInterner,
[src]
impl<T> HasInterner for Option<T> where
T: HasInterner,
[src]impl<T, E> HasInterner for Result<T, E> where
T: HasInterner,
[src]
impl<T, E> HasInterner for Result<T, E> where
T: HasInterner,
[src]impl<T: HasInterner> HasInterner for [T]
[src]
impl<T: HasInterner> HasInterner for [T]
[src]impl<T: HasInterner> HasInterner for Vec<T>
[src]
impl<T: HasInterner> HasInterner for Vec<T>
[src]impl<T: HasInterner> HasInterner for Box<T>
[src]
impl<T: HasInterner> HasInterner for Box<T>
[src]impl<T: HasInterner> HasInterner for Arc<T>
[src]
impl<T: HasInterner> HasInterner for Arc<T>
[src]impl<T: HasInterner + ?Sized> HasInterner for &T
[src]
impl<T: HasInterner + ?Sized> HasInterner for &T
[src]impl<I: Interner> HasInterner for PhantomData<I>
[src]
impl<I: Interner> HasInterner for PhantomData<I>
[src]type Interner = I
impl<A, B, I> HasInterner for (A, B) where
A: HasInterner<Interner = I>,
B: HasInterner<Interner = I>,
I: Interner,
[src]
impl<A, B, I> HasInterner for (A, B) where
A: HasInterner<Interner = I>,
B: HasInterner<Interner = I>,
I: Interner,
[src]type Interner = I
impl<A, B, C, I> HasInterner for (A, B, C) where
A: HasInterner<Interner = I>,
B: HasInterner<Interner = I>,
C: HasInterner<Interner = I>,
I: Interner,
[src]
impl<A, B, C, I> HasInterner for (A, B, C) where
A: HasInterner<Interner = I>,
B: HasInterner<Interner = I>,
C: HasInterner<Interner = I>,
I: Interner,
[src]type Interner = I
impl<'a, T: HasInterner> HasInterner for Iter<'a, T>
[src]
impl<'a, T: HasInterner> HasInterner for Iter<'a, T>
[src]Implementors
impl<G: HasInterner> HasInterner for InEnvironment<G>
[src]
impl<G: HasInterner> HasInterner for InEnvironment<G>
[src]impl<I: Interner> HasInterner for AliasTy<I>
[src]
impl<I: Interner> HasInterner for AliasTy<I>
[src]type Interner = I
impl<I: Interner> HasInterner for ConstValue<I>
[src]
impl<I: Interner> HasInterner for ConstValue<I>
[src]type Interner = I
impl<I: Interner> HasInterner for Constraint<I>
[src]
impl<I: Interner> HasInterner for Constraint<I>
[src]type Interner = I
impl<I: Interner> HasInterner for DomainGoal<I>
[src]
impl<I: Interner> HasInterner for DomainGoal<I>
[src]type Interner = I
impl<I: Interner> HasInterner for FromEnv<I>
[src]
impl<I: Interner> HasInterner for FromEnv<I>
[src]type Interner = I
impl<I: Interner> HasInterner for GoalData<I>
[src]
impl<I: Interner> HasInterner for GoalData<I>
[src]type Interner = I
impl<I: Interner> HasInterner for LifetimeData<I>
[src]
impl<I: Interner> HasInterner for LifetimeData<I>
[src]type Interner = I
impl<I: Interner> HasInterner for TyKind<I>
[src]
impl<I: Interner> HasInterner for TyKind<I>
[src]type Interner = I
impl<I: Interner> HasInterner for VariableKind<I>
[src]
impl<I: Interner> HasInterner for VariableKind<I>
[src]type Interner = I
impl<I: Interner> HasInterner for WellFormed<I>
[src]
impl<I: Interner> HasInterner for WellFormed<I>
[src]type Interner = I
impl<I: Interner> HasInterner for WhereClause<I>
[src]
impl<I: Interner> HasInterner for WhereClause<I>
[src]type Interner = I
impl<I: Interner> HasInterner for AliasEq<I>
[src]
impl<I: Interner> HasInterner for AliasEq<I>
[src]type Interner = I
impl<I: Interner> HasInterner for AnswerSubst<I>
[src]
impl<I: Interner> HasInterner for AnswerSubst<I>
[src]type Interner = I
impl<I: Interner> HasInterner for CanonicalVarKinds<I>
[src]
impl<I: Interner> HasInterner for CanonicalVarKinds<I>
[src]type Interner = I
impl<I: Interner> HasInterner for ConcreteConst<I>
[src]
impl<I: Interner> HasInterner for ConcreteConst<I>
[src]type Interner = I
impl<I: Interner> HasInterner for Const<I>
[src]
impl<I: Interner> HasInterner for Const<I>
[src]type Interner = I
impl<I: Interner> HasInterner for ConstData<I>
[src]
impl<I: Interner> HasInterner for ConstData<I>
[src]type Interner = I
impl<I: Interner> HasInterner for ConstrainedSubst<I>
[src]
impl<I: Interner> HasInterner for ConstrainedSubst<I>
[src]type Interner = I
impl<I: Interner> HasInterner for Constraints<I>
[src]
impl<I: Interner> HasInterner for Constraints<I>
[src]type Interner = I
impl<I: Interner> HasInterner for DynTy<I>
[src]
impl<I: Interner> HasInterner for DynTy<I>
[src]type Interner = I
impl<I: Interner> HasInterner for Environment<I>
[src]
impl<I: Interner> HasInterner for Environment<I>
[src]type Interner = I
impl<I: Interner> HasInterner for FnPointer<I>
[src]
impl<I: Interner> HasInterner for FnPointer<I>
[src]type Interner = I
impl<I: Interner> HasInterner for FnSig<I>
[src]
impl<I: Interner> HasInterner for FnSig<I>
[src]type Interner = I
impl<I: Interner> HasInterner for FnSubst<I>
[src]
impl<I: Interner> HasInterner for FnSubst<I>
[src]type Interner = I
impl<I: Interner> HasInterner for GenericArg<I>
[src]
impl<I: Interner> HasInterner for GenericArg<I>
[src]type Interner = I
impl<I: Interner> HasInterner for Goal<I>
[src]
impl<I: Interner> HasInterner for Goal<I>
[src]type Interner = I
impl<I: Interner> HasInterner for Goals<I>
[src]
impl<I: Interner> HasInterner for Goals<I>
[src]type Interner = I
impl<I: Interner> HasInterner for Lifetime<I>
[src]
impl<I: Interner> HasInterner for Lifetime<I>
[src]type Interner = I
impl<I: Interner> HasInterner for LifetimeOutlives<I>
[src]
impl<I: Interner> HasInterner for LifetimeOutlives<I>
[src]type Interner = I
impl<I: Interner> HasInterner for OpaqueTy<I>
[src]
impl<I: Interner> HasInterner for OpaqueTy<I>
[src]type Interner = I
impl<I: Interner> HasInterner for ProgramClause<I>
[src]
impl<I: Interner> HasInterner for ProgramClause<I>
[src]type Interner = I
impl<I: Interner> HasInterner for ProgramClauseData<I>
[src]
impl<I: Interner> HasInterner for ProgramClauseData<I>
[src]type Interner = I
impl<I: Interner> HasInterner for ProgramClauseImplication<I>
[src]
impl<I: Interner> HasInterner for ProgramClauseImplication<I>
[src]type Interner = I
impl<I: Interner> HasInterner for ProgramClauses<I>
[src]
impl<I: Interner> HasInterner for ProgramClauses<I>
[src]type Interner = I
impl<I: Interner> HasInterner for ProjectionTy<I>
[src]
impl<I: Interner> HasInterner for ProjectionTy<I>
[src]type Interner = I
impl<I: Interner> HasInterner for QuantifiedWhereClauses<I>
[src]
impl<I: Interner> HasInterner for QuantifiedWhereClauses<I>
[src]type Interner = I
impl<I: Interner> HasInterner for Substitution<I>
[src]
impl<I: Interner> HasInterner for Substitution<I>
[src]type Interner = I
impl<I: Interner> HasInterner for TraitRef<I>
[src]
impl<I: Interner> HasInterner for TraitRef<I>
[src]type Interner = I
impl<I: Interner> HasInterner for Ty<I>
[src]
impl<I: Interner> HasInterner for Ty<I>
[src]type Interner = I
impl<I: Interner> HasInterner for TyData<I>
[src]
impl<I: Interner> HasInterner for TyData<I>
[src]type Interner = I
impl<I: Interner> HasInterner for TypeOutlives<I>
[src]
impl<I: Interner> HasInterner for TypeOutlives<I>
[src]type Interner = I
impl<I: Interner> HasInterner for VariableKinds<I>
[src]
impl<I: Interner> HasInterner for VariableKinds<I>
[src]type Interner = I
impl<I: Interner> HasInterner for Variances<I>
[src]
impl<I: Interner> HasInterner for Variances<I>
[src]type Interner = I
impl<I: Interner, T> HasInterner for WithKind<I, T>
[src]
impl<I: Interner, T> HasInterner for WithKind<I, T>
[src]type Interner = I
impl<T: HasInterner> HasInterner for Binders<T>
[src]
impl<T: HasInterner> HasInterner for Binders<T>
[src]impl<T: HasInterner> HasInterner for Canonical<T>
[src]
impl<T: HasInterner> HasInterner for Canonical<T>
[src]