pub struct Resolver<'a> {
pub parent: &'a mut ResolvedProgram,
pub current_module: &'a mut ResolvedModule,
pub block_scope_stack: Vec<BlockScope>,
}
Fields§
§parent: &'a mut ResolvedProgram
§current_module: &'a mut ResolvedModule
§block_scope_stack: Vec<BlockScope>
Implementations§
Source§impl<'a> Resolver<'a>
impl<'a> Resolver<'a>
pub fn new( parent: &'a mut ResolvedProgram, current_module: &'a mut ResolvedModule, ) -> Resolver<'a>
pub fn resolve_array_type( &mut self, ast_type: &Type, ) -> Result<Rc<ResolvedArrayType>, ResolveError>
pub fn resolve_type( &mut self, ast_type: &Type, ) -> Result<ResolvedType, ResolveError>
pub fn find_module(&self, path: &ModulePath) -> Option<&Rc<ResolvedModule>>
pub fn find_struct_type( &self, type_name: &QualifiedTypeIdentifier, ) -> Result<Rc<RefCell<ResolvedStructType>>, ResolveError>
pub fn find_struct_type_local_mut( &mut self, type_name: &LocalTypeIdentifier, ) -> Result<&Rc<RefCell<ResolvedStructType>>, ResolveError>
pub fn resolve_struct_type_definition( &mut self, ast_struct: &StructType, ) -> Result<Rc<RefCell<ResolvedStructType>>, ResolveError>
pub fn resolve_and_set_definition( &mut self, ast_def: &Definition, ) -> Result<(), ResolveError>
pub fn resolve_statements( &mut self, statements: &Vec<Statement>, ) -> Result<Vec<ResolvedStatement>, ResolveError>
Auto Trait Implementations§
impl<'a> Freeze for Resolver<'a>
impl<'a> !RefUnwindSafe for Resolver<'a>
impl<'a> !Send for Resolver<'a>
impl<'a> !Sync for Resolver<'a>
impl<'a> Unpin for Resolver<'a>
impl<'a> !UnwindSafe for Resolver<'a>
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