Only resolve in new solver

This commit is contained in:
Michael Goulet 2023-08-09 17:00:59 +00:00
parent 8838c73e86
commit 214d78daec

View File

@ -1007,15 +1007,17 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
&self, &self,
expr: &hir::Expr<'_>, expr: &hir::Expr<'_>,
expr_ty: Ty<'tcx>, expr_ty: Ty<'tcx>,
target: Ty<'tcx>, mut target: Ty<'tcx>,
allow_two_phase: AllowTwoPhase, allow_two_phase: AllowTwoPhase,
cause: Option<ObligationCause<'tcx>>, cause: Option<ObligationCause<'tcx>>,
) -> RelateResult<'tcx, Ty<'tcx>> { ) -> RelateResult<'tcx, Ty<'tcx>> {
let source = self.try_structurally_resolve_type(expr.span, expr_ty); let source = self.try_structurally_resolve_type(expr.span, expr_ty);
let target = self.try_structurally_resolve_type( if self.next_trait_solver() {
cause.as_ref().map_or(expr.span, |cause| cause.span), target = self.try_structurally_resolve_type(
target, cause.as_ref().map_or(expr.span, |cause| cause.span),
); target,
);
}
debug!("coercion::try({:?}: {:?} -> {:?})", expr, source, target); debug!("coercion::try({:?}: {:?} -> {:?})", expr, source, target);
let cause = let cause =