add additional TypeFlags fast paths
This commit is contained in:
@@ -15,9 +15,9 @@ use rustc_infer::infer::{DefineOpaqueTypes, InferCtxt, InferOk};
|
||||
use rustc_macros::extension;
|
||||
use rustc_middle::traits::ObligationCause;
|
||||
use rustc_middle::traits::solve::{Certainty, Goal, GoalSource, NoSolution, QueryResult};
|
||||
use rustc_middle::ty::{TyCtxt, TypeFoldable, VisitorResult, try_visit};
|
||||
use rustc_middle::ty::{TyCtxt, VisitorResult, try_visit};
|
||||
use rustc_middle::{bug, ty};
|
||||
use rustc_next_trait_solver::resolve::EagerResolver;
|
||||
use rustc_next_trait_solver::resolve::eager_resolve_vars;
|
||||
use rustc_next_trait_solver::solve::inspect::{self, instantiate_canonical_state};
|
||||
use rustc_next_trait_solver::solve::{GenerateProofTree, MaybeCause, SolverDelegateEvalExt as _};
|
||||
use rustc_span::{DUMMY_SP, Span};
|
||||
@@ -187,8 +187,7 @@ impl<'a, 'tcx> InspectCandidate<'a, 'tcx> {
|
||||
let _ = term_hack.constrain(infcx, span, param_env);
|
||||
}
|
||||
|
||||
let opt_impl_args =
|
||||
opt_impl_args.map(|impl_args| impl_args.fold_with(&mut EagerResolver::new(infcx)));
|
||||
let opt_impl_args = opt_impl_args.map(|impl_args| eager_resolve_vars(infcx, impl_args));
|
||||
|
||||
let goals = instantiated_goals
|
||||
.into_iter()
|
||||
@@ -392,7 +391,7 @@ impl<'a, 'tcx> InspectGoal<'a, 'tcx> {
|
||||
infcx,
|
||||
depth,
|
||||
orig_values,
|
||||
goal: uncanonicalized_goal.fold_with(&mut EagerResolver::new(infcx)),
|
||||
goal: eager_resolve_vars(infcx, uncanonicalized_goal),
|
||||
result,
|
||||
evaluation_kind: evaluation.kind,
|
||||
normalizes_to_term_hack,
|
||||
|
||||
Reference in New Issue
Block a user