Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 6aac808

Browse files
committedFeb 13, 2025
Auto merge of rust-lang#136988 - compiler-errors:impossible_predicates, r=<try>
Use the new solver in the `impossible_predicates` r? lcnr
2 parents c241e14 + 42565da commit 6aac808

File tree

1 file changed

+5
-9
lines changed
  • compiler/rustc_trait_selection/src/traits

1 file changed

+5
-9
lines changed
 

‎compiler/rustc_trait_selection/src/traits/mod.rs

+5-9
Original file line numberDiff line numberDiff line change
@@ -703,8 +703,11 @@ fn replace_param_and_infer_args_with_placeholder<'tcx>(
703703
/// used during analysis.
704704
pub fn impossible_predicates<'tcx>(tcx: TyCtxt<'tcx>, predicates: Vec<ty::Clause<'tcx>>) -> bool {
705705
debug!("impossible_predicates(predicates={:?})", predicates);
706-
let (infcx, param_env) =
707-
tcx.infer_ctxt().build_with_typing_env(ty::TypingEnv::fully_monomorphized());
706+
let (infcx, param_env) = tcx
707+
.infer_ctxt()
708+
.with_next_trait_solver(true)
709+
.build_with_typing_env(ty::TypingEnv::fully_monomorphized());
710+
708711
let ocx = ObligationCtxt::new(&infcx);
709712
let predicates = ocx.normalize(&ObligationCause::dummy(), param_env, predicates);
710713
for predicate in predicates {
@@ -717,13 +720,6 @@ pub fn impossible_predicates<'tcx>(tcx: TyCtxt<'tcx>, predicates: Vec<ty::Clause
717720
return true;
718721
}
719722

720-
// Leak check for any higher-ranked trait mismatches.
721-
// We only need to do this in the old solver, since the new solver already
722-
// leak-checks.
723-
if !infcx.next_trait_solver() && infcx.leak_check(ty::UniverseIndex::ROOT, None).is_err() {
724-
return true;
725-
}
726-
727723
false
728724
}
729725

0 commit comments

Comments
 (0)
Failed to load comments.