Trait rustc::middle::trans::cleanup::CleanupMethods[src]
pub trait CleanupMethods<'a> {
fn push_ast_cleanup_scope(&self, id: NodeId);
fn push_loop_cleanup_scope(&self, id: NodeId, exits: [&'a Block<'a>, ..EXIT_MAX]);
fn push_custom_cleanup_scope(&self) -> CustomScopeIndex;
fn pop_and_trans_ast_cleanup_scope(&self, bcx: &'a Block<'a>, cleanup_scope: NodeId) -> &'a Block<'a>;
fn pop_loop_cleanup_scope(&self, cleanup_scope: NodeId);
fn pop_custom_cleanup_scope(&self, custom_scope: CustomScopeIndex);
fn pop_and_trans_custom_cleanup_scope(&self, bcx: &'a Block<'a>, custom_scope: CustomScopeIndex) -> &'a Block<'a>;
fn top_loop_scope(&self) -> NodeId;
fn normal_exit_block(&'a self, cleanup_scope: NodeId, exit: uint) -> BasicBlockRef;
fn return_exit_block(&'a self) -> BasicBlockRef;
fn schedule_drop_mem(&self, cleanup_scope: ScopeId, val: ValueRef, ty: t);
fn schedule_drop_immediate(&self, cleanup_scope: ScopeId, val: ValueRef, ty: t);
fn schedule_free_value(&self, cleanup_scope: ScopeId, val: ValueRef, heap: Heap, content_ty: t);
fn schedule_clean(&self, cleanup_scope: ScopeId, cleanup: Box<Cleanup>);
fn schedule_clean_in_ast_scope(&self, cleanup_scope: NodeId, cleanup: Box<Cleanup>);
fn schedule_clean_in_custom_scope(&self, custom_scope: CustomScopeIndex, cleanup: Box<Cleanup>);
fn needs_invoke(&self) -> bool;
fn get_landing_pad(&'a self) -> BasicBlockRef;
}
Required Methods
fn push_ast_cleanup_scope(&self, id: NodeId)
fn push_loop_cleanup_scope(&self, id: NodeId, exits: [&'a Block<'a>, ..EXIT_MAX])
fn push_custom_cleanup_scope(&self) -> CustomScopeIndex
fn pop_and_trans_ast_cleanup_scope(&self, bcx: &'a Block<'a>, cleanup_scope: NodeId) -> &'a Block<'a>
fn pop_loop_cleanup_scope(&self, cleanup_scope: NodeId)
fn pop_custom_cleanup_scope(&self, custom_scope: CustomScopeIndex)
fn pop_and_trans_custom_cleanup_scope(&self, bcx: &'a Block<'a>, custom_scope: CustomScopeIndex) -> &'a Block<'a>
fn top_loop_scope(&self) -> NodeId
fn normal_exit_block(&'a self, cleanup_scope: NodeId, exit: uint) -> BasicBlockRef
fn return_exit_block(&'a self) -> BasicBlockRef
fn schedule_drop_mem(&self, cleanup_scope: ScopeId, val: ValueRef, ty: t)
fn schedule_drop_immediate(&self, cleanup_scope: ScopeId, val: ValueRef, ty: t)
fn schedule_free_value(&self, cleanup_scope: ScopeId, val: ValueRef, heap: Heap, content_ty: t)
fn schedule_clean(&self, cleanup_scope: ScopeId, cleanup: Box<Cleanup>)
fn schedule_clean_in_ast_scope(&self, cleanup_scope: NodeId, cleanup: Box<Cleanup>)
fn schedule_clean_in_custom_scope(&self, custom_scope: CustomScopeIndex, cleanup: Box<Cleanup>)
fn needs_invoke(&self) -> bool
fn get_landing_pad(&'a self) -> BasicBlockRef
Implementors
impl<'a> CleanupMethods<'a> for FunctionContext<'a>