// revisions: current next | |
//[next] compile-flags: -Znext-solver | |
// check-pass | |
#![feature(non_lifetime_binders)] | |
//~^ WARN the feature `non_lifetime_binders` is incomplete | |
pub trait Foo<T: ?Sized> { | |
type Bar<K: ?Sized>: ?Sized; | |
} | |
impl Foo<usize> for () { | |
type Bar<K: ?Sized> = K; | |
} | |
pub fn f<T1, T2>(a: T1, b: T2) | |
where | |
T1: for<T> Foo<usize, Bar<T> = T>, | |
T2: for<T> Foo<usize, Bar<T> = <T1 as Foo<usize>>::Bar<T>>, | |
{ | |
} | |
fn it_works() { | |
f((), ()); | |
} | |
fn main() {} |