pub trait EvaluableTypeExpression {
    type Out;

    // Required method
    fn evaluate(
        &self,
        prj: &mut Project<'_>,
        parent: DefID
    ) -> Result<Self::Out, String>;
}
Expand description

Things that can be evaluated as a type expression

Required Associated Types§

source

type Out

The result of type expression evaluation

Required Methods§

source

fn evaluate( &self, prj: &mut Project<'_>, parent: DefID ) -> Result<Self::Out, String>

Implementations on Foreign Types§

source§

impl EvaluableTypeExpression for PathPart

§

type Out = DefID

source§

fn evaluate( &self, prj: &mut Project<'_>, parent: DefID ) -> Result<Self::Out, String>

source§

impl EvaluableTypeExpression for TyKind

§

type Out = DefID

source§

fn evaluate( &self, prj: &mut Project<'_>, parent: DefID ) -> Result<DefID, String>

source§

impl EvaluableTypeExpression for Path

§

type Out = DefID

source§

fn evaluate( &self, prj: &mut Project<'_>, parent: DefID ) -> Result<Self::Out, String>

source§

impl EvaluableTypeExpression for Ty

§

type Out = DefID

source§

fn evaluate(&self, prj: &mut Project<'_>, id: DefID) -> Result<DefID, String>

source§

impl EvaluableTypeExpression for TyFn

§

type Out = DefID

source§

fn evaluate( &self, prj: &mut Project<'_>, parent: DefID ) -> Result<DefID, String>

source§

impl EvaluableTypeExpression for TyRef

§

type Out = DefID

source§

fn evaluate( &self, prj: &mut Project<'_>, parent: DefID ) -> Result<DefID, String>

source§

impl EvaluableTypeExpression for TyTuple

§

type Out = DefID

source§

fn evaluate( &self, prj: &mut Project<'_>, parent: DefID ) -> Result<DefID, String>

source§

impl EvaluableTypeExpression for Sym

§

type Out = DefID

source§

fn evaluate( &self, prj: &mut Project<'_>, parent: DefID ) -> Result<Self::Out, String>

source§

impl<T: EvaluableTypeExpression> EvaluableTypeExpression for Option<T>

§

type Out = Option<<T as EvaluableTypeExpression>::Out>

source§

fn evaluate( &self, prj: &mut Project<'_>, parent: DefID ) -> Result<Self::Out, String>

source§

impl<T: EvaluableTypeExpression> EvaluableTypeExpression for [T]

§

type Out = Vec<<T as EvaluableTypeExpression>::Out>

source§

fn evaluate( &self, prj: &mut Project<'_>, parent: DefID ) -> Result<Self::Out, String>

source§

impl<T: EvaluableTypeExpression> EvaluableTypeExpression for Box<T>

§

type Out = <T as EvaluableTypeExpression>::Out

source§

fn evaluate( &self, prj: &mut Project<'_>, parent: DefID ) -> Result<Self::Out, String>

Implementors§

source§

impl<'a> EvaluableTypeExpression for cl_typeck::path::Path<'a>

§

type Out = DefID