Skip to content

Commit

Permalink
Document check_region_obligations_and_report_errors, simplify a call …
Browse files Browse the repository at this point in the history
…to resolve_regions
  • Loading branch information
compiler-errors committed Jul 29, 2022
1 parent 1694ea1 commit 16f4980
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 7 deletions.
4 changes: 4 additions & 0 deletions compiler/rustc_infer/src/infer/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1324,6 +1324,10 @@ impl<'a, 'tcx> InferCtxt<'a, 'tcx> {
/// 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,
Expand Down
6 changes: 6 additions & 0 deletions compiler/rustc_infer/src/infer/outlives/obligations.rs
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,9 @@ impl<'cx, 'tcx> InferCtxt<'cx, '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
Expand Down Expand Up @@ -162,6 +165,9 @@ impl<'cx, 'tcx> InferCtxt<'cx, 'tcx> {
}
}

/// 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,
Expand Down
8 changes: 1 addition & 7 deletions compiler/rustc_trait_selection/src/traits/coherence.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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>(
Expand Down

0 comments on commit 16f4980

Please sign in to comment.