blob: 74b9cec1da3fa2cfb3af9321057c0ae5358e4e94 [file] [log] [blame]
#![allow(incomplete_features)]
#![feature(generic_associated_types)]
#![feature(associated_type_defaults)]
// FIXME(#44265) add tests for type-generic and const-genertic associated types.
trait Foo {
type A<'a>;
type B<'a, 'b>;
type C;
}
struct Fooy;
impl Foo for Fooy {
type A = u32;
//~^ ERROR lifetime parameters or bounds on type `A` do not match the trait declaration
type B<'a, T> = Vec<T>;
//~^ ERROR type `B` has 1 type parameter but its trait declaration has 0 type parameters
type C<'a> = u32;
//~^ ERROR lifetime parameters or bounds on type `C` do not match the trait declaration
}
struct Fooer;
impl Foo for Fooer {
type A<T> = u32;
//~^ ERROR type `A` has 1 type parameter but its trait declaration has 0 type parameters
type B<'a> = u32;
//~^ ERROR lifetime parameters or bounds on type `B` do not match the trait declaration
type C<T> = T;
//~^ ERROR type `C` has 1 type parameter but its trait declaration has 0 type parameters
}
fn main() {}