rust/tests/ui/traits/next-solver/generalize/bivariant-alias.rs

21 lines
548 B
Rust

//@ 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() {}