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:
parent
1e8abe7da2
commit
2be00947bf
6 changed files with 17 additions and 15 deletions
|
@ -162,7 +162,7 @@ impl Target {
|
|||
Target::Union => "union",
|
||||
Target::Trait => "trait",
|
||||
Target::TraitAlias => "trait alias",
|
||||
Target::Impl => "item",
|
||||
Target::Impl => "implementation block",
|
||||
Target::Expression => "expression",
|
||||
Target::Statement => "statement",
|
||||
Target::Arm => "match arm",
|
||||
|
|
|
@ -596,8 +596,6 @@ impl CheckAttrVisitor<'_> {
|
|||
|
||||
let span = meta.span();
|
||||
if let Some(location) = match target {
|
||||
Target::Impl => Some("implementation block"),
|
||||
Target::ForeignMod => Some("extern block"),
|
||||
Target::AssocTy => {
|
||||
let parent_hir_id = self.tcx.hir().get_parent_item(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
|
||||
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::Use
|
||||
| Target::Static
|
||||
| Target::Const
|
||||
| Target::Fn
|
||||
| Target::Closure
|
||||
| Target::Mod
|
||||
| Target::GlobalAsm
|
||||
| Target::TyAlias
|
||||
|
|
|
@ -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
|
||||
|
|
||||
LL | #[doc(alias = "foo")]
|
||||
|
|
|
@ -212,7 +212,7 @@ note: the lint level is defined here
|
|||
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
|
||||
|
|
||||
LL | #[automatically_derived]
|
||||
|
@ -515,25 +515,25 @@ warning: `#[path]` only has an effect on modules
|
|||
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
|
||||
|
|
||||
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
|
||||
|
|
||||
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
|
||||
|
|
||||
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
|
||||
|
|
||||
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;
|
||||
| ^^^^^^^^^^^
|
||||
|
||||
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
|
||||
|
|
||||
LL | #[must_use] impl S { }
|
||||
|
|
|
@ -45,7 +45,7 @@ error: `#[must_use]` has no effect when applied to a static item
|
|||
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
|
||||
|
|
||||
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) {}
|
||||
| ^^^^^^^^^^^
|
||||
|
||||
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
|
||||
|
|
||||
LL | #[must_use]
|
||||
|
|
|
@ -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 {
|
||||
| ^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
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
|
||||
|
|
||||
LL | #[doc(alias = "foo")]
|
||||
|
|
Loading…
Add table
Reference in a new issue