mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-25 08:13:41 +00:00
Explain how to evaluate an obligation
This commit is contained in:
parent
c88ba28d9a
commit
e37a3a85e4
@ -69,9 +69,15 @@ impl<'tcx> InferCtxt<'tcx> {
|
|||||||
/// .must_apply_modulo_regions();
|
/// .must_apply_modulo_regions();
|
||||||
/// ```
|
/// ```
|
||||||
///
|
///
|
||||||
/// In most cases you should instead create an [Obligation](traits::Obligation)
|
/// In most cases you should instead create an [Obligation] and check whether
|
||||||
/// and check whether it holds, because it properly handles higher ranked traits
|
/// it holds via [`evaluate_obligation`] or one of its helper functions like
|
||||||
/// and it is more convenient and safer when your `params` are inside a `Binder`.
|
/// [`predicate_must_hold_modulo_regions`], because it properly handles higher ranked traits
|
||||||
|
/// and it is more convenient and safer when your `params` are inside a [`Binder`].
|
||||||
|
///
|
||||||
|
/// [Obligation]: traits::Obligation
|
||||||
|
/// [`evaluate_obligation`]: crate::traits::query::evaluate_obligation::InferCtxtExt::evaluate_obligation
|
||||||
|
/// [`predicate_must_hold_modulo_regions`]: crate::traits::query::evaluate_obligation::InferCtxtExt::predicate_must_hold_modulo_regions
|
||||||
|
/// [`Binder`]: ty::Binder
|
||||||
#[instrument(level = "debug", skip(self, params), ret)]
|
#[instrument(level = "debug", skip(self, params), ret)]
|
||||||
fn type_implements_trait(
|
fn type_implements_trait(
|
||||||
&self,
|
&self,
|
||||||
|
Loading…
Reference in New Issue
Block a user