pub trait UllbcPass: Sync {
// Provided methods
fn transform_body(&self, _ctx: &mut TransformCtx, _body: &mut ExprBody) { ... }
fn transform_function(&self, ctx: &mut TransformCtx, decl: &mut FunDecl) { ... }
fn transform_ctx(&self, ctx: &mut TransformCtx) { ... }
fn name(&self) -> &str { ... }
fn log_before_body(
&self,
ctx: &TransformCtx,
name: &Name,
body: Result<&ExprBody, &Opaque>,
) { ... }
}
Expand description
A pass that modifies ullbc bodies.
Provided Methods§
sourcefn transform_body(&self, _ctx: &mut TransformCtx, _body: &mut ExprBody)
fn transform_body(&self, _ctx: &mut TransformCtx, _body: &mut ExprBody)
Transform a body.
sourcefn transform_function(&self, ctx: &mut TransformCtx, decl: &mut FunDecl)
fn transform_function(&self, ctx: &mut TransformCtx, decl: &mut FunDecl)
Transform a function declaration. This forwards to transform_body
by default.
sourcefn transform_ctx(&self, ctx: &mut TransformCtx)
fn transform_ctx(&self, ctx: &mut TransformCtx)
Transform the given context. This forwards to the other methods by default.
sourcefn name(&self) -> &str
fn name(&self) -> &str
The name of the pass, used for debug logging. The default implementation uses the type name.
sourcefn log_before_body(
&self,
ctx: &TransformCtx,
name: &Name,
body: Result<&ExprBody, &Opaque>,
)
fn log_before_body( &self, ctx: &TransformCtx, name: &Name, body: Result<&ExprBody, &Opaque>, )
Log that the pass is about to be run on this body.