| struct S; | |
| trait Tr { | |
| fn f() { | |
| let s = Self {}; | |
| //~^ ERROR expected struct, variant or union type, found type parameter | |
| let z = Self::<u8> {}; | |
| //~^ ERROR expected struct, variant or union type, found type parameter | |
| //~| ERROR type arguments are not allowed on self type | |
| match s { | |
| Self { .. } => {} | |
| //~^ ERROR expected struct, variant or union type, found type parameter | |
| } | |
| } | |
| } | |
| impl Tr for S { | |
| fn f() { | |
| let s = Self {}; // OK | |
| let z = Self::<u8> {}; //~ ERROR type arguments are not allowed on self type | |
| match s { | |
| Self { .. } => {} // OK | |
| } | |
| } | |
| } | |
| impl S { | |
| fn g() { | |
| let s = Self {}; // OK | |
| let z = Self::<u8> {}; //~ ERROR type arguments are not allowed on self type | |
| match s { | |
| Self { .. } => {} // OK | |
| } | |
| } | |
| } | |
| fn main() {} |