1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
//@ revisions: old next
//@[next] compile-flags: -Znext-solver
//@ ignore-compare-mode-next-solver (explicit revisions)
//@ check-pass
// When generalizing an alias in a bivariant context, we have to set
// `has_unconstrained_ty_var` as we may otherwise never check for
// well-formedness of the generalized type, causing us to error due
// to ambiguity.
trait Trait {
type Assoc;
}
struct BivariantArg<I, T: Trait<Assoc = I>>(T);
fn generalize<T: Trait>(input: BivariantArg<T::Assoc, T>) {
let _generalized = input;
}
pub fn main() {}
|