pub(super) fn eval_and_read_place(
        &mut self,
        place: &mir::Place<'tcx>,
    ) -> EvalResult<'tcx, Value> {
        // Shortcut for things like accessing a fat pointer's field,
        // which would otherwise (in the `eval_place` path) require moving a `ScalarPair` to memory
        // and returning an `Place::Ptr` to it
        if let Some(val) = self.try_read_place(place)? {
            return Ok(val);
        }
        let place = self.eval_place(place)?;
        self.read_place(place)
    }
/// Returns a value and (in case of a ByRef) if we are supposed to use aligned accesses.
Returns a value and (in case of a ByRef) if we are supposed to use aligned accesses.
Returns a value and ( in case of a ByRef ) if we are supposed to use aligned accesses .
pub(super) fn eval_and_read_place(
        &mut self,
        place: &mir::Place<'tcx>,
    ) -> EvalResult<'tcx, Value> {
        // Shortcut for things like accessing a fat pointer's field,
        // which would otherwise (in the `eval_place` path) require moving a `ScalarPair` to memory
        // and returning an `Place::Ptr` to it
        if let Some(val) = self.try_read_place(place)? {
            return Ok(val);
        }
        let place = self.eval_place(place)?;
        self.read_place(place)
    }
pub ( super ) fn eval_and_read_place ( & mut self , place : & mir :: Place < ' tcx > , ) -> EvalResult < ' tcx , Value > { // Shortcut for things like accessing a fat pointer's field, // which would otherwise (in the `eval_place` path) require moving a `ScalarPair` to memory // and returning an `Place::Ptr` to it if let Some ( val ) = self . try_read_place ( place ) ? { return Ok ( val ) ; } let place = self . eval_place ( place ) ? ; self . read_place ( place ) }
Returns a value and (in case of a ByRef) if we are supposed to use aligned accesses.
Returns a value and ( in case of a ByRef ) if we are supposed to use aligned accesses .
&mut self
place
&mir::Place<'tcx>