pub struct TypeChecker { /* private fields */ }Expand description
Type checker (trusted kernel)
Implementations§
Source§impl TypeChecker
impl TypeChecker
Sourcepub fn infer(
&mut self,
arena: &mut Arena,
levels: &mut LevelArena,
env: &Environment,
ctx: &Context,
term: TermId,
) -> Result<TermId>
pub fn infer( &mut self, arena: &mut Arena, levels: &mut LevelArena, env: &Environment, ctx: &Context, term: TermId, ) -> Result<TermId>
Infer the type of a term
This is the heart of the type checker: Γ ⊢ t : ?
Sourcepub fn check(
&mut self,
arena: &mut Arena,
levels: &mut LevelArena,
env: &Environment,
ctx: &Context,
term: TermId,
expected_ty: TermId,
) -> Result<()>
pub fn check( &mut self, arena: &mut Arena, levels: &mut LevelArena, env: &Environment, ctx: &Context, term: TermId, expected_ty: TermId, ) -> Result<()>
Check that a term has an expected type
Γ ⊢ t : T (checking mode)
Sourcepub fn check_declaration(
&mut self,
arena: &mut Arena,
levels: &mut LevelArena,
env: &Environment,
decl: &Declaration,
) -> Result<()>
pub fn check_declaration( &mut self, arena: &mut Arena, levels: &mut LevelArena, env: &Environment, decl: &Declaration, ) -> Result<()>
Verify a declaration is well-typed before adding to environment
Trait Implementations§
Auto Trait Implementations§
impl Freeze for TypeChecker
impl RefUnwindSafe for TypeChecker
impl Send for TypeChecker
impl Sync for TypeChecker
impl Unpin for TypeChecker
impl UnwindSafe for TypeChecker
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more