// Tests that using fulfillment in the trait solver means that we detect that a
// method is impossible, leading to no ambiguity.
//@ check-pass
//@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver
#[derive(Default)]
struct W(A, B);
trait Constrain {
type Output;
}
impl Constrain for i32 {
type Output = u32;
}
trait Impossible {}
impl W where A: Constrain