cl_typeck::type_expression

Trait TypeExpression

Source
pub trait TypeExpression<Out = Handle> {
    // Required method
    fn evaluate(
        &self,
        table: &mut Table<'_>,
        node: Handle,
    ) -> Result<Out, Error>;
}
Expand description

A TypeExpression is a syntactic representation of a TypeKind, and is used to construct type bindings in a Table’s typing context.

Required Methods§

Source

fn evaluate(&self, table: &mut Table<'_>, node: Handle) -> Result<Out, Error>

Evaluates a type expression, recursively creating intermediate bindings.

Implementations on Foreign Types§

Source§

impl TypeExpression for TyKind

Source§

fn evaluate(&self, table: &mut Table<'_>, node: Handle) -> Result<Handle, Error>

Source§

impl TypeExpression for Path

Source§

fn evaluate(&self, table: &mut Table<'_>, node: Handle) -> Result<Handle, Error>

Source§

impl TypeExpression for Ty

Source§

fn evaluate(&self, table: &mut Table<'_>, node: Handle) -> Result<Handle, Error>

Source§

impl TypeExpression for TyArray

Source§

fn evaluate(&self, table: &mut Table<'_>, node: Handle) -> Result<Handle, Error>

Source§

impl TypeExpression for TyFn

Source§

fn evaluate(&self, table: &mut Table<'_>, node: Handle) -> Result<Handle, Error>

Source§

impl TypeExpression for TyRef

Source§

fn evaluate(&self, table: &mut Table<'_>, node: Handle) -> Result<Handle, Error>

Source§

impl TypeExpression for TySlice

Source§

fn evaluate(&self, table: &mut Table<'_>, node: Handle) -> Result<Handle, Error>

Source§

impl TypeExpression for TyTuple

Source§

fn evaluate(&self, table: &mut Table<'_>, node: Handle) -> Result<Handle, Error>

Source§

impl TypeExpression for [PathPart]

Source§

fn evaluate(&self, table: &mut Table<'_>, node: Handle) -> Result<Handle, Error>

Source§

impl<T: TypeExpression<U>, U> TypeExpression<Vec<U>> for [T]

Source§

fn evaluate(&self, table: &mut Table<'_>, node: Handle) -> Result<Vec<U>, Error>

Implementors§