pub struct TypeEnv { /* private fields */ }Implementations§
Source§impl TypeEnv
impl TypeEnv
pub fn new() -> Self
pub fn with_config(config: &LustConfig) -> Self
pub fn is_builtin_type(&self, name: &str) -> bool
pub fn push_scope(&mut self)
pub fn pop_scope(&mut self)
pub fn declare_variable(&mut self, name: String, ty: Type) -> Result<()>
pub fn lookup_variable(&self, name: &str) -> Option<Type>
pub fn refine_variable_type(&mut self, name: String, refined_type: Type)
pub fn record_generic_instance( &mut self, var_name: String, type_param: String, concrete_type: Type, )
pub fn lookup_generic_param( &self, var_name: &str, type_param: &str, ) -> Option<Type>
pub fn register_function( &mut self, name: String, sig: FunctionSignature, ) -> Result<()>
pub fn register_or_update_function( &mut self, name: String, sig: FunctionSignature, ) -> Result<()>
pub fn lookup_function(&self, name: &str) -> Option<&FunctionSignature>
pub fn function_signatures(&self) -> HashMap<String, FunctionSignature>
pub fn struct_definitions(&self) -> HashMap<String, StructDef>
pub fn enum_definitions(&self) -> HashMap<String, EnumDef>
pub fn register_struct(&mut self, s: &StructDef) -> Result<()>
pub fn lookup_struct(&self, name: &str) -> Option<&StructDef>
pub fn register_enum(&mut self, e: &EnumDef) -> Result<()>
pub fn lookup_enum(&self, name: &str) -> Option<&EnumDef>
pub fn register_trait(&mut self, t: &TraitDef) -> Result<()>
pub fn lookup_trait(&self, name: &str) -> Option<&TraitDef>
pub fn register_type_alias( &mut self, name: String, type_params: Vec<String>, target: Type, ) -> Result<()>
pub fn register_impl(&mut self, impl_block: &ImplBlock)
pub fn lookup_method( &self, type_name: &str, method_name: &str, ) -> Option<&FunctionDef>
pub fn lookup_struct_field( &self, struct_name: &str, field_name: &str, ) -> Option<Type>
pub fn type_implements_trait(&self, ty: &Type, trait_name: &str) -> bool
Auto Trait Implementations§
impl Freeze for TypeEnv
impl RefUnwindSafe for TypeEnv
impl Send for TypeEnv
impl Sync for TypeEnv
impl Unpin for TypeEnv
impl UnwindSafe for TypeEnv
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