pub fn modifies(&self, fun_target: &FunctionTarget<'_>) -> Vec<TempIndex> {
        use BorrowNode::*;
        use Bytecode::*;
        use Operation::*;
        match self {
            Assign(_, dest, ..)
            | Load(_, dest, ..)
            | Call(_, _, WriteBack(LocalRoot(dest)), ..)
            | Call(_, _, WriteBack(Reference(dest)), ..) => vec![*dest],
            Call(_, _, WriteRef, srcs) => vec![srcs[0]],
            Call(_, dests, Function(..), srcs) => {
                let mut res = dests.clone();
                for src in srcs {
                    if fun_target.get_local_type(*src).is_mutable_reference() {
                        res.push(*src);
                    }
                }
                res
            }
            Call(_, dests, ..) => dests.clone(),
            OnAbort(_, _, code) => vec![*code],
            _ => vec![],
        }
    }
/// Return the temporaries this instruction modifies. This includes references where the
/// instruction can have effect on.
Return the temporaries this instruction modifies. This includes references where the
instruction can have effect on.
Return the temporaries this instruction modifies . This includes references where the instruction can have effect on .
pub fn modifies(&self, fun_target: &FunctionTarget<'_>) -> Vec<TempIndex> {
        use BorrowNode::*;
        use Bytecode::*;
        use Operation::*;
        match self {
            Assign(_, dest, ..)
            | Load(_, dest, ..)
            | Call(_, _, WriteBack(LocalRoot(dest)), ..)
            | Call(_, _, WriteBack(Reference(dest)), ..) => vec![*dest],
            Call(_, _, WriteRef, srcs) => vec![srcs[0]],
            Call(_, dests, Function(..), srcs) => {
                let mut res = dests.clone();
                for src in srcs {
                    if fun_target.get_local_type(*src).is_mutable_reference() {
                        res.push(*src);
                    }
                }
                res
            }
            Call(_, dests, ..) => dests.clone(),
            OnAbort(_, _, code) => vec![*code],
            _ => vec![],
        }
    }
pub fn modifies ( & self , fun_target : & FunctionTarget < ' _ > ) -> Vec < TempIndex > { use BorrowNode :: * ; use Bytecode :: * ; use Operation :: * ; match self { Assign ( _ , dest , .. ) | Load ( _ , dest , .. ) | Call ( _ , _ , WriteBack ( LocalRoot ( dest ) ) , .. ) | Call ( _ , _ , WriteBack ( Reference ( dest ) ) , .. ) => vec ! [ dest ] , Call ( _ , _ , WriteRef , srcs ) => vec ! [ srcs [ 0 ] ] , Call ( _ , dests , Function ( .. ) , srcs ) => { let mut res = dests . clone ( ) ; for src in srcs { if fun_target . get_local_type ( * src ) . is_mutable_reference ( ) { res . push ( * src ) ; } } res } Call ( _ , dests , .. ) => dests . clone ( ) , OnAbort ( _ , _ , code ) => vec ! [ code ] , _ => vec ! [ ] , } }
Return the temporaries this instruction modifies.
Return the temporaries this instruction modifies .
&self
fun_target
&FunctionTarget<'_>