pub fn to_lvalue_datum_in_scope<'blk>(self,
                                          bcx: Block<'blk, 'tcx>,
                                          name: &str,
                                          scope: cleanup::ScopeId)
                                          -> DatumBlock<'blk, 'tcx, Lvalue> {
        let fcx = bcx.fcx;

        match self.kind.mode {
            ByRef => {
                add_rvalue_clean(ByRef, fcx, scope, self.val, self.ty);
                DatumBlock::new(bcx, Datum::new(
                    self.val,
                    self.ty,
                    Lvalue::new("datum::to_lvalue_datum_in_scope")))
            }

            ByValue => {
                lvalue_scratch_datum(
                    bcx, self.ty, name, InitAlloca::Dropped, scope,
                    |bcx, llval| {
                        debug!("populate call for Datum::to_lvalue_datum_in_scope \
                                self.ty={:?}", self.ty);
                        // do not call_lifetime_start here; the
                        // `InitAlloc::Dropped` will start scratch
                        // value's lifetime at open of function body.
                        let bcx = self.store_to(bcx, llval);
                        bcx.fcx.schedule_lifetime_end(scope, llval);
                        bcx
                    })
            }
        }
    }
/// Returns an lvalue datum (that is, a by ref datum with cleanup scheduled). If `self` is not
/// already an lvalue, cleanup will be scheduled in the temporary scope for `expr_id`.
Returns an lvalue datum (that is, a by ref datum with cleanup scheduled). If `self` is not
already an lvalue, cleanup will be scheduled in the temporary scope for `expr_id`.
Returns an lvalue datum ( that is a by ref datum with cleanup scheduled ) . If ` self ` is not already an lvalue cleanup will be scheduled in the temporary scope for ` expr_id ` .
pub fn to_lvalue_datum_in_scope<'blk>(self,
                                          bcx: Block<'blk, 'tcx>,
                                          name: &str,
                                          scope: cleanup::ScopeId)
                                          -> DatumBlock<'blk, 'tcx, Lvalue> {
        let fcx = bcx.fcx;
        match self.kind.mode {
            ByRef => {
                add_rvalue_clean(ByRef, fcx, scope, self.val, self.ty);
                DatumBlock::new(bcx, Datum::new(
                    self.val,
                    self.ty,
                    Lvalue::new("datum::to_lvalue_datum_in_scope")))
            }
            ByValue => {
                lvalue_scratch_datum(
                    bcx, self.ty, name, InitAlloca::Dropped, scope,
                    |bcx, llval| {
                        debug!("populate call for Datum::to_lvalue_datum_in_scope \
                                self.ty={:?}", self.ty);
                        // do not call_lifetime_start here; the
                        // `InitAlloc::Dropped` will start scratch
                        // value's lifetime at open of function body.
                        let bcx = self.store_to(bcx, llval);
                        bcx.fcx.schedule_lifetime_end(scope, llval);
                        bcx
                    })
            }
        }
    }
pub fn to_lvalue_datum_in_scope < ' blk > ( self , bcx : Block < ' blk , ' tcx > , name : & str , scope : cleanup :: ScopeId ) -> DatumBlock < ' blk , ' tcx , Lvalue > { let fcx = bcx . fcx ; match self . kind . mode { ByRef => { add_rvalue_clean ( ByRef , fcx , scope , self . val , self . ty ) ; DatumBlock :: new ( bcx , Datum :: new ( self . val , self . ty , Lvalue :: new ( " " ) ) ) } ByValue => { lvalue_scratch_datum ( bcx , self . ty , name , InitAlloca :: Dropped , scope , | bcx , llval | { debug ! ( " \
 " self ty ) ; // do not call_lifetime_start here; the // `InitAlloc::Dropped` will start scratch // value's lifetime at open of function body. let bcx = self . store_to ( bcx , llval ) ; bcx . fcx . schedule_lifetime_end ( scope , llval ) ; bcx } ) } } }
Returns an lvalue datum (that is, a by ref datum with cleanup scheduled).
Returns an lvalue datum ( that is a by ref datum with cleanup scheduled ) .
self
bcx
Block<'blk, 'tcx>
name
&str
scope
cleanup::ScopeId
self
bcx
Block<'blk, 'tcx>
name
&str
scope
cleanup::ScopeId