Skip to main content

TypeExpression

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.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl TypeExpression for Expr

Source§

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

Source§

impl TypeExpression for Pat

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 Symbol

Source§

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

Source§

impl TypeExpression for [Symbol]

Source§

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

Source§

impl<T: TypeExpression<U> + AstNode, U, A: AstTypes> TypeExpression<U> for At<T, A>

Source§

fn evaluate(&self, table: &mut Table, node: Handle) -> Result<U, 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§