1
Fork 0

Add items to DocAliasBadLocation check error match arm

- Added `Impl`, `Closure`, ForeignMod` targets
- `Target::name` changed for `Target::Impl`
- Error output for `Target::ForeignMod` changed to "foreign module"
This commit is contained in:
hdelc 2022-08-02 23:11:22 -04:00
parent 1e8abe7da2
commit 2be00947bf
6 changed files with 17 additions and 15 deletions

View file

@ -162,7 +162,7 @@ impl Target {
Target::Union => "union", Target::Union => "union",
Target::Trait => "trait", Target::Trait => "trait",
Target::TraitAlias => "trait alias", Target::TraitAlias => "trait alias",
Target::Impl => "item", Target::Impl => "implementation block",
Target::Expression => "expression", Target::Expression => "expression",
Target::Statement => "statement", Target::Statement => "statement",
Target::Arm => "match arm", Target::Arm => "match arm",

View file

@ -596,8 +596,6 @@ impl CheckAttrVisitor<'_> {
let span = meta.span(); let span = meta.span();
if let Some(location) = match target { if let Some(location) = match target {
Target::Impl => Some("implementation block"),
Target::ForeignMod => Some("extern block"),
Target::AssocTy => { Target::AssocTy => {
let parent_hir_id = self.tcx.hir().get_parent_item(hir_id); let parent_hir_id = self.tcx.hir().get_parent_item(hir_id);
let containing_item = self.tcx.hir().expect_item(parent_hir_id); let containing_item = self.tcx.hir().expect_item(parent_hir_id);
@ -619,13 +617,17 @@ impl CheckAttrVisitor<'_> {
} }
// we check the validity of params elsewhere // we check the validity of params elsewhere
Target::Param => return false, Target::Param => return false,
Target::Expression | Target::Statement | Target::Arm => Some(target.name()), Target::Expression
| Target::Statement
| Target::Arm
| Target::ForeignMod
| Target::Closure
| Target::Impl => Some(target.name()),
Target::ExternCrate Target::ExternCrate
| Target::Use | Target::Use
| Target::Static | Target::Static
| Target::Const | Target::Const
| Target::Fn | Target::Fn
| Target::Closure
| Target::Mod | Target::Mod
| Target::GlobalAsm | Target::GlobalAsm
| Target::TyAlias | Target::TyAlias

View file

@ -1,4 +1,4 @@
error: `#[doc(alias = "...")]` isn't allowed on extern block error: `#[doc(alias = "...")]` isn't allowed on foreign module
--> $DIR/check-doc-alias-attr-location.rs:7:7 --> $DIR/check-doc-alias-attr-location.rs:7:7
| |
LL | #[doc(alias = "foo")] LL | #[doc(alias = "foo")]

View file

@ -212,7 +212,7 @@ note: the lint level is defined here
LL | #![warn(unused_attributes, unknown_lints)] LL | #![warn(unused_attributes, unknown_lints)]
| ^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^
warning: `#[automatically_derived]` only has an effect on items warning: `#[automatically_derived]` only has an effect on implementation blocks
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:266:1 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:266:1
| |
LL | #[automatically_derived] LL | #[automatically_derived]
@ -515,25 +515,25 @@ warning: `#[path]` only has an effect on modules
LL | #[path = "3800"] impl S { } LL | #[path = "3800"] impl S { }
| ^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^
warning: `#[automatically_derived]` only has an effect on items warning: `#[automatically_derived]` only has an effect on implementation blocks
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:269:17 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:269:17
| |
LL | mod inner { #![automatically_derived] } LL | mod inner { #![automatically_derived] }
| ^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^
warning: `#[automatically_derived]` only has an effect on items warning: `#[automatically_derived]` only has an effect on implementation blocks
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:272:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:272:5
| |
LL | #[automatically_derived] fn f() { } LL | #[automatically_derived] fn f() { }
| ^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^
warning: `#[automatically_derived]` only has an effect on items warning: `#[automatically_derived]` only has an effect on implementation blocks
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:275:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:275:5
| |
LL | #[automatically_derived] struct S; LL | #[automatically_derived] struct S;
| ^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^
warning: `#[automatically_derived]` only has an effect on items warning: `#[automatically_derived]` only has an effect on implementation blocks
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:278:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:278:5
| |
LL | #[automatically_derived] type T = S; LL | #[automatically_derived] type T = S;
@ -923,7 +923,7 @@ warning: `#[must_use]` has no effect when applied to a type alias
LL | #[must_use] type T = S; LL | #[must_use] type T = S;
| ^^^^^^^^^^^ | ^^^^^^^^^^^
warning: `#[must_use]` has no effect when applied to an item warning: `#[must_use]` has no effect when applied to an implementation block
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:614:5 --> $DIR/issue-43106-gating-of-builtin-attrs.rs:614:5
| |
LL | #[must_use] impl S { } LL | #[must_use] impl S { }

View file

@ -45,7 +45,7 @@ error: `#[must_use]` has no effect when applied to a static item
LL | #[must_use] LL | #[must_use]
| ^^^^^^^^^^^ | ^^^^^^^^^^^
error: `#[must_use]` has no effect when applied to an item error: `#[must_use]` has no effect when applied to an implementation block
--> $DIR/unused_attributes-must_use.rs:33:1 --> $DIR/unused_attributes-must_use.rs:33:1
| |
LL | #[must_use] LL | #[must_use]
@ -69,7 +69,7 @@ error: `#[must_use]` has no effect when applied to a type parameter
LL | fn qux<#[must_use] T>(_: T) {} LL | fn qux<#[must_use] T>(_: T) {}
| ^^^^^^^^^^^ | ^^^^^^^^^^^
error: `#[must_use]` has no effect when applied to an item error: `#[must_use]` has no effect when applied to an implementation block
--> $DIR/unused_attributes-must_use.rs:79:1 --> $DIR/unused_attributes-must_use.rs:79:1
| |
LL | #[must_use] LL | #[must_use]

View file

@ -4,7 +4,7 @@ error: allow, cfg, cfg_attr, deny, expect, forbid, and warn are the only allowed
LL | fn foo(#[doc(alias = "qux")] _x: u32) -> Self::X { LL | fn foo(#[doc(alias = "qux")] _x: u32) -> Self::X {
| ^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^
error: `#[doc(alias = "...")]` isn't allowed on extern block error: `#[doc(alias = "...")]` isn't allowed on foreign module
--> $DIR/check-doc-alias-attr-location.rs:9:7 --> $DIR/check-doc-alias-attr-location.rs:9:7
| |
LL | #[doc(alias = "foo")] LL | #[doc(alias = "foo")]