| //@ run-rustfix |
| |
| #![allow(dead_code, path_statements)] |
| #![deny(unused_attributes, unused_must_use)] |
| #![feature(asm_experimental_arch, stmt_expr_attributes, trait_alias)] |
| |
| //~ ERROR attribute cannot be used on |
| //~| WARN previously accepted |
| extern crate std as std2; |
| |
| //~ ERROR attribute cannot be used on |
| //~| WARN previously accepted |
| mod test_mod {} |
| |
| //~ ERROR attribute cannot be used on |
| //~| WARN previously accepted |
| use std::arch::global_asm; |
| |
| //~ ERROR attribute cannot be used on |
| //~| WARN previously accepted |
| const CONST: usize = 4; |
| //~ ERROR attribute cannot be used on |
| //~| WARN previously accepted |
| #[no_mangle] |
| static STATIC: usize = 4; |
| |
| #[must_use] |
| struct X; |
| |
| #[must_use] |
| enum Y { |
| Z, |
| } |
| |
| #[must_use] |
| union U { |
| unit: (), |
| } |
| |
| //~ ERROR attribute cannot be used on |
| //~| WARN previously accepted |
| impl U { |
| #[must_use] |
| fn method() -> i32 { |
| 4 |
| } |
| } |
| |
| #[must_use] |
| #[no_mangle] |
| fn foo() -> i64 { |
| 4 |
| } |
| |
| //~ ERROR attribute cannot be used on |
| //~| WARN previously accepted |
| extern "Rust" { |
| #[link_name = "STATIC"] |
| //~ ERROR attribute cannot be used on |
| //~| WARN previously accepted |
| static FOREIGN_STATIC: usize; |
| |
| #[link_name = "foo"] |
| #[must_use] |
| fn foreign_foo() -> i64; |
| } |
| |
| //~^ ERROR `#[must_use]` attribute cannot be used on macro calls |
| //~| WARN this was previously accepted by the compiler but is being phased out |
| global_asm!(""); |
| |
| //~ ERROR attribute cannot be used on |
| //~| WARN previously accepted |
| type UseMe = (); |
| |
| fn qux< T>(_: T) {} //~ ERROR attribute cannot be used on |
| //~| WARN previously accepted |
| |
| #[must_use] |
| trait Use { |
| //~ ERROR attribute cannot be used on |
| //~| WARN previously accepted |
| const ASSOC_CONST: usize = 4; |
| //~ ERROR attribute cannot be used on |
| //~| WARN previously accepted |
| type AssocTy; |
| |
| #[must_use] |
| fn get_four(&self) -> usize { |
| 4 |
| } |
| } |
| |
| //~ ERROR attribute cannot be used on |
| //~| WARN previously accepted |
| impl Use for () { |
| type AssocTy = (); |
| |
| //~ ERROR attribute cannot be used on |
| //~| WARN previously accepted |
| fn get_four(&self) -> usize { |
| 4 |
| } |
| } |
| |
| //~ ERROR attribute cannot be used on |
| //~| WARN previously accepted |
| trait Alias = Use; |
| |
| //~ ERROR attribute cannot be used on |
| //~| WARN previously accepted |
| macro_rules! cool_macro { |
| () => { |
| 4 |
| }; |
| } |
| |
| fn main() { |
| //~ ERROR attribute cannot be used on |
| //~| WARN previously accepted |
| let x = || {}; |
| x(); |
| |
| let x = //~ ERROR attribute cannot be used on |
| //~| WARN previously accepted |
| || {}; |
| x(); |
| |
| let _ = X; //~ ERROR that must be used |
| let _ = Y::Z; //~ ERROR that must be used |
| let _ = U { unit: () }; //~ ERROR that must be used |
| let _ = U::method(); //~ ERROR that must be used |
| let _ = foo(); //~ ERROR that must be used |
| |
| unsafe { |
| let _ = foreign_foo(); //~ ERROR that must be used |
| }; |
| |
| CONST; |
| STATIC; |
| unsafe { FOREIGN_STATIC }; |
| cool_macro!(); |
| qux(4); |
| let _ = ().get_four(); //~ ERROR that must be used |
| |
| match Some(4) { |
| //~ ERROR attribute cannot be used on |
| //~| WARN previously accepted |
| Some(res) => res, |
| None => 0, |
| }; |
| |
| struct PatternField { |
| foo: i32, |
| } |
| let s = PatternField { foo: 123 }; //~ ERROR attribute cannot be used on |
| //~| WARN previously accepted |
| let PatternField { foo } = s; //~ ERROR attribute cannot be used on |
| //~| WARN previously accepted |
| let _ = foo; |
| } |