// check-pass

#![allow(incomplete_features)]
#![feature(generic_associated_types)]
#![feature(associated_type_defaults)]

trait Foo {
    type A<'a> where Self: 'a;
    type B<'a, 'b> where 'a: 'b;
    type C where Self: Clone;
}

struct Fooy;

impl Foo for Fooy {
    type A<'a> = (&'a ());
    type B<'a, 'b> = (&'a(), &'b ());
    type C = String;
}

#[derive(Clone)]
struct Fooer<T>(T);

impl<T> Foo for Fooer<T> {
    type A<'x> where T: 'x = (&'x ());
    type B<'u, 'v> where 'u: 'v = (&'v &'u ());
    type C where Self: ToOwned = String;
}

fn main() {}
