| #![feature(rustc_attrs)] |
| |
| #[rustc_must_implement_one_of(a, b)] |
| //~^ ERROR function not found in this trait |
| //~| ERROR function not found in this trait |
| trait Tr0 {} |
| |
| #[rustc_must_implement_one_of(a, b)] |
| //~^ ERROR function not found in this trait |
| trait Tr1 { |
| fn a() {} |
| } |
| |
| #[rustc_must_implement_one_of(a)] |
| //~^ ERROR malformed |
| trait Tr2 { |
| fn a() {} |
| } |
| |
| #[rustc_must_implement_one_of(a,)] |
| //~^ ERROR malformed |
| trait Tr2comma { |
| fn a() {} |
| } |
| |
| #[rustc_must_implement_one_of] |
| //~^ ERROR malformed `rustc_must_implement_one_of` attribute input |
| trait Tr3 {} |
| |
| #[rustc_must_implement_one_of()] |
| //~^ ERROR malformed `rustc_must_implement_one_of` attribute input |
| trait Tempty {} |
| |
| #[rustc_must_implement_one_of(,)] |
| //~^ ERROR expected a literal |
| trait Tcomma {} |
| |
| #[rustc_must_implement_one_of(A, B)] |
| trait Tr4 { |
| const A: u8 = 1; //~ ERROR not a function |
| |
| type B; //~ ERROR not a function |
| } |
| |
| #[rustc_must_implement_one_of(a, b)] |
| trait Tr5 { |
| fn a(); //~ ERROR function doesn't have a default implementation |
| |
| fn b(); //~ ERROR function doesn't have a default implementation |
| } |
| |
| #[rustc_must_implement_one_of(a, b)] |
| trait TrOneDefault { |
| fn a() {} |
| |
| fn b(); //~ ERROR function doesn't have a default implementation |
| } |
| |
| #[rustc_must_implement_one_of(a, b, c)] |
| trait TrTwoDefaults { |
| fn a() {} |
| |
| fn b() {} |
| |
| fn c(); //~ ERROR function doesn't have a default implementation |
| } |
| |
| #[rustc_must_implement_one_of(abc, abc)] |
| //~^ ERROR the `rustc_must_implement_one_of` attribute cannot be used on functions |
| fn function() {} |
| |
| #[rustc_must_implement_one_of(abc, xyz)] |
| //~^ ERROR the `rustc_must_implement_one_of` attribute cannot be used on structs |
| struct Struct {} |
| |
| fn main() {} |