[−][src]Enum chalk_ir::TypeName
Different kinds of Rust types.
Variants
Adt(AdtId<I>)Abstract data types, i.e., structs, unions, or enumerations.
For example, a type like Vec<T>.
AssociatedType(AssocTypeId<I>)an associated type like Iterator::Item; see AssociatedType for details
Scalar(Scalar)a scalar type like bool or u32
Tuple(usize)a tuple of the given arity
an array type like [T; N]
a slice type like [T]
Raw(Mutability)a raw pointer type like *const T or *mut T
Ref(Mutability)a reference type like &T or &mut T
OpaqueType(OpaqueTyId<I>)a placeholder for opaque types like impl Trait
FnDef(FnDefId<I>)a function definition
the string primitive type
the never type !
Closure(ClosureId<I>)A closure.
This can be used to represent an error, e.g. during name resolution of a type. Chalk itself will not produce this, just pass it through when given.
Trait Implementations
impl<I> CastTo<TypeName<I>> for AdtId<I> where
I: Interner, [src]
I: Interner,
impl<I> CastTo<TypeName<I>> for FnDefId<I> where
I: Interner, [src]
I: Interner,
impl<I> CastTo<TypeName<I>> for OpaqueTyId<I> where
I: Interner, [src]
I: Interner,
impl<I: Clone + Interner> Clone for TypeName<I>[src]
impl<I: Copy + Interner> Copy for TypeName<I>[src]
impl<I: Interner> Debug for TypeName<I>[src]
impl<I: Eq + Interner> Eq for TypeName<I>[src]
impl<I: Interner, _TI> Fold<I, _TI> for TypeName<I> where
_TI: TargetInterner<I>, [src]
_TI: TargetInterner<I>,
type Result = TypeName<_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 TypeName<I>[src]
type Interner = I
The interner associated with the type.
impl<I: Hash + Interner> Hash for TypeName<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: Ord + Interner> Ord for TypeName<I>[src]
fn cmp(&self, other: &TypeName<I>) -> Ordering[src]
#[must_use]fn max(self, other: Self) -> Self1.21.0[src]
#[must_use]fn min(self, other: Self) -> Self1.21.0[src]
#[must_use]fn clamp(self, min: Self, max: Self) -> Self[src]
impl<I: PartialEq + Interner> PartialEq<TypeName<I>> for TypeName<I>[src]
impl<I: PartialOrd + Interner> PartialOrd<TypeName<I>> for TypeName<I>[src]
fn partial_cmp(&self, other: &TypeName<I>) -> Option<Ordering>[src]
fn lt(&self, other: &TypeName<I>) -> bool[src]
fn le(&self, other: &TypeName<I>) -> bool[src]
fn gt(&self, other: &TypeName<I>) -> bool[src]
fn ge(&self, other: &TypeName<I>) -> bool[src]
impl<I: Interner> StructuralEq for TypeName<I>[src]
impl<I: Interner> StructuralPartialEq for TypeName<I>[src]
impl<I: Interner> Visit<I> for TypeName<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 TypeName<I>[src]
Auto Trait Implementations
impl<I> RefUnwindSafe for TypeName<I> where
<I as Interner>::DefId: RefUnwindSafe,
<I as Interner>::InternedAdtId: RefUnwindSafe,
<I as Interner>::DefId: RefUnwindSafe,
<I as Interner>::InternedAdtId: RefUnwindSafe,
impl<I> Send for TypeName<I> where
<I as Interner>::DefId: Send,
<I as Interner>::InternedAdtId: Send,
<I as Interner>::DefId: Send,
<I as Interner>::InternedAdtId: Send,
impl<I> Sync for TypeName<I> where
<I as Interner>::DefId: Sync,
<I as Interner>::InternedAdtId: Sync,
<I as Interner>::DefId: Sync,
<I as Interner>::InternedAdtId: Sync,
impl<I> Unpin for TypeName<I> where
<I as Interner>::DefId: Unpin,
<I as Interner>::InternedAdtId: Unpin,
<I as Interner>::DefId: Unpin,
<I as Interner>::InternedAdtId: Unpin,
impl<I> UnwindSafe for TypeName<I> where
<I as Interner>::DefId: UnwindSafe,
<I as Interner>::InternedAdtId: UnwindSafe,
<I as Interner>::DefId: UnwindSafe,
<I as Interner>::InternedAdtId: 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>,