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