Emit a future error warning for duplicate doc attribute

This commit is contained in:
Guillaume Gomez
2026-01-31 23:27:51 +01:00
parent 794495e2b4
commit 7dbbab63e2
29 changed files with 166 additions and 67 deletions
@@ -131,8 +131,17 @@ fn parse_single_test_doc_attr_item<S: Stage>(
return;
}
if self.attribute.no_crate_inject.is_some() {
cx.duplicate_key(path.span(), sym::no_crate_inject);
if let Some(used_span) = self.attribute.no_crate_inject {
let unused_span = path.span();
cx.emit_lint(
rustc_session::lint::builtin::INVALID_DOC_ATTRIBUTES,
AttributeLintKind::UnusedDuplicate {
this: unused_span,
other: used_span,
warning: true,
},
unused_span,
);
return;
}
+1 -1
View File
@@ -3458,7 +3458,7 @@
/// but this lint was introduced to avoid breaking any existing
/// crates which included them.
pub INVALID_DOC_ATTRIBUTES,
Deny,
Warn,
"detects invalid `#[doc(...)]` attributes",
}
+3 -1
View File
@@ -1,11 +1,13 @@
//@ compile-flags: --passes unknown-pass
#![deny(invalid_doc_attributes)]
//~^ NOTE
#![doc(no_default_passes)]
//~^ ERROR unknown `doc` attribute `no_default_passes`
//~| NOTE no longer functions
//~| NOTE see issue #44136
//~| NOTE `doc(no_default_passes)` is now a no-op
//~| NOTE `#[deny(invalid_doc_attributes)]` on by default
#![doc(passes = "collapse-docs unindent-comments")]
//~^ ERROR unknown `doc` attribute `passes`
//~| NOTE no longer functions
+8 -4
View File
@@ -4,17 +4,21 @@ warning: the `passes` flag no longer functions
= help: you may want to use --document-private-items
error: unknown `doc` attribute `no_default_passes`
--> $DIR/deprecated-attrs.rs:3:8
--> $DIR/deprecated-attrs.rs:6:8
|
LL | #![doc(no_default_passes)]
| ^^^^^^^^^^^^^^^^^ no longer functions
|
= note: `doc` attribute `no_default_passes` no longer functions; see issue #44136 <https://github.com/rust-lang/rust/issues/44136>
= note: `doc(no_default_passes)` is now a no-op
= note: `#[deny(invalid_doc_attributes)]` on by default
note: the lint level is defined here
--> $DIR/deprecated-attrs.rs:3:9
|
LL | #![deny(invalid_doc_attributes)]
| ^^^^^^^^^^^^^^^^^^^^^^
error: unknown `doc` attribute `passes`
--> $DIR/deprecated-attrs.rs:9:8
--> $DIR/deprecated-attrs.rs:11:8
|
LL | #![doc(passes = "collapse-docs unindent-comments")]
| ^^^^^^ no longer functions
@@ -23,7 +27,7 @@ LL | #![doc(passes = "collapse-docs unindent-comments")]
= note: `doc(passes)` is now a no-op
error: unknown `doc` attribute `plugins`
--> $DIR/deprecated-attrs.rs:14:8
--> $DIR/deprecated-attrs.rs:16:8
|
LL | #![doc(plugins = "xxx")]
| ^^^^^^^ no longer functions
+1
View File
@@ -1,3 +1,4 @@
#![deny(invalid_doc_attributes)]
#![feature(doc_cfg)]
#[doc(cfg(foo), cfg(bar))]
+15 -11
View File
@@ -1,5 +1,5 @@
warning: unexpected `cfg` condition name: `foo`
--> $DIR/doc-cfg-2.rs:3:11
--> $DIR/doc-cfg-2.rs:4:11
|
LL | #[doc(cfg(foo), cfg(bar))]
| ^^^
@@ -10,7 +10,7 @@ LL | #[doc(cfg(foo), cfg(bar))]
= note: `#[warn(unexpected_cfgs)]` on by default
warning: unexpected `cfg` condition name: `bar`
--> $DIR/doc-cfg-2.rs:3:21
--> $DIR/doc-cfg-2.rs:4:21
|
LL | #[doc(cfg(foo), cfg(bar))]
| ^^^
@@ -19,45 +19,49 @@ LL | #[doc(cfg(foo), cfg(bar))]
= note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg.html> for more information about checking conditional configuration
error: only `hide` or `show` are allowed in `#[doc(auto_cfg(...))]`
--> $DIR/doc-cfg-2.rs:6:16
--> $DIR/doc-cfg-2.rs:7:16
|
LL | #[doc(auto_cfg(42))]
| ^^
|
= note: `#[deny(invalid_doc_attributes)]` on by default
note: the lint level is defined here
--> $DIR/doc-cfg-2.rs:1:9
|
LL | #![deny(invalid_doc_attributes)]
| ^^^^^^^^^^^^^^^^^^^^^^
error: `#![doc(auto_cfg(hide(...)))]` only accepts identifiers or key/value items
--> $DIR/doc-cfg-2.rs:7:21
--> $DIR/doc-cfg-2.rs:8:21
|
LL | #[doc(auto_cfg(hide(true)))]
| ^^^^
error: `#![doc(auto_cfg(hide(...)))]` only accepts identifiers or key/value items
--> $DIR/doc-cfg-2.rs:8:21
--> $DIR/doc-cfg-2.rs:9:21
|
LL | #[doc(auto_cfg(hide(42)))]
| ^^
error: `#![doc(auto_cfg(hide(...)))]` only accepts identifiers or key/value items
--> $DIR/doc-cfg-2.rs:9:21
--> $DIR/doc-cfg-2.rs:10:21
|
LL | #[doc(auto_cfg(hide("a")))]
| ^^^
error: expected boolean for `#[doc(auto_cfg = ...)]`
--> $DIR/doc-cfg-2.rs:10:18
--> $DIR/doc-cfg-2.rs:11:18
|
LL | #[doc(auto_cfg = 42)]
| ^^
error: expected boolean for `#[doc(auto_cfg = ...)]`
--> $DIR/doc-cfg-2.rs:11:18
--> $DIR/doc-cfg-2.rs:12:18
|
LL | #[doc(auto_cfg = "a")]
| ^^^
warning: unexpected `cfg` condition name: `feature`
--> $DIR/doc-cfg-2.rs:14:21
--> $DIR/doc-cfg-2.rs:15:21
|
LL | #[doc(auto_cfg(hide(feature = "windows")))]
| ^^^^^^^^^^^^^^^^^^^
@@ -66,7 +70,7 @@ LL | #[doc(auto_cfg(hide(feature = "windows")))]
= note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg.html> for more information about checking conditional configuration
warning: unexpected `cfg` condition name: `foo`
--> $DIR/doc-cfg-2.rs:16:21
--> $DIR/doc-cfg-2.rs:17:21
|
LL | #[doc(auto_cfg(hide(foo)))]
| ^^^
+3 -1
View File
@@ -1,6 +1,8 @@
#![deny(invalid_doc_attributes)]
//~^ NOTE
#[doc(include = "external-cross-doc.md")]
//~^ ERROR unknown `doc` attribute `include`
//~| HELP use `doc = include_str!` instead
// FIXME(#85497): make this a deny instead so it's more clear what's happening
//~| NOTE on by default
pub struct NeedMoreDocs;
@@ -1,10 +1,14 @@
error: unknown `doc` attribute `include`
--> $DIR/doc-include-suggestion.rs:1:7
--> $DIR/doc-include-suggestion.rs:4:7
|
LL | #[doc(include = "external-cross-doc.md")]
| ^^^^^^^ help: use `doc = include_str!` instead: `#[doc = include_str!("external-cross-doc.md")]`
|
= note: `#[deny(invalid_doc_attributes)]` on by default
note: the lint level is defined here
--> $DIR/doc-include-suggestion.rs:1:9
|
LL | #![deny(invalid_doc_attributes)]
| ^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 1 previous error
@@ -1,3 +1,4 @@
#![deny(invalid_doc_attributes)]
#![crate_type = "lib"]
#![doc(test)]
@@ -1,19 +1,23 @@
error: `#[doc(test(...)]` takes a list of attributes
--> $DIR/doc-test-attr.rs:3:8
--> $DIR/doc-test-attr.rs:4:8
|
LL | #![doc(test)]
| ^^^^
|
= note: `#[deny(invalid_doc_attributes)]` on by default
note: the lint level is defined here
--> $DIR/doc-test-attr.rs:1:9
|
LL | #![deny(invalid_doc_attributes)]
| ^^^^^^^^^^^^^^^^^^^^^^
error: `#[doc(test(...)]` takes a list of attributes
--> $DIR/doc-test-attr.rs:5:13
--> $DIR/doc-test-attr.rs:6:13
|
LL | #![doc(test = "hello")]
| ^^^^^^^^^
error: unknown `doc(test)` attribute `a`
--> $DIR/doc-test-attr.rs:7:13
--> $DIR/doc-test-attr.rs:8:13
|
LL | #![doc(test(a))]
| ^
+1
View File
@@ -1,3 +1,4 @@
#![deny(invalid_doc_attributes)]
#![doc(as_ptr)]
//~^ ERROR unknown `doc` attribute `as_ptr`
+9 -5
View File
@@ -1,25 +1,29 @@
error: unknown `doc` attribute `as_ptr`
--> $DIR/doc-attr-2.rs:4:7
--> $DIR/doc-attr-2.rs:5:7
|
LL | #[doc(as_ptr)]
| ^^^^^^
|
= note: `#[deny(invalid_doc_attributes)]` on by default
note: the lint level is defined here
--> $DIR/doc-attr-2.rs:1:9
|
LL | #![deny(invalid_doc_attributes)]
| ^^^^^^^^^^^^^^^^^^^^^^
error: unknown `doc` attribute `foo::bar`
--> $DIR/doc-attr-2.rs:8:7
--> $DIR/doc-attr-2.rs:9:7
|
LL | #[doc(foo::bar, crate::bar::baz = "bye")]
| ^^^^^^^^
error: unknown `doc` attribute `crate::bar::baz`
--> $DIR/doc-attr-2.rs:8:17
--> $DIR/doc-attr-2.rs:9:17
|
LL | #[doc(foo::bar, crate::bar::baz = "bye")]
| ^^^^^^^^^^^^^^^
error: unknown `doc` attribute `as_ptr`
--> $DIR/doc-attr-2.rs:1:8
--> $DIR/doc-attr-2.rs:2:8
|
LL | #![doc(as_ptr)]
| ^^^^^^
@@ -1,5 +1,6 @@
//@ run-rustfix
#![feature(doc_notable_trait)]
#![deny(invalid_doc_attributes)]
#[doc(notable_trait)]
//~^ ERROR unknown `doc` attribute `spotlight`
+1
View File
@@ -1,5 +1,6 @@
//@ run-rustfix
#![feature(doc_notable_trait)]
#![deny(invalid_doc_attributes)]
#[doc(spotlight)]
//~^ ERROR unknown `doc` attribute `spotlight`
+6 -2
View File
@@ -1,12 +1,16 @@
error: unknown `doc` attribute `spotlight`
--> $DIR/doc-spotlight.rs:4:7
--> $DIR/doc-spotlight.rs:5:7
|
LL | #[doc(spotlight)]
| ^^^^^^^^^ help: use `notable_trait` instead
|
= note: `doc(spotlight)` was renamed to `doc(notable_trait)`
= note: `doc(spotlight)` is now a no-op
= note: `#[deny(invalid_doc_attributes)]` on by default
note: the lint level is defined here
--> $DIR/doc-spotlight.rs:3:9
|
LL | #![deny(invalid_doc_attributes)]
| ^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 1 previous error
+1
View File
@@ -1,3 +1,4 @@
#![deny(invalid_doc_attributes)]
#![feature(doc_cfg)]
#![doc(auto_cfg(hide = "test"))] //~ ERROR
#![doc(auto_cfg(hide))] //~ ERROR
+8 -4
View File
@@ -1,19 +1,23 @@
error: `#![doc(auto_cfg(hide(...)))]` expects a list of items
--> $DIR/doc_cfg_hide.rs:2:17
--> $DIR/doc_cfg_hide.rs:3:17
|
LL | #![doc(auto_cfg(hide = "test"))]
| ^^^^^^^^^^^^^
|
= note: `#[deny(invalid_doc_attributes)]` on by default
note: the lint level is defined here
--> $DIR/doc_cfg_hide.rs:1:9
|
LL | #![deny(invalid_doc_attributes)]
| ^^^^^^^^^^^^^^^^^^^^^^
error: `#![doc(auto_cfg(hide(...)))]` expects a list of items
--> $DIR/doc_cfg_hide.rs:3:17
--> $DIR/doc_cfg_hide.rs:4:17
|
LL | #![doc(auto_cfg(hide))]
| ^^^^
error: `#![doc(auto_cfg(hide(...)))]` only accepts identifiers or key/value items
--> $DIR/doc_cfg_hide.rs:4:22
--> $DIR/doc_cfg_hide.rs:5:22
|
LL | #![doc(auto_cfg(hide(not(windows))))]
| ^^^^^^^^^^^^
@@ -0,0 +1,6 @@
#![deny(invalid_doc_attributes)]
#![expect(unused_attributes)]
#![doc(test(no_crate_inject))]
#![doc(test(no_crate_inject))]
//~^ ERROR
//~| WARN
@@ -0,0 +1,20 @@
error: unused attribute
--> $DIR/duplicated-attr.rs:4:13
|
LL | #![doc(test(no_crate_inject))]
| ^^^^^^^^^^^^^^^ help: remove this attribute
|
note: attribute also specified here
--> $DIR/duplicated-attr.rs:3:13
|
LL | #![doc(test(no_crate_inject))]
| ^^^^^^^^^^^^^^^
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
note: the lint level is defined here
--> $DIR/duplicated-attr.rs:1:9
|
LL | #![deny(invalid_doc_attributes)]
| ^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 1 previous error
@@ -1,3 +1,4 @@
#![deny(invalid_doc_attributes)]
#![crate_type = "lib"]
#[doc(test(no_crate_inject))]
@@ -1,14 +1,18 @@
error: this attribute can only be applied at the crate level
--> $DIR/invalid-crate-level-lint.rs:3:12
--> $DIR/invalid-crate-level-lint.rs:4:12
|
LL | #[doc(test(no_crate_inject))]
| ^^^^^^^^^^^^^^^
|
= note: read <https://doc.rust-lang.org/nightly/rustdoc/the-doc-attribute.html#at-the-crate-level> for more information
= note: `#[deny(invalid_doc_attributes)]` on by default
note: the lint level is defined here
--> $DIR/invalid-crate-level-lint.rs:1:9
|
LL | #![deny(invalid_doc_attributes)]
| ^^^^^^^^^^^^^^^^^^^^^^
error: this attribute can only be applied at the crate level
--> $DIR/invalid-crate-level-lint.rs:7:17
--> $DIR/invalid-crate-level-lint.rs:8:17
|
LL | #![doc(test(no_crate_inject))]
| ^^^^^^^^^^^^^^^
@@ -16,7 +20,7 @@ LL | #![doc(test(no_crate_inject))]
= note: read <https://doc.rust-lang.org/nightly/rustdoc/the-doc-attribute.html#at-the-crate-level> for more information
error: this attribute can only be applied at the crate level
--> $DIR/invalid-crate-level-lint.rs:10:16
--> $DIR/invalid-crate-level-lint.rs:11:16
|
LL | #[doc(test(no_crate_inject))]
| ^^^^^^^^^^^^^^^
@@ -1,3 +1,4 @@
#![deny(invalid_doc_attributes)]
#![crate_type = "lib"]
#![feature(doc_masked)]
+13 -8
View File
@@ -1,5 +1,5 @@
error: this attribute can only be applied to a `use` item
--> $DIR/invalid-doc-attr.rs:7:7
--> $DIR/invalid-doc-attr.rs:8:7
|
LL | #[doc(inline)]
| ^^^^^^ only applicable on `use` items
@@ -8,10 +8,14 @@ LL | pub fn foo() {}
| ------------ not a `use` item
|
= note: read <https://doc.rust-lang.org/nightly/rustdoc/the-doc-attribute.html#inline-and-no_inline> for more information
= note: `#[deny(invalid_doc_attributes)]` on by default
note: the lint level is defined here
--> $DIR/invalid-doc-attr.rs:1:9
|
LL | #![deny(invalid_doc_attributes)]
| ^^^^^^^^^^^^^^^^^^^^^^
error: conflicting doc inlining attributes
--> $DIR/invalid-doc-attr.rs:17:7
--> $DIR/invalid-doc-attr.rs:18:7
|
LL | #[doc(inline)]
| ^^^^^^ this attribute...
@@ -21,7 +25,7 @@ LL | #[doc(no_inline)]
= help: remove one of the conflicting attributes
error: this attribute can only be applied to an `extern crate` item
--> $DIR/invalid-doc-attr.rs:23:7
--> $DIR/invalid-doc-attr.rs:24:7
|
LL | #[doc(masked)]
| ^^^^^^ only applicable on `extern crate` items
@@ -32,7 +36,7 @@ LL | pub struct Masked;
= note: read <https://doc.rust-lang.org/unstable-book/language-features/doc-masked.html> for more information
error: this attribute cannot be applied to an `extern crate self` item
--> $DIR/invalid-doc-attr.rs:27:7
--> $DIR/invalid-doc-attr.rs:28:7
|
LL | #[doc(masked)]
| ^^^^^^ not applicable on `extern crate self` items
@@ -41,9 +45,10 @@ LL | pub extern crate self as reexport;
| --------------------------------- `extern crate self` defined here
error: this attribute can only be applied to an `extern crate` item
--> $DIR/invalid-doc-attr.rs:4:8
--> $DIR/invalid-doc-attr.rs:5:8
|
LL | / #![crate_type = "lib"]
LL | / #![deny(invalid_doc_attributes)]
LL | | #![crate_type = "lib"]
LL | | #![feature(doc_masked)]
LL | |
LL | | #![doc(masked)]
@@ -55,7 +60,7 @@ LL | | pub extern crate self as reexport;
= note: read <https://doc.rust-lang.org/unstable-book/language-features/doc-masked.html> for more information
error: this attribute can only be applied to a `use` item
--> $DIR/invalid-doc-attr.rs:12:11
--> $DIR/invalid-doc-attr.rs:13:11
|
LL | #[doc(inline)]
| ^^^^^^ only applicable on `use` items
+1
View File
@@ -1,3 +1,4 @@
#![deny(invalid_doc_attributes)]
#![crate_type = "lib"]
#![doc(as_ptr)]
//~^ ERROR unknown `doc` attribute
+12 -8
View File
@@ -1,5 +1,5 @@
error[E0539]: malformed `doc` attribute input
--> $DIR/doc-attr.rs:9:1
--> $DIR/doc-attr.rs:10:1
|
LL | #[doc(123)]
| ^^^^^^---^^
@@ -7,7 +7,7 @@ LL | #[doc(123)]
| expected this to be of the form `... = "..."`
error[E0539]: malformed `doc` attribute input
--> $DIR/doc-attr.rs:11:1
--> $DIR/doc-attr.rs:12:1
|
LL | #[doc("hello", "bar")]
| ^^^^^^-------^^^^^^^^^
@@ -15,7 +15,7 @@ LL | #[doc("hello", "bar")]
| expected this to be of the form `... = "..."`
error[E0539]: malformed `doc` attribute input
--> $DIR/doc-attr.rs:11:1
--> $DIR/doc-attr.rs:12:1
|
LL | #[doc("hello", "bar")]
| ^^^^^^^^^^^^^^^-----^^
@@ -23,27 +23,31 @@ LL | #[doc("hello", "bar")]
| expected this to be of the form `... = "..."`
error: unknown `doc` attribute `as_ptr`
--> $DIR/doc-attr.rs:5:7
--> $DIR/doc-attr.rs:6:7
|
LL | #[doc(as_ptr)]
| ^^^^^^
|
= note: `#[deny(invalid_doc_attributes)]` on by default
note: the lint level is defined here
--> $DIR/doc-attr.rs:1:9
|
LL | #![deny(invalid_doc_attributes)]
| ^^^^^^^^^^^^^^^^^^^^^^
error: unknown `doc` attribute `foo::bar`
--> $DIR/doc-attr.rs:14:7
--> $DIR/doc-attr.rs:15:7
|
LL | #[doc(foo::bar, crate::bar::baz = "bye")]
| ^^^^^^^^
error: unknown `doc` attribute `crate::bar::baz`
--> $DIR/doc-attr.rs:14:17
--> $DIR/doc-attr.rs:15:17
|
LL | #[doc(foo::bar, crate::bar::baz = "bye")]
| ^^^^^^^^^^^^^^^
error: unknown `doc` attribute `as_ptr`
--> $DIR/doc-attr.rs:2:8
--> $DIR/doc-attr.rs:3:8
|
LL | #![doc(as_ptr)]
| ^^^^^^
@@ -1,3 +1,4 @@
#![deny(invalid_doc_attributes)]
#![feature(external_doc)] //~ ERROR feature has been removed
#![doc(include("README.md"))] //~ ERROR unknown `doc` attribute `include`
@@ -1,5 +1,5 @@
error[E0557]: feature has been removed
--> $DIR/removed-features-note-version-and-pr-issue-141619.rs:1:12
--> $DIR/removed-features-note-version-and-pr-issue-141619.rs:2:12
|
LL | #![feature(external_doc)]
| ^^^^^^^^^^^^ feature has been removed
@@ -8,12 +8,16 @@ LL | #![feature(external_doc)]
= note: use #[doc = include_str!("filename")] instead, which handles macro invocations
error: unknown `doc` attribute `include`
--> $DIR/removed-features-note-version-and-pr-issue-141619.rs:2:8
--> $DIR/removed-features-note-version-and-pr-issue-141619.rs:3:8
|
LL | #![doc(include("README.md"))]
| ^^^^^^^
|
= note: `#[deny(invalid_doc_attributes)]` on by default
note: the lint level is defined here
--> $DIR/removed-features-note-version-and-pr-issue-141619.rs:1:9
|
LL | #![deny(invalid_doc_attributes)]
| ^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 2 previous errors
+1
View File
@@ -1,3 +1,4 @@
#![deny(invalid_doc_attributes)]
#![crate_type = "lib"]
#[repr(uwu)] //~ERROR: unrecognized representation hint
+11 -7
View File
@@ -1,5 +1,5 @@
error[E0552]: unrecognized representation hint
--> $DIR/invalid_repr_list_help.rs:3:8
--> $DIR/invalid_repr_list_help.rs:4:8
|
LL | #[repr(uwu)]
| ^^^
@@ -8,7 +8,7 @@ LL | #[repr(uwu)]
= note: for more information, visit <https://doc.rust-lang.org/reference/type-layout.html?highlight=repr#representations>
error[E0552]: unrecognized representation hint
--> $DIR/invalid_repr_list_help.rs:6:8
--> $DIR/invalid_repr_list_help.rs:7:8
|
LL | #[repr(uwu = "a")]
| ^^^^^^^^^
@@ -17,7 +17,7 @@ LL | #[repr(uwu = "a")]
= note: for more information, visit <https://doc.rust-lang.org/reference/type-layout.html?highlight=repr#representations>
error[E0552]: unrecognized representation hint
--> $DIR/invalid_repr_list_help.rs:9:8
--> $DIR/invalid_repr_list_help.rs:10:8
|
LL | #[repr(uwu(4))]
| ^^^^^^
@@ -26,7 +26,7 @@ LL | #[repr(uwu(4))]
= note: for more information, visit <https://doc.rust-lang.org/reference/type-layout.html?highlight=repr#representations>
error[E0552]: unrecognized representation hint
--> $DIR/invalid_repr_list_help.rs:14:8
--> $DIR/invalid_repr_list_help.rs:15:8
|
LL | #[repr(uwu, u8)]
| ^^^
@@ -35,7 +35,7 @@ LL | #[repr(uwu, u8)]
= note: for more information, visit <https://doc.rust-lang.org/reference/type-layout.html?highlight=repr#representations>
error[E0552]: unrecognized representation hint
--> $DIR/invalid_repr_list_help.rs:19:8
--> $DIR/invalid_repr_list_help.rs:20:8
|
LL | #[repr(uwu)]
| ^^^
@@ -44,12 +44,16 @@ LL | #[repr(uwu)]
= note: for more information, visit <https://doc.rust-lang.org/reference/type-layout.html?highlight=repr#representations>
error: unknown `doc` attribute `owo`
--> $DIR/invalid_repr_list_help.rs:20:7
--> $DIR/invalid_repr_list_help.rs:21:7
|
LL | #[doc(owo)]
| ^^^
|
= note: `#[deny(invalid_doc_attributes)]` on by default
note: the lint level is defined here
--> $DIR/invalid_repr_list_help.rs:1:9
|
LL | #![deny(invalid_doc_attributes)]
| ^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 6 previous errors