Trait kailua_types::ty::TypeResolver
[−]
[src]
pub trait TypeResolver: Report { fn context(&self) -> &TypeContext; fn context_mut(&mut self) -> &mut TypeContext; fn ty_from_name(&self, name: &Spanned<Name>) -> Result<Ty>; fn class_system_from_name(
&self,
name: &Spanned<Name>
) -> Result<Option<ClassSystemId>>; }
A superset of the type context that also provides type name resolution.
This is required for converting a syntax-level type ("kind") to the actual type.
Required Methods
fn context(&self) -> &TypeContext
Returns an immutable reference to associated type context.
fn context_mut(&mut self) -> &mut TypeContext
Returns a mutable reference to associated type context.
fn ty_from_name(&self, name: &Spanned<Name>) -> Result<Ty>
Resolves a type name to a type if any. The span is used for error reporting.
fn class_system_from_name(
&self,
name: &Spanned<Name>
) -> Result<Option<ClassSystemId>>
&self,
name: &Spanned<Name>
) -> Result<Option<ClassSystemId>>
Resolves a class system name to an identifier if any. The span is used for error reporting.
Implementors
impl<'a, R: TypeResolver + ?Sized> TypeResolver for &'a mut R