fn borrowed_locals(&self, code: &[Bytecode]) -> BTreeSet<TempIndex> {
        use Bytecode::*;
        code.iter()
            .filter_map(|bc| match bc {
                Call(_, _, Operation::BorrowLoc, srcs, _) => Some(srcs[0]),
                Call(_, _, Operation::WriteBack(BorrowNode::LocalRoot(src), ..), ..)
                | Call(_, _, Operation::IsParent(BorrowNode::LocalRoot(src), ..), ..) => Some(*src),
                Call(_, _, Operation::WriteBack(BorrowNode::Reference(src), ..), ..)
                | Call(_, _, Operation::IsParent(BorrowNode::Reference(src), ..), ..) => Some(*src),
                _ => None,
            })
            .collect()
    }
/// Compute the set of locals which are borrowed from or which are otherwise used to refer to.
/// We can't alias such locals to other locals because of reference semantics.
Compute the set of locals which are borrowed from or which are otherwise used to refer to.
We can't alias such locals to other locals because of reference semantics.
Compute the set of locals which are borrowed from or which are otherwise used to refer to . We can ' t alias such locals to other locals because of reference semantics .
fn borrowed_locals(&self, code: &[Bytecode]) -> BTreeSet<TempIndex> {
        use Bytecode::*;
        code.iter()
            .filter_map(|bc| match bc {
                Call(_, _, Operation::BorrowLoc, srcs, _) => Some(srcs[0]),
                Call(_, _, Operation::WriteBack(BorrowNode::LocalRoot(src), ..), ..)
                | Call(_, _, Operation::IsParent(BorrowNode::LocalRoot(src), ..), ..) => Some(*src),
                Call(_, _, Operation::WriteBack(BorrowNode::Reference(src), ..), ..)
                | Call(_, _, Operation::IsParent(BorrowNode::Reference(src), ..), ..) => Some(*src),
                _ => None,
            })
            .collect()
    }
fn borrowed_locals ( & self , code : & [ Bytecode ] ) -> BTreeSet < TempIndex > { use Bytecode :: * ; code . iter ( ) . filter_map ( | bc | match bc { Call ( _ , _ , Operation :: BorrowLoc , srcs , _ ) => Some ( srcs [ 0 ] ) , Call ( _ , _ , Operation :: WriteBack ( BorrowNode :: LocalRoot ( src ) , .. ) , .. ) | Call ( _ , _ , Operation :: IsParent ( BorrowNode :: LocalRoot ( src ) , .. ) , .. ) => Some ( * src ) , Call ( _ , _ , Operation :: WriteBack ( BorrowNode :: Reference ( src ) , .. ) , .. ) | Call ( _ , _ , Operation :: IsParent ( BorrowNode :: Reference ( src ) , .. ) , .. ) => Some ( * src ) , _ => None , } ) . collect ( ) }
Compute the set of locals which are borrowed from or which are otherwise used to refer to.
Compute the set of locals which are borrowed from or which are otherwise used to refer to .
&self
code
&[Bytecode]