Skip to content

Commit

Permalink
Inline loose_check fn on call site
Browse files Browse the repository at this point in the history
  • Loading branch information
spastorino committed Feb 14, 2022
1 parent 45983fe commit 8c4ffaa
Showing 1 changed file with 1 addition and 11 deletions.
12 changes: 1 addition & 11 deletions compiler/rustc_trait_selection/src/traits/coherence.rs
Expand Up @@ -287,7 +287,7 @@ fn implicit_negative<'cx, 'tcx>(
predicate: p,
})
.chain(obligations)
.find(|o| loose_check(selcx, o));
.find(|o| !selcx.predicate_may_hold_fatal(o));

if let Some(failing_obligation) = opt_failing_obligation {
debug!("overlap: obligation unsatisfiable {:?}", failing_obligation);
Expand Down Expand Up @@ -363,16 +363,6 @@ fn negative_impl<'cx, 'tcx>(
})
}

fn loose_check<'cx, 'tcx>(
selcx: &mut SelectionContext<'cx, 'tcx>,
o: &PredicateObligation<'tcx>,
) -> bool {
// FIXME: the call to `selcx.predicate_may_hold_fatal` below should be ported
// to the canonical trait query form, `infcx.predicate_may_hold`, once
// the new system supports intercrate mode (which coherence needs).
!selcx.predicate_may_hold_fatal(o)
}

fn negative_impl_exists<'cx, 'tcx>(
selcx: &SelectionContext<'cx, 'tcx>,
param_env: ty::ParamEnv<'tcx>,
Expand Down

0 comments on commit 8c4ffaa

Please sign in to comment.