pub trait SynthesisableFunction<A: ASTImplementation> {
    // Required methods
    fn id(&self, source_id: SourceId) -> FunctionId;
    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<(TypeId, SpanWithSource)>;
    fn body<T: ReadFromFS>(
        &self,
        environment: &mut Environment<'_>,
        checking_data: &mut CheckingData<'_, T, A>
    );
}
Expand description

Covers both actual functions and

Required Methods§

source

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

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<(TypeId, SpanWithSource)>

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

Object Safety§

This trait is not object safe.

Implementors§