pub trait OptimizationPass {
// Required methods
fn name(&self) -> &str;
fn description(&self) -> &str;
fn optimization_level(&self) -> OptimizationLevel;
fn optimize(
&mut self,
ast: &mut Program,
) -> Result<OptimizationResult, CompilerError>;
fn should_apply(&self, context: &OptimizationContext) -> bool;
fn dependencies(&self) -> Vec<String>;
}Expand description
Optimization pass trait
Required Methods§
fn name(&self) -> &str
fn description(&self) -> &str
fn optimization_level(&self) -> OptimizationLevel
fn optimize( &mut self, ast: &mut Program, ) -> Result<OptimizationResult, CompilerError>
fn should_apply(&self, context: &OptimizationContext) -> bool
fn dependencies(&self) -> Vec<String>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".