error: cannot find attribute `C` in this scope
  --> $DIR/proc-macro-attributes.rs:9:3
   |
LL | #[C]
   |   ^ help: a derive helper attribute with a similar name exists: `B`

error[E0659]: `B` is ambiguous
  --> $DIR/proc-macro-attributes.rs:6:3
   |
LL | #[B]
   |   ^ ambiguous name
   |
   = note: ambiguous because of a name conflict with a derive helper attribute
note: `B` could refer to the derive helper attribute defined here
  --> $DIR/proc-macro-attributes.rs:19:10
   |
LL | #[derive(B)]
   |          ^
note: `B` could also refer to the derive macro imported here
  --> $DIR/proc-macro-attributes.rs:3:1
   |
LL | #[macro_use]
   | ^^^^^^^^^^^^

error[E0659]: `B` is ambiguous
  --> $DIR/proc-macro-attributes.rs:10:3
   |
LL | #[B(D)]
   |   ^ ambiguous name
   |
   = note: ambiguous because of a name conflict with a derive helper attribute
note: `B` could refer to the derive helper attribute defined here
  --> $DIR/proc-macro-attributes.rs:19:10
   |
LL | #[derive(B)]
   |          ^
note: `B` could also refer to the derive macro imported here
  --> $DIR/proc-macro-attributes.rs:3:1
   |
LL | #[macro_use]
   | ^^^^^^^^^^^^

error[E0659]: `B` is ambiguous
  --> $DIR/proc-macro-attributes.rs:13:3
   |
LL | #[B(E = "foo")]
   |   ^ ambiguous name
   |
   = note: ambiguous because of a name conflict with a derive helper attribute
note: `B` could refer to the derive helper attribute defined here
  --> $DIR/proc-macro-attributes.rs:19:10
   |
LL | #[derive(B)]
   |          ^
note: `B` could also refer to the derive macro imported here
  --> $DIR/proc-macro-attributes.rs:3:1
   |
LL | #[macro_use]
   | ^^^^^^^^^^^^

error[E0659]: `B` is ambiguous
  --> $DIR/proc-macro-attributes.rs:16:3
   |
LL | #[B(arbitrary tokens)]
   |   ^ ambiguous name
   |
   = note: ambiguous because of a name conflict with a derive helper attribute
note: `B` could refer to the derive helper attribute defined here
  --> $DIR/proc-macro-attributes.rs:19:10
   |
LL | #[derive(B)]
   |          ^
note: `B` could also refer to the derive macro imported here
  --> $DIR/proc-macro-attributes.rs:3:1
   |
LL | #[macro_use]
   | ^^^^^^^^^^^^

error: derive helper attribute is used before it is introduced
  --> $DIR/proc-macro-attributes.rs:6:3
   |
LL | #[B]
   |   ^
...
LL | #[derive(B)]
   |          - the attribute is introduced here
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = note: for more information, see issue #79202 <https://github.com/rust-lang/rust/issues/79202>
   = note: `#[deny(legacy_derive_helpers)]` on by default

error: derive helper attribute is used before it is introduced
  --> $DIR/proc-macro-attributes.rs:10:3
   |
LL | #[B(D)]
   |   ^
...
LL | #[derive(B)]
   |          - the attribute is introduced here
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = note: for more information, see issue #79202 <https://github.com/rust-lang/rust/issues/79202>

error: derive helper attribute is used before it is introduced
  --> $DIR/proc-macro-attributes.rs:13:3
   |
LL | #[B(E = "foo")]
   |   ^
...
LL | #[derive(B)]
   |          - the attribute is introduced here
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = note: for more information, see issue #79202 <https://github.com/rust-lang/rust/issues/79202>

error: derive helper attribute is used before it is introduced
  --> $DIR/proc-macro-attributes.rs:16:3
   |
LL | #[B(arbitrary tokens)]
   |   ^
...
LL | #[derive(B)]
   |          - the attribute is introduced here
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = note: for more information, see issue #79202 <https://github.com/rust-lang/rust/issues/79202>

error: aborting due to 9 previous errors

For more information about this error, try `rustc --explain E0659`.
Future incompatibility report: Future breakage diagnostic:
error: derive helper attribute is used before it is introduced
  --> $DIR/proc-macro-attributes.rs:6:3
   |
LL | #[B]
   |   ^
...
LL | #[derive(B)]
   |          - the attribute is introduced here
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = note: for more information, see issue #79202 <https://github.com/rust-lang/rust/issues/79202>
   = note: `#[deny(legacy_derive_helpers)]` on by default

Future breakage diagnostic:
error: derive helper attribute is used before it is introduced
  --> $DIR/proc-macro-attributes.rs:10:3
   |
LL | #[B(D)]
   |   ^
...
LL | #[derive(B)]
   |          - the attribute is introduced here
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = note: for more information, see issue #79202 <https://github.com/rust-lang/rust/issues/79202>
   = note: `#[deny(legacy_derive_helpers)]` on by default

Future breakage diagnostic:
error: derive helper attribute is used before it is introduced
  --> $DIR/proc-macro-attributes.rs:13:3
   |
LL | #[B(E = "foo")]
   |   ^
...
LL | #[derive(B)]
   |          - the attribute is introduced here
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = note: for more information, see issue #79202 <https://github.com/rust-lang/rust/issues/79202>
   = note: `#[deny(legacy_derive_helpers)]` on by default

Future breakage diagnostic:
error: derive helper attribute is used before it is introduced
  --> $DIR/proc-macro-attributes.rs:16:3
   |
LL | #[B(arbitrary tokens)]
   |   ^
...
LL | #[derive(B)]
   |          - the attribute is introduced here
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = note: for more information, see issue #79202 <https://github.com/rust-lang/rust/issues/79202>
   = note: `#[deny(legacy_derive_helpers)]` on by default

