pub trait SynthesisableFunction<A: ASTImplementation> {
    // Required methods
    fn get_name(&self) -> Option<&str>;
    fn get_position(&self) -> Span;
    fn has_body(&self) -> bool;
    fn type_parameters<T: ReadFromFS>(
        &self,
        environment: &mut Environment<'_>,
        checking_data: &mut CheckingData<'_, T, A>,
    ) -> Option<GenericTypeParameters>;
    fn this_constraint<T: ReadFromFS>(
        &self,
        environment: &mut Environment<'_>,
        checking_data: &mut CheckingData<'_, T, A>,
    ) -> Option<TypeId>;
    fn super_constraint<T: ReadFromFS>(
        &self,
        environment: &mut Environment<'_>,
        checking_data: &mut CheckingData<'_, T, A>,
    ) -> Option<TypeId>;
    fn parameters<T: ReadFromFS>(
        &self,
        environment: &mut Environment<'_>,
        checking_data: &mut CheckingData<'_, T, A>,
        expected_parameters: Option<&SynthesisedParameters>,
    ) -> SynthesisedParameters;
    fn return_type_annotation<T: ReadFromFS>(
        &self,
        environment: &mut Environment<'_>,
        checking_data: &mut CheckingData<'_, T, A>,
    ) -> Option<ReturnType>;
    fn body<T: ReadFromFS>(
        &self,
        environment: &mut Environment<'_>,
        checking_data: &mut CheckingData<'_, T, A>,
    );

    // Provided method
    fn id(&self, source_id: SourceId) -> FunctionId { ... }
}
Expand description

Covers both actual functions and

Required Methods§

source

fn get_name(&self) -> Option<&str>

For debugging only

source

fn get_position(&self) -> Span

For debugging only

source

fn has_body(&self) -> bool

source

fn type_parameters<T: ReadFromFS>( &self, environment: &mut Environment<'_>, checking_data: &mut CheckingData<'_, T, A>, ) -> Option<GenericTypeParameters>

THIS FUNCTION IS EXPECTED TO PUT THE TYPE PARAMETERS INTO THE ENVIRONMENT WHILE SYNTHESISING THEM

source

fn this_constraint<T: ReadFromFS>( &self, environment: &mut Environment<'_>, checking_data: &mut CheckingData<'_, T, A>, ) -> Option<TypeId>

source

fn super_constraint<T: ReadFromFS>( &self, environment: &mut Environment<'_>, checking_data: &mut CheckingData<'_, T, A>, ) -> Option<TypeId>

For object literals

source

fn parameters<T: ReadFromFS>( &self, environment: &mut Environment<'_>, checking_data: &mut CheckingData<'_, T, A>, expected_parameters: Option<&SynthesisedParameters>, ) -> SynthesisedParameters

THIS FUNCTION IS EXPECTED TO PUT THE PARAMETERS INTO THE ENVIRONMENT WHILE SYNTHESISING THEM

source

fn return_type_annotation<T: ReadFromFS>( &self, environment: &mut Environment<'_>, checking_data: &mut CheckingData<'_, T, A>, ) -> Option<ReturnType>

source

fn body<T: ReadFromFS>( &self, environment: &mut Environment<'_>, checking_data: &mut CheckingData<'_, T, A>, )

Returned type is extracted from events, thus doesn’t expect anything in return

Provided Methods§

source

fn id(&self, source_id: SourceId) -> FunctionId

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<U: FunctionBased + 'static> SynthesisableFunction<EznoParser> for FunctionBase<U>
where U::Body: SynthesisableFunctionBody,

source§

fn get_position(&self) -> Span

source§

fn get_name(&self) -> Option<&str>

source§

fn has_body(&self) -> bool

source§

fn type_parameters<T: ReadFromFS>( &self, environment: &mut Environment<'_>, checking_data: &mut CheckingData<'_, T, EznoParser>, ) -> Option<GenericTypeParameters>

source§

fn this_constraint<T: ReadFromFS>( &self, environment: &mut Environment<'_>, checking_data: &mut CheckingData<'_, T, EznoParser>, ) -> Option<TypeId>

source§

fn super_constraint<T: ReadFromFS>( &self, environment: &mut Environment<'_>, checking_data: &mut CheckingData<'_, T, EznoParser>, ) -> Option<TypeId>

source§

fn parameters<T: ReadFromFS>( &self, environment: &mut Environment<'_>, checking_data: &mut CheckingData<'_, T, EznoParser>, expected_parameters: Option<&SynthesisedParameters>, ) -> SynthesisedParameters

source§

fn return_type_annotation<T: ReadFromFS>( &self, environment: &mut Environment<'_>, checking_data: &mut CheckingData<'_, T, EznoParser>, ) -> Option<ReturnType>

source§

fn body<T: ReadFromFS>( &self, environment: &mut Environment<'_>, checking_data: &mut CheckingData<'_, T, EznoParser>, )

Implementors§