Do not warn on inherent doc(hidden) assoc items

This commit is contained in:
León Orell Valerian Liehr 2022-05-20 10:19:23 +02:00
parent f24ef2e296
commit e7252739cd
4 changed files with 36 additions and 10 deletions

View File

@ -832,7 +832,7 @@ fn check_doc_hidden(
let parent_hir_id = self.tcx.hir().get_parent_item(hir_id);
let containing_item = self.tcx.hir().expect_item(parent_hir_id);
if Target::from_item(containing_item) == Target::Impl {
if let hir::ItemKind::Impl(hir::Impl { of_trait: Some(_), .. }) = containing_item.kind {
let meta_items = attr.meta_item_list().unwrap();
let (span, replacement_span) = if meta_items.len() == 1 {

View File

@ -1,5 +1,7 @@
#![deny(unused_attributes)]
#![feature(inherent_associated_types)]
#![allow(dead_code, incomplete_features)]
#![crate_type = "lib"]
#![deny(unused_attributes)]
// run-rustfix
pub trait Trait {
@ -12,6 +14,17 @@ pub trait Trait {
pub struct Implementor;
impl Implementor {
#[doc(hidden)] // no error
type Inh = ();
#[doc(hidden)] // no error
const INH: () = ();
#[doc(hidden)] // no error
fn inh() {}
}
impl Trait for Implementor {
type It = ();

View File

@ -1,5 +1,7 @@
#![deny(unused_attributes)]
#![feature(inherent_associated_types)]
#![allow(dead_code, incomplete_features)]
#![crate_type = "lib"]
#![deny(unused_attributes)]
// run-rustfix
pub trait Trait {
@ -12,6 +14,17 @@ pub trait Trait {
pub struct Implementor;
impl Implementor {
#[doc(hidden)] // no error
type Inh = ();
#[doc(hidden)] // no error
const INH: () = ();
#[doc(hidden)] // no error
fn inh() {}
}
impl Trait for Implementor {
#[doc(hidden)]
type It = ();

View File

@ -1,11 +1,11 @@
error: `#[doc(hidden)]` is ignored on trait impl items
--> $DIR/unused-attr-doc-hidden.rs:16:5
--> $DIR/unused-attr-doc-hidden.rs:29:5
|
LL | #[doc(hidden)]
| ^^^^^^^^^^^^^^ help: remove this attribute
|
note: the lint level is defined here
--> $DIR/unused-attr-doc-hidden.rs:1:9
--> $DIR/unused-attr-doc-hidden.rs:4:9
|
LL | #![deny(unused_attributes)]
| ^^^^^^^^^^^^^^^^^
@ -13,7 +13,7 @@ LL | #![deny(unused_attributes)]
= note: whether the impl item is `doc(hidden)` or not entirely depends on the corresponding trait item
error: `#[doc(hidden)]` is ignored on trait impl items
--> $DIR/unused-attr-doc-hidden.rs:21:5
--> $DIR/unused-attr-doc-hidden.rs:34:5
|
LL | #[doc(hidden)]
| ^^^^^^^^^^^^^^ help: remove this attribute
@ -22,7 +22,7 @@ LL | #[doc(hidden)]
= note: whether the impl item is `doc(hidden)` or not entirely depends on the corresponding trait item
error: `#[doc(hidden)]` is ignored on trait impl items
--> $DIR/unused-attr-doc-hidden.rs:26:11
--> $DIR/unused-attr-doc-hidden.rs:39:11
|
LL | #[doc(hidden, alias = "aka")]
| ^^^^^^--
@ -33,7 +33,7 @@ LL | #[doc(hidden, alias = "aka")]
= note: whether the impl item is `doc(hidden)` or not entirely depends on the corresponding trait item
error: `#[doc(hidden)]` is ignored on trait impl items
--> $DIR/unused-attr-doc-hidden.rs:31:27
--> $DIR/unused-attr-doc-hidden.rs:44:27
|
LL | #[doc(alias = "this", hidden,)]
| ^^^^^^-
@ -44,7 +44,7 @@ LL | #[doc(alias = "this", hidden,)]
= note: whether the impl item is `doc(hidden)` or not entirely depends on the corresponding trait item
error: `#[doc(hidden)]` is ignored on trait impl items
--> $DIR/unused-attr-doc-hidden.rs:36:11
--> $DIR/unused-attr-doc-hidden.rs:49:11
|
LL | #[doc(hidden, hidden)]
| ^^^^^^--
@ -55,7 +55,7 @@ LL | #[doc(hidden, hidden)]
= note: whether the impl item is `doc(hidden)` or not entirely depends on the corresponding trait item
error: `#[doc(hidden)]` is ignored on trait impl items
--> $DIR/unused-attr-doc-hidden.rs:36:19
--> $DIR/unused-attr-doc-hidden.rs:49:19
|
LL | #[doc(hidden, hidden)]
| ^^^^^^ help: remove this attribute