/src/test/ui/lint/unused/unused-attr-duplicate.rs
https://gitlab.com/rust-lang/rust · Rust · 105 lines · 70 code · 12 blank · 23 comment · 0 complexity · af3c526e70a7d09b19f167177cda6bbc MD5 · raw file
- // Tests for repeating attribute warnings.
- // aux-build:lint_unused_extern_crate.rs
- // compile-flags:--test
- // Not tested due to extra requirements:
- // - panic_handler: needs extra setup
- // - target_feature: platform-specific
- // - link_section: platform-specific
- // - proc_macro, proc_macro_derive, proc_macro_attribute: needs to be a
- // proc-macro, and have special handling for mixing.
- // - unstable attributes (not going to bother)
- // - no_main: extra setup
- #![deny(unused_attributes)]
- #![crate_name = "unused_attr_duplicate"]
- #![crate_name = "unused_attr_duplicate2"] //~ ERROR unused attribute
- //~^ WARN this was previously accepted
- #![recursion_limit = "128"]
- #![recursion_limit = "256"] //~ ERROR unused attribute
- //~^ WARN this was previously accepted
- #![type_length_limit = "1048576"]
- #![type_length_limit = "1"] //~ ERROR unused attribute
- //~^ WARN this was previously accepted
- #![no_std]
- #![no_std] //~ ERROR unused attribute
- #![no_implicit_prelude]
- #![no_implicit_prelude] //~ ERROR unused attribute
- #![windows_subsystem = "console"]
- #![windows_subsystem = "windows"] //~ ERROR unused attribute
- //~^ WARN this was previously accepted
- #![no_builtins]
- #![no_builtins] //~ ERROR unused attribute
- #[no_link]
- #[no_link] //~ ERROR unused attribute
- extern crate lint_unused_extern_crate;
- #[macro_use]
- #[macro_use] //~ ERROR unused attribute
- pub mod m {
- #[macro_export]
- #[macro_export] //~ ERROR unused attribute
- macro_rules! foo {
- () => {};
- }
- }
- #[path = "auxiliary/lint_unused_extern_crate.rs"]
- #[path = "bar.rs"] //~ ERROR unused attribute
- //~^ WARN this was previously accepted
- pub mod from_path;
- #[test]
- #[ignore]
- #[ignore = "some text"] //~ ERROR unused attribute
- #[should_panic]
- #[should_panic(expected = "values don't match")] //~ ERROR unused attribute
- //~^ WARN this was previously accepted
- fn t1() {}
- #[must_use]
- #[must_use = "some message"] //~ ERROR unused attribute
- //~^ WARN this was previously accepted
- // No warnings for #[repr], would require more logic.
- #[repr(C)]
- #[repr(C)]
- #[non_exhaustive]
- #[non_exhaustive] //~ ERROR unused attribute
- pub struct X;
- #[automatically_derived]
- #[automatically_derived] //~ ERROR unused attribute
- impl X {}
- #[inline(always)]
- #[inline(never)] //~ ERROR unused attribute
- //~^ WARN this was previously accepted
- #[cold]
- #[cold] //~ ERROR unused attribute
- #[track_caller]
- #[track_caller] //~ ERROR unused attribute
- pub fn xyz() {}
- // No warnings for #[link], would require more logic.
- #[link(name = "rust_test_helpers", kind = "static")]
- #[link(name = "rust_test_helpers", kind = "static")]
- extern "C" {
- #[link_name = "this_does_not_exist"] //~ ERROR unused attribute
- //~^ WARN this was previously accepted
- #[link_name = "rust_dbg_extern_identity_u32"]
- pub fn name_in_rust(v: u32) -> u32;
- }
- #[export_name = "exported_symbol_name"] //~ ERROR unused attribute
- //~^ WARN this was previously accepted
- #[export_name = "exported_symbol_name2"]
- pub fn export_test() {}
- #[no_mangle]
- #[no_mangle] //~ ERROR unused attribute
- pub fn no_mangle_test() {}
- #[used]
- #[used] //~ ERROR unused attribute
- static FOO: u32 = 0;
- fn main() {}