Skip to content

Conversation

@JonathanBrouwer
Copy link
Contributor

@JonathanBrouwer JonathanBrouwer commented Nov 20, 2025

cc #148756

Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com>
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com>
@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Nov 20, 2025
@JonathanBrouwer
Copy link
Contributor Author

@bors try

@rust-bors

This comment has been minimized.

@rust-log-analyzer
Copy link
Collaborator

The job aarch64-gnu-llvm-20-1 failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
To only update this specific test, also pass `--test-args attributes/codegen_attr_on_required_trait_method.rs`

error: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/attributes/codegen_attr_on_required_trait_method.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/attributes/codegen_attr_on_required_trait_method" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers"
stdout: none
--- stderr -------------------------------
error: `#[cold]` attribute cannot be used on required trait methods
##[error]  --> /checkout/tests/ui/attributes/codegen_attr_on_required_trait_method.rs:6:5
   |
---
---- [ui] tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs stdout ----

error: test compilation failed although it shouldn't!
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/feature-gates/issue-43106-gating-of-builtin-attrs" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers"
stdout: none
--- stderr -------------------------------
warning: `#[macro_escape]` is a deprecated synonym for `#[macro_use]`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:529:17
   |
LL |     mod inner { #![macro_escape] }
   |                 ^^^^^^^^^^^^^^^^
   |
   = help: try an outer attribute: `#[macro_use]`

warning: `#[macro_escape]` is a deprecated synonym for `#[macro_use]`
---

warning: unknown lint: `x5400`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:43:9
   |
LL | #![warn(x5400)] //~ WARN unknown lint: `x5400`
   |         ^^^^^
   |
note: the lint level is defined here
  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:37:28
   |
LL | #![warn(unused_attributes, unknown_lints)]
   |                            ^^^^^^^^^^^^^

warning: unknown lint: `x5300`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:44:10
   |
LL | #![allow(x5300)] //~ WARN unknown lint: `x5300`
   |          ^^^^^

warning: unknown lint: `x5200`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:45:11
   |
LL | #![forbid(x5200)] //~ WARN unknown lint: `x5200`
   |           ^^^^^

warning: unknown lint: `x5100`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:46:9
   |
LL | #![deny(x5100)] //~ WARN unknown lint: `x5100`
   |         ^^^^^

warning: unknown lint: `x5400`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:111:8
   |
LL | #[warn(x5400)]
   |        ^^^^^

warning: unknown lint: `x5400`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:114:25
   |
LL |     mod inner { #![warn(x5400)] }
   |                         ^^^^^

warning: unknown lint: `x5400`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:117:12
   |
LL |     #[warn(x5400)] fn f() { }
   |            ^^^^^

warning: unknown lint: `x5400`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:120:12
   |
LL |     #[warn(x5400)] struct S;
   |            ^^^^^

warning: unknown lint: `x5400`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:123:12
   |
LL |     #[warn(x5400)] type T = S;
   |            ^^^^^

warning: unknown lint: `x5400`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:126:12
   |
LL |     #[warn(x5400)] impl S { }
   |            ^^^^^

warning: unknown lint: `x5300`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:130:9
   |
LL | #[allow(x5300)]
   |         ^^^^^

warning: unknown lint: `x5300`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:133:26
   |
LL |     mod inner { #![allow(x5300)] }
   |                          ^^^^^

warning: unknown lint: `x5300`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:136:13
   |
LL |     #[allow(x5300)] fn f() { }
   |             ^^^^^

warning: unknown lint: `x5300`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:139:13
   |
LL |     #[allow(x5300)] struct S;
   |             ^^^^^

warning: unknown lint: `x5300`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:142:13
   |
LL |     #[allow(x5300)] type T = S;
   |             ^^^^^

warning: unknown lint: `x5300`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:145:13
   |
LL |     #[allow(x5300)] impl S { }
   |             ^^^^^

warning: unknown lint: `x5200`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:149:10
   |
LL | #[forbid(x5200)]
   |          ^^^^^

warning: unknown lint: `x5200`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:152:27
   |
LL |     mod inner { #![forbid(x5200)] }
   |                           ^^^^^

warning: unknown lint: `x5200`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:155:14
   |
LL |     #[forbid(x5200)] fn f() { }
   |              ^^^^^

warning: unknown lint: `x5200`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:158:14
   |
LL |     #[forbid(x5200)] struct S;
   |              ^^^^^

warning: unknown lint: `x5200`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:161:14
   |
LL |     #[forbid(x5200)] type T = S;
   |              ^^^^^

warning: unknown lint: `x5200`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:164:14
   |
LL |     #[forbid(x5200)] impl S { }
   |              ^^^^^

warning: unknown lint: `x5100`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:168:8
   |
LL | #[deny(x5100)]
   |        ^^^^^

warning: unknown lint: `x5100`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:171:25
   |
LL |     mod inner { #![deny(x5100)] }
   |                         ^^^^^

warning: unknown lint: `x5100`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:174:12
   |
LL |     #[deny(x5100)] fn f() { }
   |            ^^^^^

warning: unknown lint: `x5100`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:177:12
   |
LL |     #[deny(x5100)] struct S;
   |            ^^^^^

warning: unknown lint: `x5100`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:180:12
   |
LL |     #[deny(x5100)] type T = S;
   |            ^^^^^

warning: unknown lint: `x5100`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:183:12
   |
LL |     #[deny(x5100)] impl S { }
   |            ^^^^^

error: `#[link_section]` attribute cannot be used on required trait methods
##[error]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:715:9
   |
---
...
LL | / mod link {
LL | |     //~^ NOTE not an `extern` block
LL | |
LL | |     mod inner { #![link(name = "x")] }
...  |
LL | | }
   | |_- not an `extern` block
   |
   = 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 an `extern` block with non-Rust ABI
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:72:1
   |
LL | #![link(name = "x")] //~ WARN attribute should be applied to an `extern` block
   | ^^^^^^^^^^^^^^^^^^^^ not an `extern` block
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!

warning: the feature `rust1` has been stable since 1.0.0 and no longer requires an attribute to enable
---

warning: crate-level attribute should be in the root module
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:505:17
   |
LL |     mod inner { #![reexport_test_harness_main="2900"] }
   |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: crate-level attribute should be an inner attribute
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:508:5
   |
LL |     #[reexport_test_harness_main = "2900"] fn f() { }
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: add a `!`
   |
LL |     #![reexport_test_harness_main = "2900"] fn f() { }
   |      +

warning: crate-level attribute should be an inner attribute
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:512:5
   |
LL |     #[reexport_test_harness_main = "2900"] struct S;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: add a `!`
   |
LL |     #![reexport_test_harness_main = "2900"] struct S;
   |      +

warning: crate-level attribute should be an inner attribute
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:516:5
   |
LL |     #[reexport_test_harness_main = "2900"] type T = S;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: add a `!`
   |
LL |     #![reexport_test_harness_main = "2900"] type T = S;
   |      +

warning: crate-level attribute should be an inner attribute
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:520:5
   |
LL |     #[reexport_test_harness_main = "2900"] impl S { }
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: add a `!`
   |
LL |     #![reexport_test_harness_main = "2900"] impl S { }
   |      +

warning: attribute should be applied to an `extern` block with non-Rust ABI
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:749:17
   |
LL |     mod inner { #![link(name = "x")] }
   |     ------------^^^^^^^^^^^^^^^^^^^^-- not an `extern` block
   |
   = 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 an `extern` block with non-Rust ABI
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:754:5
   |
LL |     #[link(name = "x")] fn f() { }
   |     ^^^^^^^^^^^^^^^^^^^ ---------- not an `extern` block
   |
   = 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 an `extern` block with non-Rust ABI
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:759:5
   |
LL |     #[link(name = "x")] struct S;
   |     ^^^^^^^^^^^^^^^^^^^ --------- not an `extern` block
   |
   = 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 an `extern` block with non-Rust ABI
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:764:5
   |
LL |     #[link(name = "x")] type T = S;
   |     ^^^^^^^^^^^^^^^^^^^ ----------- not an `extern` block
   |
   = 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 an `extern` block with non-Rust ABI
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:769:5
   |
LL |     #[link(name = "x")] impl S { }
   |     ^^^^^^^^^^^^^^^^^^^ ---------- not an `extern` block
   |
   = 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 an `extern` block with non-Rust ABI
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:774:5
   |
LL |     #[link(name = "x")] extern "Rust" {}
   |     ^^^^^^^^^^^^^^^^^^^
   |
   = 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]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:823:17
   |
LL |     mod inner { #![windows_subsystem="windows"] }
   |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: crate-level attribute should be an inner attribute
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:826:5
   |
LL |     #[windows_subsystem = "windows"] fn f() { }
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: add a `!`
   |
LL |     #![windows_subsystem = "windows"] fn f() { }
   |      +

warning: crate-level attribute should be an inner attribute
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:830:5
   |
LL |     #[windows_subsystem = "windows"] struct S;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: add a `!`
   |
LL |     #![windows_subsystem = "windows"] struct S;
   |      +

warning: crate-level attribute should be an inner attribute
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:834:5
   |
LL |     #[windows_subsystem = "windows"] type T = S;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: add a `!`
   |
LL |     #![windows_subsystem = "windows"] type T = S;
   |      +

warning: crate-level attribute should be an inner attribute
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:838:5
   |
LL |     #[windows_subsystem = "windows"] impl S { }
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: add a `!`
   |
LL |     #![windows_subsystem = "windows"] impl S { }
   |      +

warning: crate-level attribute should be in the root module
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:873:17
   |
LL |     mod inner { #![crate_type="0800"] }
   |                 ^^^^^^^^^^^^^^^^^^^^^

warning: crate-level attribute should be an inner attribute
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:876:5
   |
LL |     #[crate_type = "0800"] fn f() { }
   |     ^^^^^^^^^^^^^^^^^^^^^^
   |
help: add a `!`
   |
LL |     #![crate_type = "0800"] fn f() { }
   |      +

warning: crate-level attribute should be an inner attribute
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:880:5
   |
---

warning: crate-level attribute should be an inner attribute
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:884:5
   |
LL |     #[crate_type = "0800"] type T = S;
   |     ^^^^^^^^^^^^^^^^^^^^^^
   |
help: add a `!`
   |
LL |     #![crate_type = "0800"] type T = S;
   |      +

warning: crate-level attribute should be an inner attribute
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:888:5
   |
LL |     #[crate_type = "0800"] impl S { }
   |     ^^^^^^^^^^^^^^^^^^^^^^
   |
help: add a `!`
   |
LL |     #![crate_type = "0800"] impl S { }
   |      +

warning: crate-level attribute should be in the root module
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:897:17
   |
LL |     mod inner { #![feature(x0600)] }
   |                 ^^^^^^^^^^^^^^^^^^

warning: crate-level attribute should be an inner attribute
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:900:5
   |
LL |     #[feature(x0600)] fn f() { }
   |     ^^^^^^^^^^^^^^^^^
   |
help: add a `!`
   |
LL |     #![feature(x0600)] fn f() { }
   |      +

warning: crate-level attribute should be an inner attribute
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:904:5
   |
LL |     #[feature(x0600)] struct S;
   |     ^^^^^^^^^^^^^^^^^
   |
help: add a `!`
   |
LL |     #![feature(x0600)] struct S;
   |      +

warning: crate-level attribute should be an inner attribute
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:908:5
   |
LL |     #[feature(x0600)] type T = S;
   |     ^^^^^^^^^^^^^^^^^
   |
help: add a `!`
   |
LL |     #![feature(x0600)] type T = S;
   |      +

warning: crate-level attribute should be an inner attribute
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:912:5
   |
LL |     #[feature(x0600)] impl S { }
   |     ^^^^^^^^^^^^^^^^^
   |
help: add a `!`
   |
LL |     #![feature(x0600)] impl S { }
   |      +

warning: crate-level attribute should be in the root module
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:922:17
   |
LL |     mod inner { #![no_main] }
   |                 ^^^^^^^^^^^

warning: crate-level attribute should be an inner attribute
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:925:5
   |
LL |     #[no_main] fn f() { }
   |     ^^^^^^^^^^
   |
help: add a `!`
   |
LL |     #![no_main] fn f() { }
---

warning: crate-level attribute should be an inner attribute
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:933:5
   |
LL |     #[no_main] type T = S;
   |     ^^^^^^^^^^
   |
help: add a `!`
   |
LL |     #![no_main] type T = S;
   |      +

warning: crate-level attribute should be an inner attribute
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:937:5
   |
LL |     #[no_main] impl S { }
   |     ^^^^^^^^^^
   |
help: add a `!`
   |
LL |     #![no_main] impl S { }
   |      +

warning: crate-level attribute should be in the root module
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:946:17
   |
LL |     mod inner { #![no_builtins] }
   |                 ^^^^^^^^^^^^^^^

warning: crate-level attribute should be an inner attribute
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:949:5
   |
LL |     #[no_builtins] fn f() { }
   |     ^^^^^^^^^^^^^^
   |
help: add a `!`
   |
LL |     #![no_builtins] fn f() { }
   |      +

warning: crate-level attribute should be an inner attribute
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:953:5
   |
LL |     #[no_builtins] struct S;
   |     ^^^^^^^^^^^^^^
   |
help: add a `!`
   |
LL |     #![no_builtins] struct S;
   |      +

warning: crate-level attribute should be an inner attribute
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:957:5
   |
LL |     #[no_builtins] type T = S;
   |     ^^^^^^^^^^^^^^
   |
help: add a `!`
   |
LL |     #![no_builtins] type T = S;
   |      +

warning: crate-level attribute should be an inner attribute
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:961:5
   |
LL |     #[no_builtins] impl S { }
   |     ^^^^^^^^^^^^^^
   |
help: add a `!`
   |
LL |     #![no_builtins] impl S { }
   |      +

warning: `#[macro_use]` attribute cannot be used on functions
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:191:5
   |
---

warning: `#[macro_use]` attribute cannot be used on type aliases
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:203:5
   |
LL |     #[macro_use] 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!
   = help: `#[macro_use]` can be applied to crates, extern crates, and modules

warning: `#[macro_use]` attribute cannot be used on inherent impl blocks
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:209:5
   |
LL |     #[macro_use] 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!
   = help: `#[macro_use]` can be applied to crates, extern crates, and modules

---

warning: `#[macro_export]` attribute cannot be used on modules
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:222:17
   |
LL |     mod inner { #![macro_export] }
   |                 ^^^^^^^^^^^^^^^^
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = help: `#[macro_export]` can only be applied to macro defs

---

warning: `#[macro_export]` attribute cannot be used on inherent impl blocks
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:246:5
   |
LL |     #[macro_export] 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!
   = help: `#[macro_export]` can only be applied to macro defs

warning: `#[path]` attribute cannot be used on functions
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:289:5
   |
LL |     #[path = "3800"] 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!
   = help: `#[path]` can only be applied to modules

warning: `#[path]` attribute cannot be used on structs
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:295:5
   |
LL |     #[path = "3800"]  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!
   = help: `#[path]` can only be applied to modules

warning: `#[path]` attribute cannot be used on type aliases
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:301:5
   |
LL |     #[path = "3800"] 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!
   = help: `#[path]` can only be applied to modules

warning: `#[path]` attribute cannot be used on inherent impl blocks
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:307:5
   |
LL |     #[path = "3800"] 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!
   = help: `#[path]` can only be applied to modules

---

warning: `#[automatically_derived]` attribute cannot be used on modules
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:320:17
   |
LL |     mod inner { #![automatically_derived] }
   |                 ^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = help: `#[automatically_derived]` can only be applied to trait impl blocks

warning: `#[automatically_derived]` attribute cannot be used on functions
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:326:5
   |
LL |     #[automatically_derived] 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!
   = help: `#[automatically_derived]` can only be applied to trait impl blocks

---

warning: `#[automatically_derived]` attribute cannot be used on traits
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:344:5
   |
LL |     #[automatically_derived] trait W { }
   |     ^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = help: `#[automatically_derived]` can only be applied to trait impl blocks

warning: `#[automatically_derived]` attribute cannot be used on inherent impl blocks
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:350:5
   |
LL |     #[automatically_derived] 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!
   = help: `#[automatically_derived]` can only be applied to trait impl blocks

---

warning: `#[no_mangle]` attribute cannot be used on modules
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:365:17
   |
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!
   = help: `#[no_mangle]` can be applied to functions and statics

---

warning: `#[no_mangle]` attribute cannot be used on type aliases
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:379:5
   |
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!
   = help: `#[no_mangle]` can be applied to functions and statics

warning: `#[no_mangle]` attribute cannot be used on inherent impl blocks
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:385:5
   |
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!
   = help: `#[no_mangle]` can be applied to functions and statics

warning: `#[no_mangle]` attribute cannot be used on required trait methods
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:392:9
   |
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!
   = help: `#[no_mangle]` can be applied to functions, inherent methods, statics, and trait methods in impl blocks

warning: `#[no_mangle]` attribute cannot be used on provided trait methods
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:398:9
   |
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!
   = help: `#[no_mangle]` can be applied to functions, inherent methods, statics, and trait methods in impl blocks

---

warning: `#[should_panic]` attribute cannot be used on modules
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:412:17
   |
LL |     mod inner { #![should_panic] }
   |                 ^^^^^^^^^^^^^^^^
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = help: `#[should_panic]` can only be applied to functions

---

warning: `#[should_panic]` attribute cannot be used on inherent impl blocks
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:432:5
   |
LL |     #[should_panic] 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!
   = help: `#[should_panic]` can only be applied to functions

---

warning: `#[ignore]` attribute cannot be used on modules
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:445:17
   |
LL |     mod inner { #![ignore] }
   |                 ^^^^^^^^^^
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = help: `#[ignore]` can only be applied to functions

---

warning: `#[ignore]` attribute cannot be used on inherent impl blocks
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:465:5
   |
LL |     #[ignore] 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!
   = help: `#[ignore]` can only be applied to functions

warning: `#[no_implicit_prelude]` attribute cannot be used on functions
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:476:5
   |
LL |     #[no_implicit_prelude] 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!
   = help: `#[no_implicit_prelude]` can be applied to crates and modules

warning: `#[no_implicit_prelude]` attribute cannot be used on structs
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:482:5
   |
LL |     #[no_implicit_prelude] 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!
   = help: `#[no_implicit_prelude]` can be applied to crates and modules

warning: `#[no_implicit_prelude]` attribute cannot be used on type aliases
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:488:5
   |
LL |     #[no_implicit_prelude] 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!
   = help: `#[no_implicit_prelude]` can be applied to crates and modules

warning: `#[no_implicit_prelude]` attribute cannot be used on inherent impl blocks
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:494:5
   |
LL |     #[no_implicit_prelude] 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!
   = help: `#[no_implicit_prelude]` can be applied to crates and modules

warning: `#[macro_escape]` attribute cannot be used on functions
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:533:5
   |
LL |     #[macro_escape] 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!
   = help: `#[macro_escape]` can be applied to crates, extern crates, and modules

---

warning: `#[macro_escape]` attribute cannot be used on type aliases
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:545:5
   |
LL |     #[macro_escape] 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!
   = help: `#[macro_escape]` can be applied to crates, extern crates, and modules

warning: `#[macro_escape]` attribute cannot be used on inherent impl blocks
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:551:5
   |
LL |     #[macro_escape] 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!
   = help: `#[macro_escape]` can be applied to crates, extern crates, and modules

---
   |
note: This attribute does not have an `!`, which means it is applied to this module
  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:560:1
   |
LL | / mod no_std {
LL | |     //~^ NOTE This attribute does not have an `!`, which means it is applied to this module
LL | |     mod inner { #![no_std] }
...  |
LL | | }
   | |_^

warning: the `#![no_std]` attribute can only be used at the crate root
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:562:17
   |
LL |     mod inner { #![no_std] }
   |                 ^^^^^^^^^^

warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![no_std]`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:565:5
   |
LL |     #[no_std] fn f() { }
   |     ^^^^^^^^^
   |
note: This attribute does not have an `!`, which means it is applied to this function
  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:565:15
   |
LL |     #[no_std] fn f() { }
   |               ^^^^^^^^^^

warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![no_std]`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:569:5
   |
---

warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![no_std]`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:573:5
   |
LL |     #[no_std] type T = S;
   |     ^^^^^^^^^
   |
note: This attribute does not have an `!`, which means it is applied to this type alias
  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:573:15
   |
LL |     #[no_std] type T = S;
   |               ^^^^^^^^^^^

warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![no_std]`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:577:5
   |
LL |     #[no_std] impl S { }
   |     ^^^^^^^^^
   |
note: This attribute does not have an `!`, which means it is applied to this implementation block
  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:577:15
   |
LL |     #[no_std] impl S { }
   |               ^^^^^^^^^^

warning: `#[cold]` attribute cannot be used on modules
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:599:1
   |
---

warning: `#[cold]` attribute cannot be used on modules
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:606:17
   |
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!
   = help: `#[cold]` can only be applied to functions

---

warning: `#[cold]` attribute cannot be used on type aliases
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:620:5
   |
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!
   = help: `#[cold]` can only be applied to functions

warning: `#[cold]` attribute cannot be used on inherent impl blocks
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:626:5
   |
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!
   = help: `#[cold]` can only be applied to functions

---

warning: `#[link_name]` attribute cannot be used on modules
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:646:17
   |
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!
   = help: `#[link_name]` can be applied to foreign functions and foreign statics

---

warning: `#[link_name]` attribute cannot be used on type aliases
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:664:5
   |
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!
   = help: `#[link_name]` can be applied to foreign functions and foreign statics

warning: `#[link_name]` attribute cannot be used on inherent impl blocks
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:670:5
   |
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!
   = help: `#[link_name]` can be applied to foreign functions and foreign statics

---

warning: `#[link_section]` attribute cannot be used on modules
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:683:17
   |
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!
   = help: `#[link_section]` can be applied to functions and statics

---

warning: `#[link_section]` attribute cannot be used on type aliases
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:697:5
   |
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!
   = help: `#[link_section]` can be applied to functions and statics

warning: `#[link_section]` attribute cannot be used on inherent impl blocks
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:703:5
   |
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!
   = help: `#[link_section]` can be applied to functions and statics

---

warning: `#[must_use]` attribute cannot be used on modules
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:794:1
   |
LL | #[must_use] //~ WARN attribute cannot be used on
   | ^^^^^^^^^^^
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = help: `#[must_use]` can be applied to data types, functions, traits, and unions

warning: `#[must_use]` attribute cannot be used on modules
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:799:17
   |
LL |     mod inner { #![must_use] } //~ WARN attribute cannot be used on
   |                 ^^^^^^^^^^^^
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = help: `#[must_use]` can be applied to data types, functions, traits, and unions

warning: `#[must_use]` attribute cannot be used on type aliases
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:808:5
   |
LL |     #[must_use] type T = S; //~ WARN attribute cannot be used on
   |     ^^^^^^^^^^^
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = help: `#[must_use]` can be applied to data types, functions, traits, and unions

warning: `#[must_use]` attribute cannot be used on inherent impl blocks
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:813:5
   |
LL |     #[must_use] impl S { } //~ WARN attribute cannot be used on
   |     ^^^^^^^^^^^
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = help: `#[must_use]` can be applied to data types, functions, traits, and unions

---
   |
note: This attribute does not have an `!`, which means it is applied to this module
  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:847:1
   |
LL | / mod crate_name {
LL | | //~^ NOTE This attribute does not have an `!`, which means it is applied to this module
LL | |     mod inner { #![crate_name="0900"] }
...  |
LL | | }
   | |_^

warning: the `#![crate_name]` attribute can only be used at the crate root
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:849:17
   |
LL |     mod inner { #![crate_name="0900"] }
   |                 ^^^^^^^^^^^^^^^^^^^^^

warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![crate_name]`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:852:5
   |
LL |     #[crate_name = "0900"] fn f() { }
   |     ^^^^^^^^^^^^^^^^^^^^^^
   |
note: This attribute does not have an `!`, which means it is applied to this function
  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:852:28
   |
LL |     #[crate_name = "0900"] fn f() { }
   |                            ^^^^^^^^^^

warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![crate_name]`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:856:5
   |
---

warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![crate_name]`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:860:5
   |
LL |     #[crate_name = "0900"] type T = S;
   |     ^^^^^^^^^^^^^^^^^^^^^^
   |
note: This attribute does not have an `!`, which means it is applied to this type alias
  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:860:28
   |
LL |     #[crate_name = "0900"] type T = S;
   |                            ^^^^^^^^^^^

warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![crate_name]`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:864:5
   |
LL |     #[crate_name = "0900"] impl S { }
   |     ^^^^^^^^^^^^^^^^^^^^^^
   |
note: This attribute does not have an `!`, which means it is applied to this implementation block
  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:864:28
   |
LL |     #[crate_name = "0900"] impl S { }
   |                            ^^^^^^^^^^

warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![recursion_limit]`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:966:1
   |
LL | #[recursion_limit="0200"]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^
   |
note: This attribute does not have an `!`, which means it is applied to this module
  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:968:1
   |
LL | / mod recursion_limit {
LL | |     //~^ NOTE This attribute does not have an `!`, which means it is applied to this module
LL | |     mod inner { #![recursion_limit="0200"] }
...  |
LL | | }
   | |_^

warning: the `#![recursion_limit]` attribute can only be used at the crate root
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:970:17
   |
LL |     mod inner { #![recursion_limit="0200"] }
   |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![recursion_limit]`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:973:5
   |
LL |     #[recursion_limit="0200"] fn f() { }
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
   |
note: This attribute does not have an `!`, which means it is applied to this function
  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:973:31
   |
LL |     #[recursion_limit="0200"] fn f() { }
   |                               ^^^^^^^^^^

warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![recursion_limit]`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:977:5
   |
LL |     #[recursion_limit="0200"] struct S;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
   |
note: This attribute does not have an `!`, which means it is applied to this struct
  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:977:31
   |
LL |     #[recursion_limit="0200"] struct S;
   |                               ^^^^^^^^^

warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![recursion_limit]`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:981:5
   |
LL |     #[recursion_limit="0200"] type T = S;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
   |
note: This attribute does not have an `!`, which means it is applied to this type alias
  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:981:31
   |
LL |     #[recursion_limit="0200"] type T = S;
   |                               ^^^^^^^^^^^

warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![recursion_limit]`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:985:5
   |
LL |     #[recursion_limit="0200"] impl S { }
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
   |
note: This attribute does not have an `!`, which means it is applied to this implementation block
  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:985:31
   |
LL |     #[recursion_limit="0200"] impl S { }
   |                               ^^^^^^^^^^

warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![type_length_limit]`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:990:1
   |
LL | #[type_length_limit="0100"]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
note: This attribute does not have an `!`, which means it is applied to this module
  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:992:1
   |
LL | / mod type_length_limit {
LL | |     //~^ NOTE This attribute does not have an `!`, which means it is applied to this module
LL | |     mod inner { #![type_length_limit="0100"] }
...  |
LL | | }
   | |_^

warning: the `#![type_length_limit]` attribute can only be used at the crate root
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:994:17
   |
LL |     mod inner { #![type_length_limit="0100"] }
   |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![type_length_limit]`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:997:5
   |
LL |     #[type_length_limit="0100"] fn f() { }
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
note: This attribute does not have an `!`, which means it is applied to this function
  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:997:33
   |
LL |     #[type_length_limit="0100"] fn f() { }
   |                                 ^^^^^^^^^^

warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![type_length_limit]`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:1001:5
   |
LL |     #[type_length_limit="0100"] struct S;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
note: This attribute does not have an `!`, which means it is applied to this struct
  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:1001:33
   |
LL |     #[type_length_limit="0100"] struct S;
   |                                 ^^^^^^^^^

warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![type_length_limit]`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:1005:5
   |
LL |     #[type_length_limit="0100"] type T = S;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
note: This attribute does not have an `!`, which means it is applied to this type alias
  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:1005:33
   |
LL |     #[type_length_limit="0100"] type T = S;
   |                                 ^^^^^^^^^^^

warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![type_length_limit]`
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:1009:5
   |
LL |     #[type_length_limit="0100"] impl S { }
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
note: This attribute does not have an `!`, which means it is applied to this implementation block
  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:1009:33
   |
LL |     #[type_length_limit="0100"] impl S { }
   |                                 ^^^^^^^^^^

warning: `#[should_panic]` attribute cannot be used on crates
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:50:1
   |
LL | #![should_panic] //~ WARN attribute cannot be used on
   | ^^^^^^^^^^^^^^^^
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = help: `#[should_panic]` can only be applied to functions

warning: `#[ignore]` attribute cannot be used on crates
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:54:1
   |
LL | #![ignore] //~ WARN attribute cannot be used on
   | ^^^^^^^^^^
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = help: `#[ignore]` can only be applied to functions

warning: `#[proc_macro_derive]` attribute cannot be used on crates
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:63:1
   |
LL | #![proc_macro_derive(Test)] //~ WARN attribute cannot be used on
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = help: `#[proc_macro_derive]` can only be applied to functions

warning: `#[cold]` attribute cannot be used on crates
##[warning]  --> /checkout/tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs.rs:68:1
   |
LL | #![cold] //~ WARN attribute cannot be used on
   | ^^^^^^^^
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = help: `#[cold]` can only be applied to functions

@jdonszelmann jdonszelmann self-assigned this Nov 20, 2025
@rust-bors
Copy link

rust-bors bot commented Nov 20, 2025

☀️ Try build successful (CI)
Build commit: d83b142 (d83b14207998f47b18a34e930157ac0d7c18b16e, parent: 683dd08db5808c41baceef49368fc82a6c4767bb)

@JonathanBrouwer
Copy link
Contributor Author

@craterbot check

@craterbot
Copy link
Collaborator

👌 Experiment pr-149137 created and queued.
🤖 Automatically detected try build d83b142
🔍 You can check out the queue and this experiment's details.

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot craterbot added S-waiting-on-crater Status: Waiting on a crater run to be completed. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Nov 20, 2025
@traviscross traviscross added the I-lang-radar Items that are on lang's radar and will need eventual work or consideration. label Nov 20, 2025
@craterbot
Copy link
Collaborator

🚧 Experiment pr-149137 is now running

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot
Copy link
Collaborator

🎉 Experiment pr-149137 is completed!
📊 267 regressed and 2 fixed (741156 total)
📊 1939 spurious results on the retry-regessed-list.txt, consider a retry1 if this is a significant amount.
📰 Open the summary report.

⚠️ If you notice any spurious failure please add them to the denylist!
ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

Footnotes

  1. re-run the experiment with crates=https://crater-reports.s3.amazonaws.com/pr-149137/retry-regressed-list.txt

@craterbot craterbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-crater Status: Waiting on a crater run to be completed. labels Nov 26, 2025
@rustbot rustbot removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Nov 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) I-lang-radar Items that are on lang's radar and will need eventual work or consideration. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants