diff --git a/compiler/rustc_ast_passes/src/feature_gate.rs b/compiler/rustc_ast_passes/src/feature_gate.rs
index 82236d2e30678..27cb77bb60fd2 100644
--- a/compiler/rustc_ast_passes/src/feature_gate.rs
+++ b/compiler/rustc_ast_passes/src/feature_gate.rs
@@ -200,14 +200,6 @@ impl<'a> Visitor<'a> for PostExpansionVisitor<'a> {
);
}
}
- if !attr.is_doc_comment()
- && let [seg, _] = attr.get_normal_item().path.segments.as_slice()
- && seg.ident.name == sym::diagnostic
- && !self.features.diagnostic_namespace
- {
- let msg = "`#[diagnostic]` attribute name space is experimental";
- gate!(self, diagnostic_namespace, seg.ident.span, msg);
- }
// Emit errors for non-staged-api crates.
if !self.features.staged_api {
diff --git a/compiler/rustc_feature/src/accepted.rs b/compiler/rustc_feature/src/accepted.rs
index 1155366db85e3..9aff080fdaa94 100644
--- a/compiler/rustc_feature/src/accepted.rs
+++ b/compiler/rustc_feature/src/accepted.rs
@@ -144,6 +144,8 @@ declare_features! (
(accepted, derive_default_enum, "1.62.0", Some(86985)),
/// Allows the use of destructuring assignments.
(accepted, destructuring_assignment, "1.59.0", Some(71126)),
+ /// Allows using the `#[diagnostic]` attribute tool namespace
+ (accepted, diagnostic_namespace, "CURRENT_RUSTC_VERSION", Some(111996)),
/// Allows `#[doc(alias = "...")]`.
(accepted, doc_alias, "1.48.0", Some(50146)),
/// Allows `..` in tuple (struct) patterns.
diff --git a/compiler/rustc_feature/src/unstable.rs b/compiler/rustc_feature/src/unstable.rs
index 6eed2178ead8d..09104a6d8c2c8 100644
--- a/compiler/rustc_feature/src/unstable.rs
+++ b/compiler/rustc_feature/src/unstable.rs
@@ -436,8 +436,6 @@ declare_features! (
(unstable, deprecated_safe, "1.61.0", Some(94978)),
/// Allows having using `suggestion` in the `#[deprecated]` attribute.
(unstable, deprecated_suggestion, "1.61.0", Some(94785)),
- /// Allows using the `#[diagnostic]` attribute tool namespace
- (unstable, diagnostic_namespace, "1.73.0", Some(111996)),
/// Controls errors in trait implementations.
(unstable, do_not_recommend, "1.67.0", Some(51992)),
/// Tells rustdoc to automatically generate `#[doc(cfg(...))]`.
diff --git a/library/core/src/lib.rs b/library/core/src/lib.rs
index 2af242d4b5071..771762bdb658f 100644
--- a/library/core/src/lib.rs
+++ b/library/core/src/lib.rs
@@ -200,6 +200,7 @@
//
// Language features:
// tidy-alphabetical-start
+#![cfg_attr(bootstrap, feature(diagnostic_namespace))]
#![cfg_attr(not(bootstrap), feature(is_val_statically_known))]
#![feature(abi_unadjusted)]
#![feature(adt_const_params)]
diff --git a/src/doc/unstable-book/src/language-features/diagnostic-namespace.md b/src/doc/unstable-book/src/language-features/diagnostic-namespace.md
deleted file mode 100644
index 7c46811a27ab8..0000000000000
--- a/src/doc/unstable-book/src/language-features/diagnostic-namespace.md
+++ /dev/null
@@ -1,84 +0,0 @@
-# `diagnostic_namespace`
-
-The tracking issue for this feature is: [#111996]
-
-[#111996]: https://github.com/rust-lang/rust/issues/111996
-
-------------------------
-
-The `diagnostic_namespace` feature permits customization of compilation errors.
-
-## diagnostic::on_unimplemented
-
-With [#114452] support for `diagnostic::on_unimplemented` was added.
-
-When used on a trait declaration, the following options are available:
-
-* `message` to customize the primary error message
-* `note` to add a customized note message to an error message
-* `label` to customize the label part of the error message
-
-The attribute will hint to the compiler to use these in error messages:
-```rust
-// some library
-#![feature(diagnostic_namespace)]
-
-#[diagnostic::on_unimplemented(
- message = "cannot insert element",
- label = "cannot be put into a table",
- note = "see for more information about the Table api"
-)]
-pub trait Element {
- // ...
-}
-```
-
-```rust,compile_fail,E0277
-# #![feature(diagnostic_namespace)]
-#
-# #[diagnostic::on_unimplemented(
-# message = "cannot insert element",
-# label = "cannot be put into a table",
-# note = "see for more information about the Table api"
-# )]
-# pub trait Element {
-# // ...
-# }
-# struct Table;
-# impl Table {
-# fn insert(&self, element: T) {
-# // ..
-# }
-# }
-# fn main() {
-# let table = Table;
-# let element = ();
-// user code
-table.insert(element);
-# }
-```
-
-```text
-error[E0277]: cannot insert element
- --> src/main.rs:24:18
- |
-24 | table.insert(element);
- | ------ ^^^^^^^ cannot be put into a table
- | |
- | required by a bound introduced by this call
- |
- = help: the trait `Element` is not implemented for ``
- = note: see for more information about the Table api
-note: required by a bound in `Table::insert`
- --> src/main.rs:15:18
- |
-15 | fn insert(&self, element: T) {
- | ^^^^^^^ required by this bound in `Table::insert`
-
-For more information about this error, try `rustc --explain E0277`.
-```
-
-See [RFC 3368] for more information.
-
-[#114452]: https://github.com/rust-lang/rust/pull/114452
-[RFC 3368]: https://github.com/rust-lang/rfcs/blob/master/text/3368-diagnostic-attribute-namespace.md
diff --git a/tests/ui/diagnostic_namespace/existing_proc_macros.rs b/tests/ui/diagnostic_namespace/existing_proc_macros.rs
index d6d1fb014962d..7328ba299ebb4 100644
--- a/tests/ui/diagnostic_namespace/existing_proc_macros.rs
+++ b/tests/ui/diagnostic_namespace/existing_proc_macros.rs
@@ -1,4 +1,3 @@
-#![feature(diagnostic_namespace)]
// check-pass
// aux-build:proc-macro-helper.rs
diff --git a/tests/ui/diagnostic_namespace/feature-gate-diagnostic_namespace.rs b/tests/ui/diagnostic_namespace/feature-gate-diagnostic_namespace.rs
deleted file mode 100644
index b08e291621fdc..0000000000000
--- a/tests/ui/diagnostic_namespace/feature-gate-diagnostic_namespace.rs
+++ /dev/null
@@ -1,13 +0,0 @@
-#[diagnostic::non_existing_attribute]
-//~^ERROR `#[diagnostic]` attribute name space is experimental [E0658]
-//~|WARNING unknown diagnostic attribute [unknown_or_malformed_diagnostic_attributes]
-pub trait Bar {
-}
-
-#[diagnostic::non_existing_attribute(with_option = "foo")]
-//~^ERROR `#[diagnostic]` attribute name space is experimental [E0658]
-//~|WARNING unknown diagnostic attribute [unknown_or_malformed_diagnostic_attributes]
-struct Foo;
-
-fn main() {
-}
diff --git a/tests/ui/diagnostic_namespace/feature-gate-diagnostic_namespace.stderr b/tests/ui/diagnostic_namespace/feature-gate-diagnostic_namespace.stderr
deleted file mode 100644
index 38424c13d8613..0000000000000
--- a/tests/ui/diagnostic_namespace/feature-gate-diagnostic_namespace.stderr
+++ /dev/null
@@ -1,37 +0,0 @@
-error[E0658]: `#[diagnostic]` attribute name space is experimental
- --> $DIR/feature-gate-diagnostic_namespace.rs:1:3
- |
-LL | #[diagnostic::non_existing_attribute]
- | ^^^^^^^^^^
- |
- = note: see issue #111996 for more information
- = help: add `#![feature(diagnostic_namespace)]` to the crate attributes to enable
- = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
-
-error[E0658]: `#[diagnostic]` attribute name space is experimental
- --> $DIR/feature-gate-diagnostic_namespace.rs:7:3
- |
-LL | #[diagnostic::non_existing_attribute(with_option = "foo")]
- | ^^^^^^^^^^
- |
- = note: see issue #111996 for more information
- = help: add `#![feature(diagnostic_namespace)]` to the crate attributes to enable
- = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
-
-warning: unknown diagnostic attribute
- --> $DIR/feature-gate-diagnostic_namespace.rs:1:15
- |
-LL | #[diagnostic::non_existing_attribute]
- | ^^^^^^^^^^^^^^^^^^^^^^
- |
- = note: `#[warn(unknown_or_malformed_diagnostic_attributes)]` on by default
-
-warning: unknown diagnostic attribute
- --> $DIR/feature-gate-diagnostic_namespace.rs:7:15
- |
-LL | #[diagnostic::non_existing_attribute(with_option = "foo")]
- | ^^^^^^^^^^^^^^^^^^^^^^
-
-error: aborting due to 2 previous errors; 2 warnings emitted
-
-For more information about this error, try `rustc --explain E0658`.
diff --git a/tests/ui/diagnostic_namespace/non_existing_attributes_accepted.rs b/tests/ui/diagnostic_namespace/non_existing_attributes_accepted.rs
index 677bd5a7343f2..0cb368ceb0432 100644
--- a/tests/ui/diagnostic_namespace/non_existing_attributes_accepted.rs
+++ b/tests/ui/diagnostic_namespace/non_existing_attributes_accepted.rs
@@ -1,4 +1,3 @@
-#![feature(diagnostic_namespace)]
// check-pass
#[diagnostic::non_existing_attribute]
//~^WARN unknown diagnostic attribute
diff --git a/tests/ui/diagnostic_namespace/non_existing_attributes_accepted.stderr b/tests/ui/diagnostic_namespace/non_existing_attributes_accepted.stderr
index 753077b365e8f..c073ec9b103f6 100644
--- a/tests/ui/diagnostic_namespace/non_existing_attributes_accepted.stderr
+++ b/tests/ui/diagnostic_namespace/non_existing_attributes_accepted.stderr
@@ -1,5 +1,5 @@
warning: unknown diagnostic attribute
- --> $DIR/non_existing_attributes_accepted.rs:3:15
+ --> $DIR/non_existing_attributes_accepted.rs:2:15
|
LL | #[diagnostic::non_existing_attribute]
| ^^^^^^^^^^^^^^^^^^^^^^
@@ -7,7 +7,7 @@ LL | #[diagnostic::non_existing_attribute]
= note: `#[warn(unknown_or_malformed_diagnostic_attributes)]` on by default
warning: unknown diagnostic attribute
- --> $DIR/non_existing_attributes_accepted.rs:8:15
+ --> $DIR/non_existing_attributes_accepted.rs:7:15
|
LL | #[diagnostic::non_existing_attribute(with_option = "foo")]
| ^^^^^^^^^^^^^^^^^^^^^^
diff --git a/tests/ui/diagnostic_namespace/on_unimplemented/auxiliary/other.rs b/tests/ui/diagnostic_namespace/on_unimplemented/auxiliary/other.rs
index 884bab2800a5b..512ef6330e5ec 100644
--- a/tests/ui/diagnostic_namespace/on_unimplemented/auxiliary/other.rs
+++ b/tests/ui/diagnostic_namespace/on_unimplemented/auxiliary/other.rs
@@ -1,5 +1,3 @@
-#![feature(diagnostic_namespace)]
-
#[diagnostic::on_unimplemented(
message = "Message",
note = "Note",
diff --git a/tests/ui/diagnostic_namespace/on_unimplemented/do_not_accept_options_of_the_internal_rustc_attribute.rs b/tests/ui/diagnostic_namespace/on_unimplemented/do_not_accept_options_of_the_internal_rustc_attribute.rs
index eb985c062f3dd..30a85ff21992d 100644
--- a/tests/ui/diagnostic_namespace/on_unimplemented/do_not_accept_options_of_the_internal_rustc_attribute.rs
+++ b/tests/ui/diagnostic_namespace/on_unimplemented/do_not_accept_options_of_the_internal_rustc_attribute.rs
@@ -1,5 +1,3 @@
-#![feature(diagnostic_namespace)]
-
#[diagnostic::on_unimplemented(
on(_Self = "&str"),
//~^WARN malformed `on_unimplemented` attribute
diff --git a/tests/ui/diagnostic_namespace/on_unimplemented/do_not_accept_options_of_the_internal_rustc_attribute.stderr b/tests/ui/diagnostic_namespace/on_unimplemented/do_not_accept_options_of_the_internal_rustc_attribute.stderr
index 75a701f0b5f65..e34b917f67e10 100644
--- a/tests/ui/diagnostic_namespace/on_unimplemented/do_not_accept_options_of_the_internal_rustc_attribute.stderr
+++ b/tests/ui/diagnostic_namespace/on_unimplemented/do_not_accept_options_of_the_internal_rustc_attribute.stderr
@@ -1,5 +1,5 @@
warning: `#[diagnostic::on_unimplemented]` can only be applied to trait definitions
- --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:24:1
+ --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:22:1
|
LL | #[diagnostic::on_unimplemented(message = "Not allowed to apply it on a impl")]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -7,7 +7,7 @@ LL | #[diagnostic::on_unimplemented(message = "Not allowed to apply it on a impl
= note: `#[warn(unknown_or_malformed_diagnostic_attributes)]` on by default
warning: malformed `on_unimplemented` attribute
- --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:4:5
+ --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:2:5
|
LL | on(_Self = "&str"),
| ^^^^^^^^^^^^^^^^^^ invalid option found here
@@ -15,7 +15,7 @@ LL | on(_Self = "&str"),
= help: only `message`, `note` and `label` are allowed as options
warning: malformed `on_unimplemented` attribute
- --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:10:5
+ --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:8:5
|
LL | parent_label = "in this scope",
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ invalid option found here
@@ -23,7 +23,7 @@ LL | parent_label = "in this scope",
= help: only `message`, `note` and `label` are allowed as options
warning: malformed `on_unimplemented` attribute
- --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:13:5
+ --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:11:5
|
LL | append_const_msg
| ^^^^^^^^^^^^^^^^ invalid option found here
@@ -31,7 +31,7 @@ LL | append_const_msg
= help: only `message`, `note` and `label` are allowed as options
warning: malformed `on_unimplemented` attribute
- --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:19:32
+ --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:17:32
|
LL | #[diagnostic::on_unimplemented = "Message"]
| ^^^^^^^^^^^ invalid option found here
@@ -39,7 +39,7 @@ LL | #[diagnostic::on_unimplemented = "Message"]
= help: only `message`, `note` and `label` are allowed as options
warning: there is no parameter `from_desugaring` on trait `Baz`
- --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:31:5
+ --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:29:5
|
LL | message = "{from_desugaring}{direct}{cause}{integral}{integer}",
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -47,7 +47,7 @@ LL | message = "{from_desugaring}{direct}{cause}{integral}{integer}",
= help: expect either a generic argument name or `{Self}` as format argument
warning: there is no parameter `direct` on trait `Baz`
- --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:31:5
+ --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:29:5
|
LL | message = "{from_desugaring}{direct}{cause}{integral}{integer}",
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -55,7 +55,7 @@ LL | message = "{from_desugaring}{direct}{cause}{integral}{integer}",
= help: expect either a generic argument name or `{Self}` as format argument
warning: there is no parameter `cause` on trait `Baz`
- --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:31:5
+ --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:29:5
|
LL | message = "{from_desugaring}{direct}{cause}{integral}{integer}",
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -63,7 +63,7 @@ LL | message = "{from_desugaring}{direct}{cause}{integral}{integer}",
= help: expect either a generic argument name or `{Self}` as format argument
warning: there is no parameter `integral` on trait `Baz`
- --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:31:5
+ --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:29:5
|
LL | message = "{from_desugaring}{direct}{cause}{integral}{integer}",
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -71,7 +71,7 @@ LL | message = "{from_desugaring}{direct}{cause}{integral}{integer}",
= help: expect either a generic argument name or `{Self}` as format argument
warning: there is no parameter `integer` on trait `Baz`
- --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:31:5
+ --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:29:5
|
LL | message = "{from_desugaring}{direct}{cause}{integral}{integer}",
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -79,7 +79,7 @@ LL | message = "{from_desugaring}{direct}{cause}{integral}{integer}",
= help: expect either a generic argument name or `{Self}` as format argument
warning: there is no parameter `float` on trait `Baz`
- --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:42:5
+ --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:40:5
|
LL | label = "{float}{_Self}{crate_local}{Trait}{ItemContext}"
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -87,7 +87,7 @@ LL | label = "{float}{_Self}{crate_local}{Trait}{ItemContext}"
= help: expect either a generic argument name or `{Self}` as format argument
warning: there is no parameter `_Self` on trait `Baz`
- --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:42:5
+ --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:40:5
|
LL | label = "{float}{_Self}{crate_local}{Trait}{ItemContext}"
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -95,7 +95,7 @@ LL | label = "{float}{_Self}{crate_local}{Trait}{ItemContext}"
= help: expect either a generic argument name or `{Self}` as format argument
warning: there is no parameter `crate_local` on trait `Baz`
- --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:42:5
+ --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:40:5
|
LL | label = "{float}{_Self}{crate_local}{Trait}{ItemContext}"
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -103,7 +103,7 @@ LL | label = "{float}{_Self}{crate_local}{Trait}{ItemContext}"
= help: expect either a generic argument name or `{Self}` as format argument
warning: there is no parameter `Trait` on trait `Baz`
- --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:42:5
+ --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:40:5
|
LL | label = "{float}{_Self}{crate_local}{Trait}{ItemContext}"
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -111,7 +111,7 @@ LL | label = "{float}{_Self}{crate_local}{Trait}{ItemContext}"
= help: expect either a generic argument name or `{Self}` as format argument
warning: there is no parameter `ItemContext` on trait `Baz`
- --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:42:5
+ --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:40:5
|
LL | label = "{float}{_Self}{crate_local}{Trait}{ItemContext}"
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -119,7 +119,7 @@ LL | label = "{float}{_Self}{crate_local}{Trait}{ItemContext}"
= help: expect either a generic argument name or `{Self}` as format argument
warning: malformed `on_unimplemented` attribute
- --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:4:5
+ --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:2:5
|
LL | on(_Self = "&str"),
| ^^^^^^^^^^^^^^^^^^ invalid option found here
@@ -128,7 +128,7 @@ LL | on(_Self = "&str"),
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
warning: malformed `on_unimplemented` attribute
- --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:10:5
+ --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:8:5
|
LL | parent_label = "in this scope",
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ invalid option found here
@@ -137,7 +137,7 @@ LL | parent_label = "in this scope",
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
warning: malformed `on_unimplemented` attribute
- --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:13:5
+ --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:11:5
|
LL | append_const_msg
| ^^^^^^^^^^^^^^^^ invalid option found here
@@ -146,7 +146,7 @@ LL | append_const_msg
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
error[E0277]: trait has `()` and `i32` as params
- --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:61:15
+ --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:59:15
|
LL | takes_foo(());
| --------- ^^ trait has `()` and `i32` as params
@@ -156,18 +156,18 @@ LL | takes_foo(());
= help: the trait `Foo` is not implemented for `()`
= note: trait has `()` and `i32` as params
help: this trait has no implementations, consider adding one
- --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:17:1
+ --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:15:1
|
LL | trait Foo {}
| ^^^^^^^^^^^^
note: required by a bound in `takes_foo`
- --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:56:22
+ --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:54:22
|
LL | fn takes_foo(_: impl Foo) {}
| ^^^^^^^^ required by this bound in `takes_foo`
warning: malformed `on_unimplemented` attribute
- --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:19:32
+ --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:17:32
|
LL | #[diagnostic::on_unimplemented = "Message"]
| ^^^^^^^^^^^ invalid option found here
@@ -176,7 +176,7 @@ LL | #[diagnostic::on_unimplemented = "Message"]
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
error[E0277]: the trait bound `(): Bar` is not satisfied
- --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:63:15
+ --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:61:15
|
LL | takes_bar(());
| --------- ^^ the trait `Bar` is not implemented for `()`
@@ -185,13 +185,13 @@ LL | takes_bar(());
|
= help: the trait `Bar` is implemented for `i32`
note: required by a bound in `takes_bar`
- --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:57:22
+ --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:55:22
|
LL | fn takes_bar(_: impl Bar) {}
| ^^^ required by this bound in `takes_bar`
warning: there is no parameter `from_desugaring` on trait `Baz`
- --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:31:5
+ --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:29:5
|
LL | message = "{from_desugaring}{direct}{cause}{integral}{integer}",
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -200,7 +200,7 @@ LL | message = "{from_desugaring}{direct}{cause}{integral}{integer}",
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
warning: there is no parameter `direct` on trait `Baz`
- --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:31:5
+ --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:29:5
|
LL | message = "{from_desugaring}{direct}{cause}{integral}{integer}",
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -209,7 +209,7 @@ LL | message = "{from_desugaring}{direct}{cause}{integral}{integer}",
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
warning: there is no parameter `cause` on trait `Baz`
- --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:31:5
+ --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:29:5
|
LL | message = "{from_desugaring}{direct}{cause}{integral}{integer}",
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -218,7 +218,7 @@ LL | message = "{from_desugaring}{direct}{cause}{integral}{integer}",
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
warning: there is no parameter `integral` on trait `Baz`
- --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:31:5
+ --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:29:5
|
LL | message = "{from_desugaring}{direct}{cause}{integral}{integer}",
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -227,7 +227,7 @@ LL | message = "{from_desugaring}{direct}{cause}{integral}{integer}",
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
warning: there is no parameter `integer` on trait `Baz`
- --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:31:5
+ --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:29:5
|
LL | message = "{from_desugaring}{direct}{cause}{integral}{integer}",
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -236,7 +236,7 @@ LL | message = "{from_desugaring}{direct}{cause}{integral}{integer}",
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
warning: there is no parameter `float` on trait `Baz`
- --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:42:5
+ --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:40:5
|
LL | label = "{float}{_Self}{crate_local}{Trait}{ItemContext}"
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -245,7 +245,7 @@ LL | label = "{float}{_Self}{crate_local}{Trait}{ItemContext}"
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
warning: there is no parameter `_Self` on trait `Baz`
- --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:42:5
+ --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:40:5
|
LL | label = "{float}{_Self}{crate_local}{Trait}{ItemContext}"
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -254,7 +254,7 @@ LL | label = "{float}{_Self}{crate_local}{Trait}{ItemContext}"
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
warning: there is no parameter `crate_local` on trait `Baz`
- --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:42:5
+ --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:40:5
|
LL | label = "{float}{_Self}{crate_local}{Trait}{ItemContext}"
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -263,7 +263,7 @@ LL | label = "{float}{_Self}{crate_local}{Trait}{ItemContext}"
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
warning: there is no parameter `Trait` on trait `Baz`
- --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:42:5
+ --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:40:5
|
LL | label = "{float}{_Self}{crate_local}{Trait}{ItemContext}"
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -272,7 +272,7 @@ LL | label = "{float}{_Self}{crate_local}{Trait}{ItemContext}"
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
warning: there is no parameter `ItemContext` on trait `Baz`
- --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:42:5
+ --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:40:5
|
LL | label = "{float}{_Self}{crate_local}{Trait}{ItemContext}"
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -281,7 +281,7 @@ LL | label = "{float}{_Self}{crate_local}{Trait}{ItemContext}"
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
error[E0277]: {from_desugaring}{direct}{cause}{integral}{integer}
- --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:65:15
+ --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:63:15
|
LL | takes_baz(());
| --------- ^^ {float}{_Self}{crate_local}{Trait}{ItemContext}
@@ -290,12 +290,12 @@ LL | takes_baz(());
|
= help: the trait `Baz` is not implemented for `()`
help: this trait has no implementations, consider adding one
- --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:54:1
+ --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:52:1
|
LL | trait Baz {}
| ^^^^^^^^^
note: required by a bound in `takes_baz`
- --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:58:22
+ --> $DIR/do_not_accept_options_of_the_internal_rustc_attribute.rs:56:22
|
LL | fn takes_baz(_: impl Baz) {}
| ^^^ required by this bound in `takes_baz`
diff --git a/tests/ui/diagnostic_namespace/on_unimplemented/do_not_fail_parsing_on_invalid_options_1.rs b/tests/ui/diagnostic_namespace/on_unimplemented/do_not_fail_parsing_on_invalid_options_1.rs
index 12fe988170ac1..b4234066bb19a 100644
--- a/tests/ui/diagnostic_namespace/on_unimplemented/do_not_fail_parsing_on_invalid_options_1.rs
+++ b/tests/ui/diagnostic_namespace/on_unimplemented/do_not_fail_parsing_on_invalid_options_1.rs
@@ -1,5 +1,3 @@
-#![feature(diagnostic_namespace)]
-
#[diagnostic::on_unimplemented(unsupported = "foo")]
//~^WARN malformed `on_unimplemented` attribute
//~|WARN malformed `on_unimplemented` attribute
diff --git a/tests/ui/diagnostic_namespace/on_unimplemented/do_not_fail_parsing_on_invalid_options_1.stderr b/tests/ui/diagnostic_namespace/on_unimplemented/do_not_fail_parsing_on_invalid_options_1.stderr
index 11263580b15e2..dc0c194823696 100644
--- a/tests/ui/diagnostic_namespace/on_unimplemented/do_not_fail_parsing_on_invalid_options_1.stderr
+++ b/tests/ui/diagnostic_namespace/on_unimplemented/do_not_fail_parsing_on_invalid_options_1.stderr
@@ -1,5 +1,5 @@
warning: `#[diagnostic::on_unimplemented]` can only be applied to trait definitions
- --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:8:1
+ --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:6:1
|
LL | #[diagnostic::on_unimplemented(message = "Baz")]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -7,7 +7,7 @@ LL | #[diagnostic::on_unimplemented(message = "Baz")]
= note: `#[warn(unknown_or_malformed_diagnostic_attributes)]` on by default
warning: malformed `on_unimplemented` attribute
- --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:3:32
+ --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:1:32
|
LL | #[diagnostic::on_unimplemented(unsupported = "foo")]
| ^^^^^^^^^^^^^^^^^^^ invalid option found here
@@ -15,7 +15,7 @@ LL | #[diagnostic::on_unimplemented(unsupported = "foo")]
= help: only `message`, `note` and `label` are allowed as options
warning: malformed `on_unimplemented` attribute
- --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:12:50
+ --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:10:50
|
LL | #[diagnostic::on_unimplemented(message = "Boom", unsupported = "Bar")]
| ^^^^^^^^^^^^^^^^^^^ invalid option found here
@@ -23,7 +23,7 @@ LL | #[diagnostic::on_unimplemented(message = "Boom", unsupported = "Bar")]
= help: only `message`, `note` and `label` are allowed as options
warning: malformed `on_unimplemented` attribute
- --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:17:50
+ --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:15:50
|
LL | #[diagnostic::on_unimplemented(message = "Boom", on(_Self = "i32", message = "whatever"))]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ invalid option found here
@@ -31,7 +31,7 @@ LL | #[diagnostic::on_unimplemented(message = "Boom", on(_Self = "i32", message
= help: only `message`, `note` and `label` are allowed as options
warning: malformed `on_unimplemented` attribute
- --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:22:32
+ --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:20:32
|
LL | #[diagnostic::on_unimplemented = "boom"]
| ^^^^^^^^ invalid option found here
@@ -39,7 +39,7 @@ LL | #[diagnostic::on_unimplemented = "boom"]
= help: only `message`, `note` and `label` are allowed as options
warning: missing options for `on_unimplemented` attribute
- --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:26:1
+ --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:24:1
|
LL | #[diagnostic::on_unimplemented]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -47,7 +47,7 @@ LL | #[diagnostic::on_unimplemented]
= help: at least one of the `message`, `note` and `label` options are expected
warning: there is no parameter `DoesNotExist` on trait `Test`
- --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:31:32
+ --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:29:32
|
LL | #[diagnostic::on_unimplemented(message = "{DoesNotExist}")]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -55,7 +55,7 @@ LL | #[diagnostic::on_unimplemented(message = "{DoesNotExist}")]
= help: expect either a generic argument name or `{Self}` as format argument
warning: malformed `on_unimplemented` attribute
- --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:3:32
+ --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:1:32
|
LL | #[diagnostic::on_unimplemented(unsupported = "foo")]
| ^^^^^^^^^^^^^^^^^^^ invalid option found here
@@ -64,7 +64,7 @@ LL | #[diagnostic::on_unimplemented(unsupported = "foo")]
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
error[E0277]: the trait bound `i32: Foo` is not satisfied
- --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:43:14
+ --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:41:14
|
LL | take_foo(1_i32);
| -------- ^^^^^ the trait `Foo` is not implemented for `i32`
@@ -72,18 +72,18 @@ LL | take_foo(1_i32);
| required by a bound introduced by this call
|
help: this trait has no implementations, consider adding one
- --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:6:1
+ --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:4:1
|
LL | trait Foo {}
| ^^^^^^^^^
note: required by a bound in `take_foo`
- --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:36:21
+ --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:34:21
|
LL | fn take_foo(_: impl Foo) {}
| ^^^ required by this bound in `take_foo`
warning: malformed `on_unimplemented` attribute
- --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:12:50
+ --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:10:50
|
LL | #[diagnostic::on_unimplemented(message = "Boom", unsupported = "Bar")]
| ^^^^^^^^^^^^^^^^^^^ invalid option found here
@@ -92,7 +92,7 @@ LL | #[diagnostic::on_unimplemented(message = "Boom", unsupported = "Bar")]
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
error[E0277]: Boom
- --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:45:14
+ --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:43:14
|
LL | take_baz(1_i32);
| -------- ^^^^^ the trait `Baz` is not implemented for `i32`
@@ -100,18 +100,18 @@ LL | take_baz(1_i32);
| required by a bound introduced by this call
|
help: this trait has no implementations, consider adding one
- --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:15:1
+ --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:13:1
|
LL | trait Baz {}
| ^^^^^^^^^
note: required by a bound in `take_baz`
- --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:37:21
+ --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:35:21
|
LL | fn take_baz(_: impl Baz) {}
| ^^^ required by this bound in `take_baz`
warning: malformed `on_unimplemented` attribute
- --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:17:50
+ --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:15:50
|
LL | #[diagnostic::on_unimplemented(message = "Boom", on(_Self = "i32", message = "whatever"))]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ invalid option found here
@@ -120,7 +120,7 @@ LL | #[diagnostic::on_unimplemented(message = "Boom", on(_Self = "i32", message
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
error[E0277]: Boom
- --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:47:15
+ --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:45:15
|
LL | take_boom(1_i32);
| --------- ^^^^^ the trait `Boom` is not implemented for `i32`
@@ -128,18 +128,18 @@ LL | take_boom(1_i32);
| required by a bound introduced by this call
|
help: this trait has no implementations, consider adding one
- --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:20:1
+ --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:18:1
|
LL | trait Boom {}
| ^^^^^^^^^^
note: required by a bound in `take_boom`
- --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:38:22
+ --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:36:22
|
LL | fn take_boom(_: impl Boom) {}
| ^^^^ required by this bound in `take_boom`
warning: missing options for `on_unimplemented` attribute
- --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:26:1
+ --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:24:1
|
LL | #[diagnostic::on_unimplemented]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -148,7 +148,7 @@ LL | #[diagnostic::on_unimplemented]
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
error[E0277]: the trait bound `i32: Whatever` is not satisfied
- --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:49:19
+ --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:47:19
|
LL | take_whatever(1_i32);
| ------------- ^^^^^ the trait `Whatever` is not implemented for `i32`
@@ -156,18 +156,18 @@ LL | take_whatever(1_i32);
| required by a bound introduced by this call
|
help: this trait has no implementations, consider adding one
- --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:29:1
+ --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:27:1
|
LL | trait Whatever {}
| ^^^^^^^^^^^^^^
note: required by a bound in `take_whatever`
- --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:39:26
+ --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:37:26
|
LL | fn take_whatever(_: impl Whatever) {}
| ^^^^^^^^ required by this bound in `take_whatever`
warning: there is no parameter `DoesNotExist` on trait `Test`
- --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:31:32
+ --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:29:32
|
LL | #[diagnostic::on_unimplemented(message = "{DoesNotExist}")]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -176,7 +176,7 @@ LL | #[diagnostic::on_unimplemented(message = "{DoesNotExist}")]
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
error[E0277]: {DoesNotExist}
- --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:51:15
+ --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:49:15
|
LL | take_test(());
| --------- ^^ the trait `Test` is not implemented for `()`
@@ -184,12 +184,12 @@ LL | take_test(());
| required by a bound introduced by this call
|
help: this trait has no implementations, consider adding one
- --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:34:1
+ --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:32:1
|
LL | trait Test {}
| ^^^^^^^^^^
note: required by a bound in `take_test`
- --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:40:22
+ --> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:38:22
|
LL | fn take_test(_: impl Test) {}
| ^^^^ required by this bound in `take_test`
diff --git a/tests/ui/diagnostic_namespace/on_unimplemented/feature-gate-diagnostic_on_unimplemented.rs b/tests/ui/diagnostic_namespace/on_unimplemented/feature-gate-diagnostic_on_unimplemented.rs
deleted file mode 100644
index 609a840c118c6..0000000000000
--- a/tests/ui/diagnostic_namespace/on_unimplemented/feature-gate-diagnostic_on_unimplemented.rs
+++ /dev/null
@@ -1,7 +0,0 @@
-#[diagnostic::on_unimplemented(message = "Foo")]
-//~^ERROR `#[diagnostic]` attribute name space is experimental [E0658]
-pub trait Bar {
-}
-
-fn main() {
-}
diff --git a/tests/ui/diagnostic_namespace/on_unimplemented/feature-gate-diagnostic_on_unimplemented.stderr b/tests/ui/diagnostic_namespace/on_unimplemented/feature-gate-diagnostic_on_unimplemented.stderr
deleted file mode 100644
index 719322fa0f55e..0000000000000
--- a/tests/ui/diagnostic_namespace/on_unimplemented/feature-gate-diagnostic_on_unimplemented.stderr
+++ /dev/null
@@ -1,13 +0,0 @@
-error[E0658]: `#[diagnostic]` attribute name space is experimental
- --> $DIR/feature-gate-diagnostic_on_unimplemented.rs:1:3
- |
-LL | #[diagnostic::on_unimplemented(message = "Foo")]
- | ^^^^^^^^^^
- |
- = note: see issue #111996 for more information
- = help: add `#![feature(diagnostic_namespace)]` to the crate attributes to enable
- = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
-
-error: aborting due to 1 previous error
-
-For more information about this error, try `rustc --explain E0658`.
diff --git a/tests/ui/diagnostic_namespace/on_unimplemented/ignore_unsupported_options_and_continue_to_use_fallback.rs b/tests/ui/diagnostic_namespace/on_unimplemented/ignore_unsupported_options_and_continue_to_use_fallback.rs
index 0893f29c4a3b4..5b25fb234bc52 100644
--- a/tests/ui/diagnostic_namespace/on_unimplemented/ignore_unsupported_options_and_continue_to_use_fallback.rs
+++ b/tests/ui/diagnostic_namespace/on_unimplemented/ignore_unsupported_options_and_continue_to_use_fallback.rs
@@ -1,5 +1,3 @@
-#![feature(diagnostic_namespace)]
-
#[diagnostic::on_unimplemented(
if(Self = "()"),
//~^WARN malformed `on_unimplemented` attribute
diff --git a/tests/ui/diagnostic_namespace/on_unimplemented/ignore_unsupported_options_and_continue_to_use_fallback.stderr b/tests/ui/diagnostic_namespace/on_unimplemented/ignore_unsupported_options_and_continue_to_use_fallback.stderr
index e00846da77be5..56d125e20e5c4 100644
--- a/tests/ui/diagnostic_namespace/on_unimplemented/ignore_unsupported_options_and_continue_to_use_fallback.stderr
+++ b/tests/ui/diagnostic_namespace/on_unimplemented/ignore_unsupported_options_and_continue_to_use_fallback.stderr
@@ -1,5 +1,5 @@
warning: malformed `on_unimplemented` attribute
- --> $DIR/ignore_unsupported_options_and_continue_to_use_fallback.rs:4:5
+ --> $DIR/ignore_unsupported_options_and_continue_to_use_fallback.rs:2:5
|
LL | if(Self = "()"),
| ^^^^^^^^^^^^^^^ invalid option found here
@@ -8,7 +8,7 @@ LL | if(Self = "()"),
= note: `#[warn(unknown_or_malformed_diagnostic_attributes)]` on by default
warning: `message` is ignored due to previous definition of `message`
- --> $DIR/ignore_unsupported_options_and_continue_to_use_fallback.rs:10:32
+ --> $DIR/ignore_unsupported_options_and_continue_to_use_fallback.rs:8:32
|
LL | message = "custom message",
| -------------------------- `message` is first declared here
@@ -17,7 +17,7 @@ LL | #[diagnostic::on_unimplemented(message = "fallback!!")]
| ^^^^^^^^^^^^^^^^^^^^^^ `message` is already declared here
warning: malformed `on_unimplemented` attribute
- --> $DIR/ignore_unsupported_options_and_continue_to_use_fallback.rs:4:5
+ --> $DIR/ignore_unsupported_options_and_continue_to_use_fallback.rs:2:5
|
LL | if(Self = "()"),
| ^^^^^^^^^^^^^^^ invalid option found here
@@ -26,7 +26,7 @@ LL | if(Self = "()"),
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
warning: `message` is ignored due to previous definition of `message`
- --> $DIR/ignore_unsupported_options_and_continue_to_use_fallback.rs:10:32
+ --> $DIR/ignore_unsupported_options_and_continue_to_use_fallback.rs:8:32
|
LL | message = "custom message",
| -------------------------- `message` is first declared here
@@ -37,7 +37,7 @@ LL | #[diagnostic::on_unimplemented(message = "fallback!!")]
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
error[E0277]: custom message
- --> $DIR/ignore_unsupported_options_and_continue_to_use_fallback.rs:20:15
+ --> $DIR/ignore_unsupported_options_and_continue_to_use_fallback.rs:18:15
|
LL | takes_foo(());
| --------- ^^ fallback label
@@ -48,12 +48,12 @@ LL | takes_foo(());
= note: custom note
= note: fallback note
help: this trait has no implementations, consider adding one
- --> $DIR/ignore_unsupported_options_and_continue_to_use_fallback.rs:15:1
+ --> $DIR/ignore_unsupported_options_and_continue_to_use_fallback.rs:13:1
|
LL | trait Foo {}
| ^^^^^^^^^
note: required by a bound in `takes_foo`
- --> $DIR/ignore_unsupported_options_and_continue_to_use_fallback.rs:17:22
+ --> $DIR/ignore_unsupported_options_and_continue_to_use_fallback.rs:15:22
|
LL | fn takes_foo(_: impl Foo) {}
| ^^^ required by this bound in `takes_foo`
diff --git a/tests/ui/diagnostic_namespace/on_unimplemented/multiple_notes.rs b/tests/ui/diagnostic_namespace/on_unimplemented/multiple_notes.rs
index 34cdb99c754b1..a5982f6492ca5 100644
--- a/tests/ui/diagnostic_namespace/on_unimplemented/multiple_notes.rs
+++ b/tests/ui/diagnostic_namespace/on_unimplemented/multiple_notes.rs
@@ -1,5 +1,3 @@
-#![feature(diagnostic_namespace)]
-
#[diagnostic::on_unimplemented(message = "Foo", label = "Bar", note = "Baz", note = "Boom")]
trait Foo {}
diff --git a/tests/ui/diagnostic_namespace/on_unimplemented/multiple_notes.stderr b/tests/ui/diagnostic_namespace/on_unimplemented/multiple_notes.stderr
index c72321d4617f0..93a0d0b3f4132 100644
--- a/tests/ui/diagnostic_namespace/on_unimplemented/multiple_notes.stderr
+++ b/tests/ui/diagnostic_namespace/on_unimplemented/multiple_notes.stderr
@@ -1,5 +1,5 @@
error[E0277]: Foo
- --> $DIR/multiple_notes.rs:14:15
+ --> $DIR/multiple_notes.rs:12:15
|
LL | takes_foo(());
| --------- ^^ Bar
@@ -10,18 +10,18 @@ LL | takes_foo(());
= note: Baz
= note: Boom
help: this trait has no implementations, consider adding one
- --> $DIR/multiple_notes.rs:4:1
+ --> $DIR/multiple_notes.rs:2:1
|
LL | trait Foo {}
| ^^^^^^^^^
note: required by a bound in `takes_foo`
- --> $DIR/multiple_notes.rs:10:22
+ --> $DIR/multiple_notes.rs:8:22
|
LL | fn takes_foo(_: impl Foo) {}
| ^^^ required by this bound in `takes_foo`
error[E0277]: Bar
- --> $DIR/multiple_notes.rs:16:15
+ --> $DIR/multiple_notes.rs:14:15
|
LL | takes_bar(());
| --------- ^^ Foo
@@ -32,12 +32,12 @@ LL | takes_bar(());
= note: Baz
= note: Baz2
help: this trait has no implementations, consider adding one
- --> $DIR/multiple_notes.rs:8:1
+ --> $DIR/multiple_notes.rs:6:1
|
LL | trait Bar {}
| ^^^^^^^^^
note: required by a bound in `takes_bar`
- --> $DIR/multiple_notes.rs:11:22
+ --> $DIR/multiple_notes.rs:9:22
|
LL | fn takes_bar(_: impl Bar) {}
| ^^^ required by this bound in `takes_bar`
diff --git a/tests/ui/diagnostic_namespace/on_unimplemented/on_unimplemented_simple.rs b/tests/ui/diagnostic_namespace/on_unimplemented/on_unimplemented_simple.rs
index 797edbc9ec564..7ca0312775964 100644
--- a/tests/ui/diagnostic_namespace/on_unimplemented/on_unimplemented_simple.rs
+++ b/tests/ui/diagnostic_namespace/on_unimplemented/on_unimplemented_simple.rs
@@ -1,5 +1,3 @@
-#![feature(diagnostic_namespace)]
-
#[diagnostic::on_unimplemented(message = "Foo", label = "Bar", note = "Baz")]
trait Foo {}
diff --git a/tests/ui/diagnostic_namespace/on_unimplemented/on_unimplemented_simple.stderr b/tests/ui/diagnostic_namespace/on_unimplemented/on_unimplemented_simple.stderr
index de57f7044bffe..6b17f40c6dd16 100644
--- a/tests/ui/diagnostic_namespace/on_unimplemented/on_unimplemented_simple.stderr
+++ b/tests/ui/diagnostic_namespace/on_unimplemented/on_unimplemented_simple.stderr
@@ -1,5 +1,5 @@
error[E0277]: Foo
- --> $DIR/on_unimplemented_simple.rs:9:15
+ --> $DIR/on_unimplemented_simple.rs:7:15
|
LL | takes_foo(());
| --------- ^^ Bar
@@ -9,12 +9,12 @@ LL | takes_foo(());
= help: the trait `Foo` is not implemented for `()`
= note: Baz
help: this trait has no implementations, consider adding one
- --> $DIR/on_unimplemented_simple.rs:4:1
+ --> $DIR/on_unimplemented_simple.rs:2:1
|
LL | trait Foo {}
| ^^^^^^^^^
note: required by a bound in `takes_foo`
- --> $DIR/on_unimplemented_simple.rs:6:22
+ --> $DIR/on_unimplemented_simple.rs:4:22
|
LL | fn takes_foo(_: impl Foo) {}
| ^^^ required by this bound in `takes_foo`
diff --git a/tests/ui/diagnostic_namespace/on_unimplemented/report_warning_on_duplicated_options.rs b/tests/ui/diagnostic_namespace/on_unimplemented/report_warning_on_duplicated_options.rs
index a7becd2f88f6d..8c0b81504177f 100644
--- a/tests/ui/diagnostic_namespace/on_unimplemented/report_warning_on_duplicated_options.rs
+++ b/tests/ui/diagnostic_namespace/on_unimplemented/report_warning_on_duplicated_options.rs
@@ -1,5 +1,3 @@
-#![feature(diagnostic_namespace)]
-
#[diagnostic::on_unimplemented(
message = "first message",
label = "first label",
diff --git a/tests/ui/diagnostic_namespace/on_unimplemented/report_warning_on_duplicated_options.stderr b/tests/ui/diagnostic_namespace/on_unimplemented/report_warning_on_duplicated_options.stderr
index d30754dcf10d0..43ab6bf25a1a2 100644
--- a/tests/ui/diagnostic_namespace/on_unimplemented/report_warning_on_duplicated_options.stderr
+++ b/tests/ui/diagnostic_namespace/on_unimplemented/report_warning_on_duplicated_options.stderr
@@ -1,5 +1,5 @@
warning: `message` is ignored due to previous definition of `message`
- --> $DIR/report_warning_on_duplicated_options.rs:9:5
+ --> $DIR/report_warning_on_duplicated_options.rs:7:5
|
LL | message = "first message",
| ------------------------- `message` is first declared here
@@ -10,7 +10,7 @@ LL | message = "second message",
= note: `#[warn(unknown_or_malformed_diagnostic_attributes)]` on by default
warning: `label` is ignored due to previous definition of `label`
- --> $DIR/report_warning_on_duplicated_options.rs:12:5
+ --> $DIR/report_warning_on_duplicated_options.rs:10:5
|
LL | label = "first label",
| --------------------- `label` is first declared here
@@ -19,7 +19,7 @@ LL | label = "second label",
| ^^^^^^^^^^^^^^^^^^^^^^ `label` is already declared here
warning: `message` is ignored due to previous definition of `message`
- --> $DIR/report_warning_on_duplicated_options.rs:9:5
+ --> $DIR/report_warning_on_duplicated_options.rs:7:5
|
LL | message = "first message",
| ------------------------- `message` is first declared here
@@ -30,7 +30,7 @@ LL | message = "second message",
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
warning: `label` is ignored due to previous definition of `label`
- --> $DIR/report_warning_on_duplicated_options.rs:12:5
+ --> $DIR/report_warning_on_duplicated_options.rs:10:5
|
LL | label = "first label",
| --------------------- `label` is first declared here
@@ -41,7 +41,7 @@ LL | label = "second label",
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
error[E0277]: first message
- --> $DIR/report_warning_on_duplicated_options.rs:23:15
+ --> $DIR/report_warning_on_duplicated_options.rs:21:15
|
LL | takes_foo(());
| --------- ^^ first label
@@ -52,12 +52,12 @@ LL | takes_foo(());
= note: custom note
= note: second note
help: this trait has no implementations, consider adding one
- --> $DIR/report_warning_on_duplicated_options.rs:17:1
+ --> $DIR/report_warning_on_duplicated_options.rs:15:1
|
LL | trait Foo {}
| ^^^^^^^^^
note: required by a bound in `takes_foo`
- --> $DIR/report_warning_on_duplicated_options.rs:20:22
+ --> $DIR/report_warning_on_duplicated_options.rs:18:22
|
LL | fn takes_foo(_: impl Foo) {}
| ^^^ required by this bound in `takes_foo`
diff --git a/tests/ui/diagnostic_namespace/requires_path.rs b/tests/ui/diagnostic_namespace/requires_path.rs
index e8d6ca73ad0cf..4f3a1319cafff 100644
--- a/tests/ui/diagnostic_namespace/requires_path.rs
+++ b/tests/ui/diagnostic_namespace/requires_path.rs
@@ -1,5 +1,3 @@
-#![feature(diagnostic_namespace)]
-
#[diagnostic]
//~^ERROR cannot find attribute `diagnostic` in this scope
pub struct Bar;
diff --git a/tests/ui/diagnostic_namespace/requires_path.stderr b/tests/ui/diagnostic_namespace/requires_path.stderr
index 5d07d3a22d50e..e02aacac8c1a7 100644
--- a/tests/ui/diagnostic_namespace/requires_path.stderr
+++ b/tests/ui/diagnostic_namespace/requires_path.stderr
@@ -1,5 +1,5 @@
error: cannot find attribute `diagnostic` in this scope
- --> $DIR/requires_path.rs:3:3
+ --> $DIR/requires_path.rs:1:3
|
LL | #[diagnostic]
| ^^^^^^^^^^