21 lines
548 B
Rust
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() {}
|