struct SemanticAnalyzer {Show 24 fields
runtime_expr_ids: Vec<ExprId>,
meta_expr_ids: Vec<MetaExprId>,
meta_stmt_ids: Vec<MetaStmtId>,
builder_ids: Vec<MetaExprId>,
runtime_function_names: Vec<String>,
meta_function_signatures: BTreeMap<String, Vec<TypeExpr>>,
meta_function_return_types: BTreeMap<String, TypeExpr>,
meta_function_inferred_returns: BTreeMap<String, MetaType>,
meta_function_names: Vec<String>,
struct_names: Vec<String>,
extern_module_names: Vec<String>,
next_runtime_expr: usize,
next_meta_expr: usize,
next_meta_stmt: usize,
next_builder: usize,
builder_envs: SecondaryMap<MetaExprId, Option<Vec<BuilderBindingInfo>>>,
runtime_name_resolution: SecondaryMap<ExprId, Option<ResolvedName>>,
meta_name_resolution: SecondaryMap<MetaExprId, Option<ResolvedName>>,
runtime_expr_types: SecondaryMap<ExprId, Option<TypeExpr>>,
meta_expr_types: SecondaryMap<MetaExprId, Option<MetaType>>,
meta_call_info: SecondaryMap<MetaExprId, Option<MetaCallInfo>>,
meta_match_info: SecondaryMap<MetaStmtId, Option<MetaMatchInfo>>,
issues: Vec<(MetaExprId, SemanticIssue)>,
meta_function_issues: BTreeMap<String, SemanticIssue>,
}Fields§
§runtime_expr_ids: Vec<ExprId>§meta_expr_ids: Vec<MetaExprId>§meta_stmt_ids: Vec<MetaStmtId>§builder_ids: Vec<MetaExprId>§runtime_function_names: Vec<String>§meta_function_signatures: BTreeMap<String, Vec<TypeExpr>>§meta_function_return_types: BTreeMap<String, TypeExpr>§meta_function_inferred_returns: BTreeMap<String, MetaType>§meta_function_names: Vec<String>§struct_names: Vec<String>§extern_module_names: Vec<String>§next_runtime_expr: usize§next_meta_expr: usize§next_meta_stmt: usize§next_builder: usize§builder_envs: SecondaryMap<MetaExprId, Option<Vec<BuilderBindingInfo>>>§runtime_name_resolution: SecondaryMap<ExprId, Option<ResolvedName>>§meta_name_resolution: SecondaryMap<MetaExprId, Option<ResolvedName>>§runtime_expr_types: SecondaryMap<ExprId, Option<TypeExpr>>§meta_expr_types: SecondaryMap<MetaExprId, Option<MetaType>>§meta_call_info: SecondaryMap<MetaExprId, Option<MetaCallInfo>>§meta_match_info: SecondaryMap<MetaStmtId, Option<MetaMatchInfo>>§issues: Vec<(MetaExprId, SemanticIssue)>§meta_function_issues: BTreeMap<String, SemanticIssue>Implementations§
Source§impl SemanticAnalyzer
impl SemanticAnalyzer
fn visit_program(&mut self, program: &Program)
fn infer_meta_function_returns(&mut self, functions: &[MetaFunctionDecl])
fn infer_meta_block_result_type( &self, block: &MetaBlock, meta_env: &mut Vec<(String, Option<MetaType>)>, ) -> Option<MetaType>
fn visit_block( &mut self, block: &Block, runtime_env: &mut Vec<(String, Option<TypeExpr>)>, meta_env: &mut Vec<(String, Option<MetaType>)>, )
fn visit_stmt( &mut self, stmt: &Stmt, runtime_env: &mut Vec<(String, Option<TypeExpr>)>, meta_env: &mut Vec<(String, Option<MetaType>)>, )
fn visit_expr( &mut self, expr: &Expr, runtime_env: &mut Vec<(String, Option<TypeExpr>)>, meta_env: &mut Vec<(String, Option<MetaType>)>, )
fn visit_meta_block( &mut self, block: &MetaBlock, runtime_env: &mut Vec<(String, Option<TypeExpr>)>, meta_env: &mut Vec<(String, Option<MetaType>)>, )
fn visit_meta_stmt( &mut self, stmt: &MetaStmt, runtime_env: &mut Vec<(String, Option<TypeExpr>)>, meta_env: &mut Vec<(String, Option<MetaType>)>, )
fn visit_meta_expr( &mut self, expr: &MetaExpr, runtime_env: &[(String, Option<TypeExpr>)], meta_env: &[(String, Option<MetaType>)], )
fn record_meta_issue( &mut self, id: MetaExprId, expr: &MetaExpr, runtime_env: &[(String, Option<TypeExpr>)], resolved_name: Option<&ResolvedName>, )
fn record_meta_call_issues( &mut self, id: MetaExprId, expr: &MetaExpr, meta_env: &[(String, Option<MetaType>)], )
fn infer_meta_expr_type_with_env( &self, expr: &MetaExpr, meta_env: &[(String, Option<MetaType>)], ) -> Option<MetaType>
Auto Trait Implementations§
impl Freeze for SemanticAnalyzer
impl RefUnwindSafe for SemanticAnalyzer
impl Send for SemanticAnalyzer
impl Sync for SemanticAnalyzer
impl Unpin for SemanticAnalyzer
impl UnwindSafe for SemanticAnalyzer
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