[−][src]Struct chalk_ir::ApplicationTy
Normal Rust types, containing the type name and zero or more generic arguments.
For example, in Vec<u32> those would be Vec and [u32] respectively.
Fields
name: TypeName<I>The type name.
substitution: Substitution<I>The substitution containing the generic arguments.
Implementations
impl<I: Interner> ApplicationTy<I>[src]
pub fn debug<'a>(&'a self, interner: &'a I) -> ApplicationTyDebug<'a, I>[src]
Show debug output for the application type.
impl<I: Interner> ApplicationTy<I>[src]
pub fn intern(self, interner: &I) -> Ty<I>[src]
Create an interned type from this application type.
pub fn type_parameters<'a>(
&'a self,
interner: &'a I
) -> impl Iterator<Item = Ty<I>> + 'a[src]
&'a self,
interner: &'a I
) -> impl Iterator<Item = Ty<I>> + 'a
Gets an iterator of all type parameters.
pub fn first_type_parameter(&self, interner: &I) -> Option<Ty<I>>[src]
Gets the first type parameter.
pub fn len_type_parameters(&self, interner: &I) -> usize[src]
Gets the number of type parameters.
Trait Implementations
impl<I: Interner> CastTo<TyData<I>> for ApplicationTy<I>[src]
impl<I: Clone + Interner> Clone for ApplicationTy<I>[src]
fn clone(&self) -> ApplicationTy<I>[src]
fn clone_from(&mut self, source: &Self)1.0.0[src]
impl<I: Interner> Copy for ApplicationTy<I> where
I::InternedSubstitution: Copy, [src]
I::InternedSubstitution: Copy,
impl<I: Interner> Debug for ApplicationTy<I>[src]
impl<I: Eq + Interner> Eq for ApplicationTy<I>[src]
impl<I: Interner, _TI> Fold<I, _TI> for ApplicationTy<I> where
_TI: TargetInterner<I>, [src]
_TI: TargetInterner<I>,
type Result = ApplicationTy<_TI>
The type of value that will be produced once folding is done. Typically this is Self, unless Self contains borrowed values, in which case owned values are produced (for example, one can fold over a &T value where T: Fold, in which case you get back a T, not a &T). Read more
fn fold_with<'i>(
&self,
folder: &mut dyn Folder<'i, I, _TI>,
outer_binder: DebruijnIndex
) -> Fallible<Self::Result> where
I: 'i,
_TI: 'i, [src]
&self,
folder: &mut dyn Folder<'i, I, _TI>,
outer_binder: DebruijnIndex
) -> Fallible<Self::Result> where
I: 'i,
_TI: 'i,
impl<I: Interner> HasInterner for ApplicationTy<I>[src]
type Interner = I
The interner associated with the type.
impl<I: Hash + Interner> Hash for ApplicationTy<I>[src]
fn hash<__H: Hasher>(&self, state: &mut __H)[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher, 1.3.0[src]
H: Hasher,
impl<I: PartialEq + Interner> PartialEq<ApplicationTy<I>> for ApplicationTy<I>[src]
fn eq(&self, other: &ApplicationTy<I>) -> bool[src]
fn ne(&self, other: &ApplicationTy<I>) -> bool[src]
impl<I: Interner> StructuralEq for ApplicationTy<I>[src]
impl<I: Interner> StructuralPartialEq for ApplicationTy<I>[src]
impl<I: Interner> Visit<I> for ApplicationTy<I>[src]
fn visit_with<'i, R: VisitResult>(
&self,
visitor: &mut dyn Visitor<'i, I, Result = R>,
outer_binder: DebruijnIndex
) -> R where
I: 'i, [src]
&self,
visitor: &mut dyn Visitor<'i, I, Result = R>,
outer_binder: DebruijnIndex
) -> R where
I: 'i,
impl<I: Interner> Zip<I> for ApplicationTy<I>[src]
Auto Trait Implementations
impl<I> RefUnwindSafe for ApplicationTy<I> where
<I as Interner>::DefId: RefUnwindSafe,
<I as Interner>::InternedAdtId: RefUnwindSafe,
<I as Interner>::InternedSubstitution: RefUnwindSafe,
<I as Interner>::DefId: RefUnwindSafe,
<I as Interner>::InternedAdtId: RefUnwindSafe,
<I as Interner>::InternedSubstitution: RefUnwindSafe,
impl<I> Send for ApplicationTy<I> where
<I as Interner>::DefId: Send,
<I as Interner>::InternedAdtId: Send,
<I as Interner>::InternedSubstitution: Send,
<I as Interner>::DefId: Send,
<I as Interner>::InternedAdtId: Send,
<I as Interner>::InternedSubstitution: Send,
impl<I> Sync for ApplicationTy<I> where
<I as Interner>::DefId: Sync,
<I as Interner>::InternedAdtId: Sync,
<I as Interner>::InternedSubstitution: Sync,
<I as Interner>::DefId: Sync,
<I as Interner>::InternedAdtId: Sync,
<I as Interner>::InternedSubstitution: Sync,
impl<I> Unpin for ApplicationTy<I> where
<I as Interner>::DefId: Unpin,
<I as Interner>::InternedAdtId: Unpin,
<I as Interner>::InternedSubstitution: Unpin,
<I as Interner>::DefId: Unpin,
<I as Interner>::InternedAdtId: Unpin,
<I as Interner>::InternedSubstitution: Unpin,
impl<I> UnwindSafe for ApplicationTy<I> where
<I as Interner>::DefId: UnwindSafe,
<I as Interner>::InternedAdtId: UnwindSafe,
<I as Interner>::InternedSubstitution: UnwindSafe,
<I as Interner>::DefId: UnwindSafe,
<I as Interner>::InternedAdtId: UnwindSafe,
<I as Interner>::InternedSubstitution: UnwindSafe,
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<T> Cast for T[src]
fn cast<U>(self, interner: &U::Interner) -> U where
Self: CastTo<U>,
U: HasInterner, [src]
Self: CastTo<U>,
U: HasInterner,
impl<T, I> CouldMatch<T> for T where
I: Interner,
T: Zip<I> + HasInterner<Interner = I> + ?Sized, [src]
I: Interner,
T: Zip<I> + HasInterner<Interner = I> + ?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, I> Shift<I> for T where
I: Interner,
T: Fold<I, I>, [src]
I: Interner,
T: Fold<I, I>,
fn shifted_in(&Self, &I) -> <T as Fold<I, I>>::Result[src]
fn shifted_in_from(&Self, &I, DebruijnIndex) -> <T as Fold<I, I>>::Result[src]
fn shifted_out_to(
&Self,
&I,
DebruijnIndex
) -> Result<<T as Fold<I, I>>::Result, NoSolution>[src]
&Self,
&I,
DebruijnIndex
) -> Result<<T as Fold<I, I>>::Result, NoSolution>
fn shifted_out(&Self, &I) -> Result<<T as Fold<I, I>>::Result, NoSolution>[src]
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>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]
impl<T, I> VisitExt<I> for T where
I: Interner,
T: Visit<I>, [src]
I: Interner,
T: Visit<I>,