Re-exportsยง
use std::marker::PhantomData;๐use std::ops::ControlFlow;๐use rustc_data_structures::obligation_forest::Error;๐use rustc_data_structures::obligation_forest::ForestObligation;๐use rustc_data_structures::obligation_forest::ObligationForest;๐use rustc_data_structures::obligation_forest::ObligationProcessor;๐use rustc_data_structures::obligation_forest::Outcome;๐use rustc_data_structures::obligation_forest::ProcessResult;๐use rustc_hir::def_id::LocalDefId;๐use rustc_infer::infer::DefineOpaqueTypes;๐use rustc_infer::traits::FromSolverError;๐use rustc_infer::traits::PolyTraitObligation;๐use rustc_infer::traits::PredicateObligations;๐use rustc_infer::traits::ProjectionCacheKey;๐use rustc_infer::traits::SelectionError;๐use rustc_infer::traits::TraitEngine;๐use rustc_infer::traits::TraitErrors;๐use rustc_middle::ty::abstract_const::NotConstEvaluatable;๐use rustc_middle::ty::error::ExpectedFound;๐use rustc_middle::ty::error::TypeError;๐use rustc_middle::ty;๐use rustc_middle::ty::Binder;๐use rustc_middle::ty::Const;๐use rustc_middle::ty::DelayedSet;๐use rustc_middle::ty::GenericArgs;๐use rustc_middle::ty::Ty;๐use rustc_middle::ty::TyCtxt;๐use rustc_middle::ty::TypeSuperVisitable;๐use rustc_middle::ty::TypeVisitable;๐use rustc_middle::ty::TypeVisitableExt;๐use rustc_middle::ty::TypeVisitor;๐use rustc_middle::ty::TypingMode;๐use rustc_middle::ty::may_use_unstable_feature;๐use rustc_next_trait_solver::solve::TyOrConstInferVar;๐use rustc_span::bug;๐use thin_vec::ThinVec;๐use thin_vec::thin_vec;๐use tracing::debug;๐use tracing::debug_span;๐use tracing::instrument;๐use tracing::instrument;๐use super::effects;๐use super::effects::HostEffectObligation;๐use super::project;๐use super::project::ProjectAndUnifyResult;๐use super::select::SelectionContext;๐use super::EvaluationResult;๐use super::FulfillmentError;๐use super::FulfillmentErrorCode;๐use super::PredicateObligation;๐use super::ScrubbedTraitError;๐use super::const_evaluatable;๐use super::wf;๐use crate::error_reporting::InferCtxtErrorExt;๐use crate::infer::InferCtxt;๐use crate::traits::normalize::normalize_with_depth_to;๐use crate::traits::project::PolyProjectionObligation;๐use crate::traits::project::ProjectionCacheKeyExt as _;๐use crate::traits::query::evaluate_obligation::InferCtxtExt;๐use crate::traits::EvaluateConstErr;๐use crate::traits::implicit_fast_path;๐
Structsยง
- Fulfill
Processor ๐ - Fulfillment
Context - The fulfillment context is used to drive trait resolution. It
consists of a list of obligations that must be (eventually)
satisfied. The job is to track which are satisfied, which yielded
errors, and which are still pending. At any point, users can call
try_evaluate_obligations, and the fulfillment context will try to do selection, retaining only those obligations that remain ambiguous. This may be helpful in pushing type inference along. Once all type inference constraints have been generated, the methodevaluate_obligations_error_on_ambiguitycan be used to report any remaining ambiguous cases as errors. - OldSolver
Error - Pending
Predicate Obligation
Functionsยง
- args_
infer_ ๐vars - Returns the set of inference variables contained in
args. - mk_
pending ๐