[][src]Struct chalk_solve::rust_ir::FnDefInputsAndOutputDatum

pub struct FnDefInputsAndOutputDatum<I: Interner> {
    pub argument_types: Vec<Ty<I>>,
    pub return_type: Ty<I>,
}

Represents the inputs and outputs on a FnDefDatum. This is split from the where clauses, since these can contain bound lifetimes.

Fields

argument_types: Vec<Ty<I>>

Types of the function's arguments

This example is not tested
fn foo<T>(bar: i32, baz: T);
               ^^^       ^
return_type: Ty<I>

Return type of the function

This example is not tested
fn foo<T>() -> i32;
               ^^^

Trait Implementations

impl<I: Clone + Interner> Clone for FnDefInputsAndOutputDatum<I>[src]

impl<I: Debug + Interner> Debug for FnDefInputsAndOutputDatum<I>[src]

impl<I: Eq + Interner> Eq for FnDefInputsAndOutputDatum<I>[src]

impl<I: Interner, _TI> Fold<I, _TI> for FnDefInputsAndOutputDatum<I> where
    _TI: TargetInterner<I>, 
[src]

type Result = FnDefInputsAndOutputDatum<_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

impl<I: Interner> HasInterner for FnDefInputsAndOutputDatum<I>[src]

type Interner = I

The interner associated with the type.

impl<I: Hash + Interner> Hash for FnDefInputsAndOutputDatum<I>[src]

impl<I: PartialEq + Interner> PartialEq<FnDefInputsAndOutputDatum<I>> for FnDefInputsAndOutputDatum<I>[src]

impl<I: Interner> StructuralEq for FnDefInputsAndOutputDatum<I>[src]

impl<I: Interner> StructuralPartialEq for FnDefInputsAndOutputDatum<I>[src]

impl<I: Interner> Visit<I> for FnDefInputsAndOutputDatum<I>[src]

Auto Trait Implementations

impl<I> RefUnwindSafe for FnDefInputsAndOutputDatum<I> where
    <I as Interner>::InternedType: RefUnwindSafe

impl<I> Send for FnDefInputsAndOutputDatum<I> where
    <I as Interner>::InternedType: Send

impl<I> Sync for FnDefInputsAndOutputDatum<I> where
    <I as Interner>::InternedType: Sync

impl<I> Unpin for FnDefInputsAndOutputDatum<I> where
    <I as Interner>::InternedType: Unpin

impl<I> UnwindSafe for FnDefInputsAndOutputDatum<I> where
    <I as Interner>::InternedType: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Cast for T[src]

impl<Q, K> Equivalent<K> for Q where
    K: Borrow<Q> + ?Sized,
    Q: Eq + ?Sized
[src]

impl<T> From<T> for T[src]

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, I> Shift<I> for T where
    I: Interner,
    T: Fold<I, I>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T, I> VisitExt<I> for T where
    I: Interner,
    T: Visit<I>, 
[src]