fn fully_perform_op<R>(
        &mut self,
        locations: Locations,
        op: impl type_op::TypeOp<'gcx, 'tcx, Output = R>,
    ) -> Fallible<R> {
        let (r, opt_data) = op.fully_perform(self.infcx)?;

        if let Some(data) = &opt_data {
            self.push_region_constraints(locations, data);
        }

        Ok(r)
    }
/// Given some operation `op` that manipulates types, proves
/// predicates, or otherwise uses the inference context, executes
/// `op` and then executes all the further obligations that `op`
/// returns. This will yield a set of outlives constraints amongst
/// regions which are extracted and stored as having occured at
/// `locations`.
///
/// **Any `rustc::infer` operations that might generate region
/// constraints should occur within this method so that those
/// constraints can be properly localized!**


Any `rustc::infer` operations that might generate region
constraints should occur within this method so that those
constraints can be properly localized!
Any ` rustc :: infer ` operations that might generate region constraints should occur within this method so that those constraints can be properly localized!
fn fully_perform_op<R>(
        &mut self,
        locations: Locations,
        op: impl type_op::TypeOp<'gcx, 'tcx, Output = R>,
    ) -> Fallible<R> {
        let (r, opt_data) = op.fully_perform(self.infcx)?;
        if let Some(data) = &opt_data {
            self.push_region_constraints(locations, data);
        }
        Ok(r)
    }
fn fully_perform_op < R > ( & mut self , locations : Locations , op : impl type_op :: TypeOp < ' gcx , ' tcx , Output = R > , ) -> Fallible < R > { let ( r , opt_data ) = op . fully_perform ( self . infcx ) ? ; if let Some ( data ) = & opt_data { self . push_region_constraints ( locations , data ) ; } Ok ( r ) }
Given some operation `op` that manipulates types, proves
predicates, or otherwise uses the inference context, executes
`op` and then executes all the further obligations that `op`
returns.
Given some operation ` op ` that manipulates types proves predicates or otherwise uses the inference context executes ` op ` and then executes all the further obligations that ` op ` returns .
&mut self
locations
Locations
op
impl type_op::TypeOp<'gcx, 'tcx, Output = R>
&mut self
locations
Locations
op
impl type_op::TypeOp<'gcx, 'tcx, Output = R>