blob: e5f274df06a81cb9e2995840c86b38afedaa6f53 [file]
#![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() {}