Skip to content

Commit

Permalink
Rename strict_check to negative_impl_exists
Browse files Browse the repository at this point in the history
  • Loading branch information
spastorino committed Jan 23, 2022
1 parent 7847ca8 commit 2693832
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions compiler/rustc_trait_selection/src/traits/coherence.rs
Original file line number Diff line number Diff line change
Expand Up @@ -313,7 +313,9 @@ fn implicit_negative<'cx, 'tcx>(
predicate: p,
})
.chain(obligations)
.find(|o| loose_check(selcx, o) || tcx.features().negative_impls && strict_check(selcx, o));
.find(|o| {
loose_check(selcx, o) || tcx.features().negative_impls && negative_impl_exists(selcx, o)
});
// FIXME: the call to `selcx.predicate_may_hold_fatal` above should be ported
// to the canonical trait query form, `infcx.predicate_may_hold`, once
// the new system supports intercrate mode (which coherence needs).
Expand Down Expand Up @@ -377,8 +379,10 @@ fn negative_impl<'cx, 'tcx>(
}
};

let opt_failing_obligation =
obligations.into_iter().chain(more_obligations).find(|o| strict_check(selcx, o));
let opt_failing_obligation = obligations
.into_iter()
.chain(more_obligations)
.find(|o| negative_impl_exists(selcx, o));

if let Some(failing_obligation) = opt_failing_obligation {
debug!("overlap: obligation unsatisfiable {:?}", failing_obligation);
Expand All @@ -396,7 +400,7 @@ fn loose_check<'cx, 'tcx>(
!selcx.predicate_may_hold_fatal(o)
}

fn strict_check<'cx, 'tcx>(
fn negative_impl_exists<'cx, 'tcx>(
selcx: &SelectionContext<'cx, 'tcx>,
o: &PredicateObligation<'tcx>,
) -> bool {
Expand Down

0 comments on commit 2693832

Please sign in to comment.