[][src]Trait gluon::compiler_pipeline::Typecheckable

pub trait Typecheckable: Sized {
    type Expr: BorrowMut<OwnedExpr<Symbol>>;
#[must_use]    fn typecheck_expected<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'life6, 'async_trait>(
        self,
        compiler: &'life0 mut ModuleCompiler<'life1, 'life2>,
        thread: &'life3 Thread,
        file: &'life4 str,
        expr_str: &'life5 str,
        expected_type: Option<&'life6 ArcType>
    ) -> Pin<Box<dyn Future<Output = SalvageResult<TypecheckValue<Self::Expr>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        'life4: 'async_trait,
        'life5: 'async_trait,
        'life6: 'async_trait,
        Self: 'async_trait
; #[must_use] fn typecheck<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'async_trait>(
        self,
        compiler: &'life0 mut ModuleCompiler<'life1, 'life2>,
        thread: &'life3 Thread,
        file: &'life4 str,
        expr_str: &'life5 str
    ) -> Pin<Box<dyn Future<Output = SalvageResult<TypecheckValue<Self::Expr>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        'life4: 'async_trait,
        'life5: 'async_trait,
        Self: Send + 'async_trait
, { ... } }

Associated Types

Loading content...

Required methods

#[must_use]fn typecheck_expected<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'life6, 'async_trait>(
    self,
    compiler: &'life0 mut ModuleCompiler<'life1, 'life2>,
    thread: &'life3 Thread,
    file: &'life4 str,
    expr_str: &'life5 str,
    expected_type: Option<&'life6 ArcType>
) -> Pin<Box<dyn Future<Output = SalvageResult<TypecheckValue<Self::Expr>>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    'life2: 'async_trait,
    'life3: 'async_trait,
    'life4: 'async_trait,
    'life5: 'async_trait,
    'life6: 'async_trait,
    Self: 'async_trait, 

Loading content...

Provided methods

#[must_use]fn typecheck<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'async_trait>(
    self,
    compiler: &'life0 mut ModuleCompiler<'life1, 'life2>,
    thread: &'life3 Thread,
    file: &'life4 str,
    expr_str: &'life5 str
) -> Pin<Box<dyn Future<Output = SalvageResult<TypecheckValue<Self::Expr>>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    'life2: 'async_trait,
    'life3: 'async_trait,
    'life4: 'async_trait,
    'life5: 'async_trait,
    Self: Send + 'async_trait, 

Loading content...

Implementors

impl<E> Typecheckable for InfixReparsed<E> where
    E: BorrowMut<OwnedExpr<Symbol>> + Send
[src]

type Expr = E

impl<T> Typecheckable for T where
    T: InfixReparseable + Send,
    T::Expr: Send
[src]

type Expr = T::Expr

Loading content...