mirror of
https://github.com/rust-lang/rust.git
synced 2026-05-29 12:36:35 +03:00
Document check_region_obligations_and_report_errors, simplify a call to resolve_regions
This commit is contained in:
@@ -1324,6 +1324,10 @@ pub fn resolve_regions(
|
||||
/// result. After this, no more unification operations should be
|
||||
/// done -- or the compiler will panic -- but it is legal to use
|
||||
/// `resolve_vars_if_possible` as well as `fully_resolve`.
|
||||
///
|
||||
/// Make sure to call [`InferCtxt::process_registered_region_obligations`]
|
||||
/// first, or preferrably use [`InferCtxt::check_region_obligations_and_report_errors`]
|
||||
/// to do both of these operations together.
|
||||
pub fn resolve_regions_and_report_errors(
|
||||
&self,
|
||||
generic_param_scope: LocalDefId,
|
||||
|
||||
@@ -111,6 +111,9 @@ pub fn take_registered_region_obligations(&self) -> Vec<RegionObligation<'tcx>>
|
||||
std::mem::take(&mut self.inner.borrow_mut().region_obligations)
|
||||
}
|
||||
|
||||
/// NOTE: Prefer using [`InferCtxt::check_region_obligations_and_report_errors`]
|
||||
/// instead of calling this directly.
|
||||
///
|
||||
/// Process the region obligations that must be proven (during
|
||||
/// `regionck`) for the given `body_id`, given information about
|
||||
/// the region bounds in scope and so forth. This function must be
|
||||
@@ -162,6 +165,9 @@ pub fn process_registered_region_obligations(
|
||||
}
|
||||
}
|
||||
|
||||
/// Processes registered region obliations and resolves regions, reporting
|
||||
/// any errors if any were raised. Prefer using this function over manually
|
||||
/// calling `resolve_regions_and_report_errors`.
|
||||
pub fn check_region_obligations_and_report_errors(
|
||||
&self,
|
||||
generic_param_scope: LocalDefId,
|
||||
|
||||
@@ -398,13 +398,7 @@ fn resolve_negative_obligation<'cx, 'tcx>(
|
||||
let outlives_env = OutlivesEnvironment::new(param_env);
|
||||
infcx.process_registered_region_obligations(outlives_env.region_bound_pairs(), param_env);
|
||||
|
||||
let errors = infcx.resolve_regions(&outlives_env);
|
||||
|
||||
if !errors.is_empty() {
|
||||
return false;
|
||||
}
|
||||
|
||||
true
|
||||
infcx.resolve_regions(&outlives_env).is_empty()
|
||||
}
|
||||
|
||||
pub fn trait_ref_is_knowable<'tcx>(
|
||||
|
||||
Reference in New Issue
Block a user