1
Fork 0

Add checks for more empty attributes.

This commit is contained in:
Eric Huss 2021-09-05 17:16:28 -07:00
commit 4c60ea8228
7 changed files with 255 additions and 120 deletions

View file

@ -173,8 +173,17 @@ impl CheckAttrVisitor<'tcx> {
} }
// Warn on useless empty attributes. // Warn on useless empty attributes.
if matches!(attr.name_or_empty(), sym::macro_use) if matches!(
&& attr.meta_item_list().map_or(false, |list| list.is_empty()) attr.name_or_empty(),
sym::macro_use
| sym::allow
| sym::warn
| sym::deny
| sym::forbid
| sym::feature
| sym::repr
| sym::target_feature
) && attr.meta_item_list().map_or(false, |list| list.is_empty())
{ {
self.tcx.struct_span_lint_hir(UNUSED_ATTRIBUTES, hir_id, attr.span, |lint| { self.tcx.struct_span_lint_hir(UNUSED_ATTRIBUTES, hir_id, attr.span, |lint| {
lint.build("unused attribute") lint.build("unused attribute")

View file

@ -0,0 +1,14 @@
#![deny(unused_attributes)]
#![allow()] //~ ERROR unused attribute
#![warn()] //~ ERROR unused attribute
#![deny()] //~ ERROR unused attribute
#![forbid()] //~ ERROR unused attribute
#![feature()] //~ ERROR unused attribute
#[repr()] //~ ERROR unused attribute
pub struct S;
#[target_feature()] //~ ERROR unused attribute
pub unsafe fn foo() {}
fn main() {}

View file

@ -0,0 +1,63 @@
error: unused attribute
--> $DIR/empty-attributes.rs:8:1
|
LL | #[repr()]
| ^^^^^^^^^ help: remove this attribute
|
note: the lint level is defined here
--> $DIR/empty-attributes.rs:1:9
|
LL | #![deny(unused_attributes)]
| ^^^^^^^^^^^^^^^^^
= note: attribute `repr` with an empty list has no effect
error: unused attribute
--> $DIR/empty-attributes.rs:11:1
|
LL | #[target_feature()]
| ^^^^^^^^^^^^^^^^^^^ help: remove this attribute
|
= note: attribute `target_feature` with an empty list has no effect
error: unused attribute
--> $DIR/empty-attributes.rs:2:1
|
LL | #![allow()]
| ^^^^^^^^^^^ help: remove this attribute
|
= note: attribute `allow` with an empty list has no effect
error: unused attribute
--> $DIR/empty-attributes.rs:3:1
|
LL | #![warn()]
| ^^^^^^^^^^ help: remove this attribute
|
= note: attribute `warn` with an empty list has no effect
error: unused attribute
--> $DIR/empty-attributes.rs:4:1
|
LL | #![deny()]
| ^^^^^^^^^^ help: remove this attribute
|
= note: attribute `deny` with an empty list has no effect
error: unused attribute
--> $DIR/empty-attributes.rs:5:1
|
LL | #![forbid()]
| ^^^^^^^^^^^^ help: remove this attribute
|
= note: attribute `forbid` with an empty list has no effect
error: unused attribute
--> $DIR/empty-attributes.rs:6:1
|
LL | #![feature()]
| ^^^^^^^^^^^^^ help: remove this attribute
|
= note: attribute `feature` with an empty list has no effect
error: aborting due to 7 previous errors

View file

@ -134,4 +134,27 @@ mod start {
//~^ ERROR: `start` attribute can only be used on functions //~^ ERROR: `start` attribute can only be used on functions
} }
#[repr(C)]
//~^ ERROR: attribute should be applied to a struct, enum, or union
mod repr {
//~^ NOTE not a struct, enum, or union
mod inner { #![repr(C)] }
//~^ ERROR: attribute should be applied to a struct, enum, or union
//~| NOTE not a struct, enum, or union
#[repr(C)] fn f() { }
//~^ ERROR: attribute should be applied to a struct, enum, or union
//~| NOTE not a struct, enum, or union
struct S;
#[repr(C)] type T = S;
//~^ ERROR: attribute should be applied to a struct, enum, or union
//~| NOTE not a struct, enum, or union
#[repr(C)] impl S { }
//~^ ERROR: attribute should be applied to a struct, enum, or union
//~| NOTE not a struct, enum, or union
}
fn main() {} fn main() {}

View file

@ -91,6 +91,21 @@ LL | | }
LL | | } LL | | }
| |_- not a free function, impl method or static | |_- not a free function, impl method or static
error[E0517]: attribute should be applied to a struct, enum, or union
--> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:137:8
|
LL | #[repr(C)]
| ^
LL |
LL | / mod repr {
LL | |
LL | | mod inner { #![repr(C)] }
LL | |
... |
LL | |
LL | | }
| |_- not a struct, enum, or union
error: attribute should be applied to an `extern crate` item error: attribute should be applied to an `extern crate` item
--> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:25:1 --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:25:1
| |
@ -235,7 +250,31 @@ error: attribute should be applied to a free function, impl method or static
LL | #[export_name = "2200"] fn bar() {} LL | #[export_name = "2200"] fn bar() {}
| ^^^^^^^^^^^^^^^^^^^^^^^ ----------- not a free function, impl method or static | ^^^^^^^^^^^^^^^^^^^^^^^ ----------- not a free function, impl method or static
error: aborting due to 34 previous errors error[E0517]: attribute should be applied to a struct, enum, or union
--> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:141:25
|
LL | mod inner { #![repr(C)] }
| --------------------^---- not a struct, enum, or union
Some errors have detailed explanations: E0518, E0658. error[E0517]: attribute should be applied to a struct, enum, or union
For more information about an error, try `rustc --explain E0518`. --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:145:12
|
LL | #[repr(C)] fn f() { }
| ^ ---------- not a struct, enum, or union
error[E0517]: attribute should be applied to a struct, enum, or union
--> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:151:12
|
LL | #[repr(C)] type T = S;
| ^ ----------- not a struct, enum, or union
error[E0517]: attribute should be applied to a struct, enum, or union
--> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:155:12
|
LL | #[repr(C)] impl S { }
| ^ ---------- not a struct, enum, or union
error: aborting due to 39 previous errors
Some errors have detailed explanations: E0517, E0518, E0658.
For more information about an error, try `rustc --explain E0517`.

View file

@ -245,19 +245,6 @@ mod bench {
impl S { } impl S { }
} }
#[repr()]
mod repr {
mod inner { #![repr()] }
#[repr()] fn f() { }
struct S;
#[repr()] type T = S;
#[repr()] impl S { }
}
#[path = "3800"] #[path = "3800"]
mod path { mod path {
mod inner { #![path="3800"] } mod inner { #![path="3800"] }

View file

@ -173,7 +173,7 @@ LL | #[deny(x5100)] impl S { }
| ^^^^^ | ^^^^^
warning: `#[macro_escape]` is a deprecated synonym for `#[macro_use]` warning: `#[macro_escape]` is a deprecated synonym for `#[macro_use]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:412:17 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:399:17
| |
LL | mod inner { #![macro_escape] } LL | mod inner { #![macro_escape] }
| ^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^
@ -181,7 +181,7 @@ LL | mod inner { #![macro_escape] }
= help: try an outer attribute: `#[macro_use]` = help: try an outer attribute: `#[macro_use]`
warning: `#[macro_escape]` is a deprecated synonym for `#[macro_use]` warning: `#[macro_escape]` is a deprecated synonym for `#[macro_use]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:409:1 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:396:1
| |
LL | #[macro_escape] LL | #[macro_escape]
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^
@ -213,13 +213,13 @@ LL | #![warn(unused_attributes, unknown_lints)]
| ^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^
warning: `#[automatically_derived]` only has an effect on items warning: `#[automatically_derived]` only has an effect on items
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:278:1 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:265:1
| |
LL | #[automatically_derived] LL | #[automatically_derived]
| ^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^
warning: attribute should be applied to a free function, impl method or static warning: attribute should be applied to a free function, impl method or static
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:296:1 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:283:1
| |
LL | #[no_mangle] LL | #[no_mangle]
| ^^^^^^^^^^^^ | ^^^^^^^^^^^^
@ -236,31 +236,31 @@ LL | | }
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: `#[should_panic]` only has an effect on functions warning: `#[should_panic]` only has an effect on functions
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:336:1 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:323:1
| |
LL | #[should_panic] LL | #[should_panic]
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^
warning: `#[ignore]` only has an effect on functions warning: `#[ignore]` only has an effect on functions
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:354:1 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:341:1
| |
LL | #[ignore] LL | #[ignore]
| ^^^^^^^^^ | ^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:389:1 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:376:1
| |
LL | #[reexport_test_harness_main = "2900"] LL | #[reexport_test_harness_main = "2900"]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:429:1 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:416:1
| |
LL | #[no_std] LL | #[no_std]
| ^^^^^^^^^ | ^^^^^^^^^
warning: attribute should be applied to a function warning: attribute should be applied to a function
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:465:1 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:452:1
| |
LL | #[cold] LL | #[cold]
| ^^^^^^^ | ^^^^^^^
@ -277,7 +277,7 @@ LL | | }
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a foreign function or static warning: attribute should be applied to a foreign function or static
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:494:1 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:481:1
| |
LL | #[link_name = "1900"] LL | #[link_name = "1900"]
| ^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^
@ -294,7 +294,7 @@ LL | | }
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a function or static warning: attribute should be applied to a function or static
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:533:1 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:520:1
| |
LL | #[link_section = "1800"] LL | #[link_section = "1800"]
| ^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^
@ -311,37 +311,37 @@ LL | | }
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:624:1 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:611:1
| |
LL | #[crate_name = "0900"] LL | #[crate_name = "0900"]
| ^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:643:1 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:630:1
| |
LL | #[crate_type = "0800"] LL | #[crate_type = "0800"]
| ^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:662:1 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:649:1
| |
LL | #[feature(x0600)] LL | #[feature(x0600)]
| ^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:682:1 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:669:1
| |
LL | #[no_main] LL | #[no_main]
| ^^^^^^^^^^ | ^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:714:1 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:701:1
| |
LL | #[recursion_limit="0200"] LL | #[recursion_limit="0200"]
| ^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:733:1 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:720:1
| |
LL | #[type_length_limit="0100"] LL | #[type_length_limit="0100"]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -443,55 +443,55 @@ LL | #[macro_export] impl S { }
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^
warning: `#[path]` only has an effect on modules warning: `#[path]` only has an effect on modules
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:265:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:252:5
| |
LL | #[path = "3800"] fn f() { } LL | #[path = "3800"] fn f() { }
| ^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^
warning: `#[path]` only has an effect on modules warning: `#[path]` only has an effect on modules
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:268:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:255:5
| |
LL | #[path = "3800"] struct S; LL | #[path = "3800"] struct S;
| ^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^
warning: `#[path]` only has an effect on modules warning: `#[path]` only has an effect on modules
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:271:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:258:5
| |
LL | #[path = "3800"] type T = S; LL | #[path = "3800"] type T = S;
| ^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^
warning: `#[path]` only has an effect on modules warning: `#[path]` only has an effect on modules
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:274:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:261:5
| |
LL | #[path = "3800"] impl S { } LL | #[path = "3800"] impl S { }
| ^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^
warning: `#[automatically_derived]` only has an effect on items warning: `#[automatically_derived]` only has an effect on items
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:281:17 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:268:17
| |
LL | mod inner { #![automatically_derived] } LL | mod inner { #![automatically_derived] }
| ^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^
warning: `#[automatically_derived]` only has an effect on items warning: `#[automatically_derived]` only has an effect on items
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:284:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:271:5
| |
LL | #[automatically_derived] fn f() { } LL | #[automatically_derived] fn f() { }
| ^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^
warning: `#[automatically_derived]` only has an effect on items warning: `#[automatically_derived]` only has an effect on items
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:287:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:274:5
| |
LL | #[automatically_derived] struct S; LL | #[automatically_derived] struct S;
| ^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^
warning: `#[automatically_derived]` only has an effect on items warning: `#[automatically_derived]` only has an effect on items
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:290:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:277:5
| |
LL | #[automatically_derived] type T = S; LL | #[automatically_derived] type T = S;
| ^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^
warning: attribute should be applied to a free function, impl method or static warning: attribute should be applied to a free function, impl method or static
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:301:17 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:288:17
| |
LL | mod inner { #![no_mangle] } LL | mod inner { #![no_mangle] }
| ------------^^^^^^^^^^^^^-- not a free function, impl method or static | ------------^^^^^^^^^^^^^-- not a free function, impl method or static
@ -499,7 +499,7 @@ LL | mod inner { #![no_mangle] }
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a free function, impl method or static warning: attribute should be applied to a free function, impl method or static
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:308:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:295:5
| |
LL | #[no_mangle] struct S; LL | #[no_mangle] struct S;
| ^^^^^^^^^^^^ --------- not a free function, impl method or static | ^^^^^^^^^^^^ --------- not a free function, impl method or static
@ -507,7 +507,7 @@ LL | #[no_mangle] struct S;
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a free function, impl method or static warning: attribute should be applied to a free function, impl method or static
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:313:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:300:5
| |
LL | #[no_mangle] type T = S; LL | #[no_mangle] type T = S;
| ^^^^^^^^^^^^ ----------- not a free function, impl method or static | ^^^^^^^^^^^^ ----------- not a free function, impl method or static
@ -515,7 +515,7 @@ LL | #[no_mangle] type T = S;
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a free function, impl method or static warning: attribute should be applied to a free function, impl method or static
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:318:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:305:5
| |
LL | #[no_mangle] impl S { } LL | #[no_mangle] impl S { }
| ^^^^^^^^^^^^ ---------- not a free function, impl method or static | ^^^^^^^^^^^^ ---------- not a free function, impl method or static
@ -523,7 +523,7 @@ LL | #[no_mangle] impl S { }
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a free function, impl method or static warning: attribute should be applied to a free function, impl method or static
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:324:9 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:311:9
| |
LL | #[no_mangle] fn foo(); LL | #[no_mangle] fn foo();
| ^^^^^^^^^^^^ --------- not a free function, impl method or static | ^^^^^^^^^^^^ --------- not a free function, impl method or static
@ -531,7 +531,7 @@ LL | #[no_mangle] fn foo();
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a free function, impl method or static warning: attribute should be applied to a free function, impl method or static
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:329:9 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:316:9
| |
LL | #[no_mangle] fn bar() {} LL | #[no_mangle] fn bar() {}
| ^^^^^^^^^^^^ ----------- not a free function, impl method or static | ^^^^^^^^^^^^ ----------- not a free function, impl method or static
@ -539,163 +539,163 @@ LL | #[no_mangle] fn bar() {}
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: `#[should_panic]` only has an effect on functions warning: `#[should_panic]` only has an effect on functions
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:339:17 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:326:17
| |
LL | mod inner { #![should_panic] } LL | mod inner { #![should_panic] }
| ^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^
warning: `#[should_panic]` only has an effect on functions warning: `#[should_panic]` only has an effect on functions
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:344:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:331:5
| |
LL | #[should_panic] struct S; LL | #[should_panic] struct S;
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^
warning: `#[should_panic]` only has an effect on functions warning: `#[should_panic]` only has an effect on functions
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:347:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:334:5
| |
LL | #[should_panic] type T = S; LL | #[should_panic] type T = S;
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^
warning: `#[should_panic]` only has an effect on functions warning: `#[should_panic]` only has an effect on functions
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:350:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:337:5
| |
LL | #[should_panic] impl S { } LL | #[should_panic] impl S { }
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^
warning: `#[ignore]` only has an effect on functions warning: `#[ignore]` only has an effect on functions
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:357:17 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:344:17
| |
LL | mod inner { #![ignore] } LL | mod inner { #![ignore] }
| ^^^^^^^^^^ | ^^^^^^^^^^
warning: `#[ignore]` only has an effect on functions warning: `#[ignore]` only has an effect on functions
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:362:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:349:5
| |
LL | #[ignore] struct S; LL | #[ignore] struct S;
| ^^^^^^^^^ | ^^^^^^^^^
warning: `#[ignore]` only has an effect on functions warning: `#[ignore]` only has an effect on functions
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:365:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:352:5
| |
LL | #[ignore] type T = S; LL | #[ignore] type T = S;
| ^^^^^^^^^ | ^^^^^^^^^
warning: `#[ignore]` only has an effect on functions warning: `#[ignore]` only has an effect on functions
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:368:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:355:5
| |
LL | #[ignore] impl S { } LL | #[ignore] impl S { }
| ^^^^^^^^^ | ^^^^^^^^^
warning: `#[no_implicit_prelude]` only has an effect on modules warning: `#[no_implicit_prelude]` only has an effect on modules
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:376:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:363:5
| |
LL | #[no_implicit_prelude] fn f() { } LL | #[no_implicit_prelude] fn f() { }
| ^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^
warning: `#[no_implicit_prelude]` only has an effect on modules warning: `#[no_implicit_prelude]` only has an effect on modules
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:379:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:366:5
| |
LL | #[no_implicit_prelude] struct S; LL | #[no_implicit_prelude] struct S;
| ^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^
warning: `#[no_implicit_prelude]` only has an effect on modules warning: `#[no_implicit_prelude]` only has an effect on modules
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:382:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:369:5
| |
LL | #[no_implicit_prelude] type T = S; LL | #[no_implicit_prelude] type T = S;
| ^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^
warning: `#[no_implicit_prelude]` only has an effect on modules warning: `#[no_implicit_prelude]` only has an effect on modules
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:385:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:372:5
| |
LL | #[no_implicit_prelude] impl S { } LL | #[no_implicit_prelude] impl S { }
| ^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be in the root module warning: crate-level attribute should be in the root module
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:392:17 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:379:17
| |
LL | mod inner { #![reexport_test_harness_main="2900"] } LL | mod inner { #![reexport_test_harness_main="2900"] }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:395:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:382:5
| |
LL | #[reexport_test_harness_main = "2900"] fn f() { } LL | #[reexport_test_harness_main = "2900"] fn f() { }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:398:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:385:5
| |
LL | #[reexport_test_harness_main = "2900"] struct S; LL | #[reexport_test_harness_main = "2900"] struct S;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:401:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:388:5
| |
LL | #[reexport_test_harness_main = "2900"] type T = S; LL | #[reexport_test_harness_main = "2900"] type T = S;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:404:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:391:5
| |
LL | #[reexport_test_harness_main = "2900"] impl S { } LL | #[reexport_test_harness_main = "2900"] impl S { }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: `#[macro_escape]` only has an effect on `extern crate` and modules warning: `#[macro_escape]` only has an effect on `extern crate` and modules
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:416:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:403:5
| |
LL | #[macro_escape] fn f() { } LL | #[macro_escape] fn f() { }
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^
warning: `#[macro_escape]` only has an effect on `extern crate` and modules warning: `#[macro_escape]` only has an effect on `extern crate` and modules
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:419:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:406:5
| |
LL | #[macro_escape] struct S; LL | #[macro_escape] struct S;
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^
warning: `#[macro_escape]` only has an effect on `extern crate` and modules warning: `#[macro_escape]` only has an effect on `extern crate` and modules
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:422:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:409:5
| |
LL | #[macro_escape] type T = S; LL | #[macro_escape] type T = S;
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^
warning: `#[macro_escape]` only has an effect on `extern crate` and modules warning: `#[macro_escape]` only has an effect on `extern crate` and modules
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:425:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:412:5
| |
LL | #[macro_escape] impl S { } LL | #[macro_escape] impl S { }
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^
warning: crate-level attribute should be in the root module warning: crate-level attribute should be in the root module
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:432:17 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:419:17
| |
LL | mod inner { #![no_std] } LL | mod inner { #![no_std] }
| ^^^^^^^^^^ | ^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:435:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:422:5
| |
LL | #[no_std] fn f() { } LL | #[no_std] fn f() { }
| ^^^^^^^^^ | ^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:438:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:425:5
| |
LL | #[no_std] struct S; LL | #[no_std] struct S;
| ^^^^^^^^^ | ^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:441:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:428:5
| |
LL | #[no_std] type T = S; LL | #[no_std] type T = S;
| ^^^^^^^^^ | ^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:444:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:431:5
| |
LL | #[no_std] impl S { } LL | #[no_std] impl S { }
| ^^^^^^^^^ | ^^^^^^^^^
warning: attribute should be applied to a function warning: attribute should be applied to a function
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:471:17 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:458:17
| |
LL | mod inner { #![cold] } LL | mod inner { #![cold] }
| ------------^^^^^^^^-- not a function | ------------^^^^^^^^-- not a function
@ -703,7 +703,7 @@ LL | mod inner { #![cold] }
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a function warning: attribute should be applied to a function
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:478:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:465:5
| |
LL | #[cold] struct S; LL | #[cold] struct S;
| ^^^^^^^ --------- not a function | ^^^^^^^ --------- not a function
@ -711,7 +711,7 @@ LL | #[cold] struct S;
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a function warning: attribute should be applied to a function
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:483:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:470:5
| |
LL | #[cold] type T = S; LL | #[cold] type T = S;
| ^^^^^^^ ----------- not a function | ^^^^^^^ ----------- not a function
@ -719,7 +719,7 @@ LL | #[cold] type T = S;
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a function warning: attribute should be applied to a function
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:488:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:475:5
| |
LL | #[cold] impl S { } LL | #[cold] impl S { }
| ^^^^^^^ ---------- not a function | ^^^^^^^ ---------- not a function
@ -727,7 +727,7 @@ LL | #[cold] impl S { }
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a foreign function or static warning: attribute should be applied to a foreign function or static
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:500:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:487:5
| |
LL | #[link_name = "1900"] LL | #[link_name = "1900"]
| ^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^
@ -737,13 +737,13 @@ LL | extern "C" { }
| |
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
help: try `#[link(name = "1900")]` instead help: try `#[link(name = "1900")]` instead
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:500:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:487:5
| |
LL | #[link_name = "1900"] LL | #[link_name = "1900"]
| ^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^
warning: attribute should be applied to a foreign function or static warning: attribute should be applied to a foreign function or static
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:507:17 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:494:17
| |
LL | mod inner { #![link_name="1900"] } LL | mod inner { #![link_name="1900"] }
| ------------^^^^^^^^^^^^^^^^^^^^-- not a foreign function or static | ------------^^^^^^^^^^^^^^^^^^^^-- not a foreign function or static
@ -751,7 +751,7 @@ LL | mod inner { #![link_name="1900"] }
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a foreign function or static warning: attribute should be applied to a foreign function or static
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:512:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:499:5
| |
LL | #[link_name = "1900"] fn f() { } LL | #[link_name = "1900"] fn f() { }
| ^^^^^^^^^^^^^^^^^^^^^ ---------- not a foreign function or static | ^^^^^^^^^^^^^^^^^^^^^ ---------- not a foreign function or static
@ -759,7 +759,7 @@ LL | #[link_name = "1900"] fn f() { }
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a foreign function or static warning: attribute should be applied to a foreign function or static
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:517:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:504:5
| |
LL | #[link_name = "1900"] struct S; LL | #[link_name = "1900"] struct S;
| ^^^^^^^^^^^^^^^^^^^^^ --------- not a foreign function or static | ^^^^^^^^^^^^^^^^^^^^^ --------- not a foreign function or static
@ -767,7 +767,7 @@ LL | #[link_name = "1900"] struct S;
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a foreign function or static warning: attribute should be applied to a foreign function or static
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:522:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:509:5
| |
LL | #[link_name = "1900"] type T = S; LL | #[link_name = "1900"] type T = S;
| ^^^^^^^^^^^^^^^^^^^^^ ----------- not a foreign function or static | ^^^^^^^^^^^^^^^^^^^^^ ----------- not a foreign function or static
@ -775,7 +775,7 @@ LL | #[link_name = "1900"] type T = S;
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a foreign function or static warning: attribute should be applied to a foreign function or static
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:527:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:514:5
| |
LL | #[link_name = "1900"] impl S { } LL | #[link_name = "1900"] impl S { }
| ^^^^^^^^^^^^^^^^^^^^^ ---------- not a foreign function or static | ^^^^^^^^^^^^^^^^^^^^^ ---------- not a foreign function or static
@ -783,7 +783,7 @@ LL | #[link_name = "1900"] impl S { }
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a function or static warning: attribute should be applied to a function or static
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:539:17 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:526:17
| |
LL | mod inner { #![link_section="1800"] } LL | mod inner { #![link_section="1800"] }
| ------------^^^^^^^^^^^^^^^^^^^^^^^-- not a function or static | ------------^^^^^^^^^^^^^^^^^^^^^^^-- not a function or static
@ -791,7 +791,7 @@ LL | mod inner { #![link_section="1800"] }
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a function or static warning: attribute should be applied to a function or static
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:546:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:533:5
| |
LL | #[link_section = "1800"] struct S; LL | #[link_section = "1800"] struct S;
| ^^^^^^^^^^^^^^^^^^^^^^^^ --------- not a function or static | ^^^^^^^^^^^^^^^^^^^^^^^^ --------- not a function or static
@ -799,7 +799,7 @@ LL | #[link_section = "1800"] struct S;
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a function or static warning: attribute should be applied to a function or static
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:551:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:538:5
| |
LL | #[link_section = "1800"] type T = S; LL | #[link_section = "1800"] type T = S;
| ^^^^^^^^^^^^^^^^^^^^^^^^ ----------- not a function or static | ^^^^^^^^^^^^^^^^^^^^^^^^ ----------- not a function or static
@ -807,7 +807,7 @@ LL | #[link_section = "1800"] type T = S;
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a function or static warning: attribute should be applied to a function or static
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:556:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:543:5
| |
LL | #[link_section = "1800"] impl S { } LL | #[link_section = "1800"] impl S { }
| ^^^^^^^^^^^^^^^^^^^^^^^^ ---------- not a function or static | ^^^^^^^^^^^^^^^^^^^^^^^^ ---------- not a function or static
@ -815,181 +815,181 @@ LL | #[link_section = "1800"] impl S { }
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: crate-level attribute should be in the root module warning: crate-level attribute should be in the root module
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:627:17 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:614:17
| |
LL | mod inner { #![crate_name="0900"] } LL | mod inner { #![crate_name="0900"] }
| ^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:630:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:617:5
| |
LL | #[crate_name = "0900"] fn f() { } LL | #[crate_name = "0900"] fn f() { }
| ^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:633:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:620:5
| |
LL | #[crate_name = "0900"] struct S; LL | #[crate_name = "0900"] struct S;
| ^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:636:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:623:5
| |
LL | #[crate_name = "0900"] type T = S; LL | #[crate_name = "0900"] type T = S;
| ^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:639:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:626:5
| |
LL | #[crate_name = "0900"] impl S { } LL | #[crate_name = "0900"] impl S { }
| ^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be in the root module warning: crate-level attribute should be in the root module
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:646:17 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:633:17
| |
LL | mod inner { #![crate_type="0800"] } LL | mod inner { #![crate_type="0800"] }
| ^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:649:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:636:5
| |
LL | #[crate_type = "0800"] fn f() { } LL | #[crate_type = "0800"] fn f() { }
| ^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:652:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:639:5
| |
LL | #[crate_type = "0800"] struct S; LL | #[crate_type = "0800"] struct S;
| ^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:655:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:642:5
| |
LL | #[crate_type = "0800"] type T = S; LL | #[crate_type = "0800"] type T = S;
| ^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:658:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:645:5
| |
LL | #[crate_type = "0800"] impl S { } LL | #[crate_type = "0800"] impl S { }
| ^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be in the root module warning: crate-level attribute should be in the root module
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:665:17 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:652:17
| |
LL | mod inner { #![feature(x0600)] } LL | mod inner { #![feature(x0600)] }
| ^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:668:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:655:5
| |
LL | #[feature(x0600)] fn f() { } LL | #[feature(x0600)] fn f() { }
| ^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:671:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:658:5
| |
LL | #[feature(x0600)] struct S; LL | #[feature(x0600)] struct S;
| ^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:674:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:661:5
| |
LL | #[feature(x0600)] type T = S; LL | #[feature(x0600)] type T = S;
| ^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:677:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:664:5
| |
LL | #[feature(x0600)] impl S { } LL | #[feature(x0600)] impl S { }
| ^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be in the root module warning: crate-level attribute should be in the root module
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:685:17 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:672:17
| |
LL | mod inner { #![no_main] } LL | mod inner { #![no_main] }
| ^^^^^^^^^^^ | ^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:688:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:675:5
| |
LL | #[no_main] fn f() { } LL | #[no_main] fn f() { }
| ^^^^^^^^^^ | ^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:691:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:678:5
| |
LL | #[no_main] struct S; LL | #[no_main] struct S;
| ^^^^^^^^^^ | ^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:694:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:681:5
| |
LL | #[no_main] type T = S; LL | #[no_main] type T = S;
| ^^^^^^^^^^ | ^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:697:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:684:5
| |
LL | #[no_main] impl S { } LL | #[no_main] impl S { }
| ^^^^^^^^^^ | ^^^^^^^^^^
warning: crate-level attribute should be in the root module warning: crate-level attribute should be in the root module
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:717:17 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:704:17
| |
LL | mod inner { #![recursion_limit="0200"] } LL | mod inner { #![recursion_limit="0200"] }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:720:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:707:5
| |
LL | #[recursion_limit="0200"] fn f() { } LL | #[recursion_limit="0200"] fn f() { }
| ^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:723:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:710:5
| |
LL | #[recursion_limit="0200"] struct S; LL | #[recursion_limit="0200"] struct S;
| ^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:726:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:713:5
| |
LL | #[recursion_limit="0200"] type T = S; LL | #[recursion_limit="0200"] type T = S;
| ^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:729:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:716:5
| |
LL | #[recursion_limit="0200"] impl S { } LL | #[recursion_limit="0200"] impl S { }
| ^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be in the root module warning: crate-level attribute should be in the root module
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:736:17 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:723:17
| |
LL | mod inner { #![type_length_limit="0100"] } LL | mod inner { #![type_length_limit="0100"] }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:739:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:726:5
| |
LL | #[type_length_limit="0100"] fn f() { } LL | #[type_length_limit="0100"] fn f() { }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:742:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:729:5
| |
LL | #[type_length_limit="0100"] struct S; LL | #[type_length_limit="0100"] struct S;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:745:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:732:5
| |
LL | #[type_length_limit="0100"] type T = S; LL | #[type_length_limit="0100"] type T = S;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:748:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:735:5
| |
LL | #[type_length_limit="0100"] impl S { } LL | #[type_length_limit="0100"] impl S { }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^