Struct rustc::middle::borrowck::move_data::FlowedMoveData[src]

pub struct FlowedMoveData<'a> {
    pub move_data: MoveData,
    pub dfcx_moves: MoveDataFlow<'a>,
    pub dfcx_assign: AssignDataFlow<'a>,
}

Fields

move_data
dfcx_moves
dfcx_assign

Methods

impl<'a> FlowedMoveData<'a>

fn new(move_data: MoveData, tcx: &'a ctxt, cfg: &'a CFG, id_range: IdRange, decl: &FnDecl, body: &Block) -> FlowedMoveData<'a>

fn each_path_moved_by(&self, id: NodeId, f: |&Move, &LoanPath| -> bool) -> bool

Iterates through each path moved by id

fn kind_of_move_of_path(&self, id: NodeId, loan_path: &Rc<LoanPath>) -> Option<MoveKind>

Returns the kind of a move of loan_path by id, if one exists.

fn each_move_of(&self, id: NodeId, loan_path: &Rc<LoanPath>, f: |&Move, &LoanPath| -> bool) -> bool

Iterates through each move of loan_path (or some base path of loan_path) that may have occurred on entry to id without an intervening assignment. In other words, any moves that would invalidate a reference to loan_path at location id.

fn is_assignee(&self, id: NodeId) -> bool

True if id is the id of the LHS of an assignment

fn each_assignment_of(&self, id: NodeId, loan_path: &Rc<LoanPath>, f: |&Assignment| -> bool) -> bool

Iterates through every assignment to loan_path that may have occurred on entry to id. loan_path must be a single variable.