Skip to content

Commit

Permalink
Auto merge of #82702 - jyn514:downgrade-err, r=Manishearth
Browse files Browse the repository at this point in the history
Change error about unknown attributes to a warning

Hard errors should go through a future-compatibility phase first, especially since these attributes only have no effect and don't actively cause bugs.

Follow-up to #82662. Fixes ecosystem breakage like rust-lang/rust-clippy#6832.

r? `@GuillaumeGomez`
  • Loading branch information
bors committed Mar 3, 2021
2 parents 476acbf + 4b2e4e6 commit 1c77a1f
Show file tree
Hide file tree
Showing 5 changed files with 54 additions and 17 deletions.
25 changes: 16 additions & 9 deletions compiler/rustc_passes/src/check_attr.rs
Original file line number Diff line number Diff line change
Expand Up @@ -567,16 +567,23 @@ impl CheckAttrVisitor<'tcx> {
.iter()
.any(|m| i_meta.has_name(*m))
{
self.tcx
.sess
.struct_span_err(
meta.span(),
&format!(
self.tcx.struct_span_lint_hir(
UNUSED_ATTRIBUTES,
hir_id,
i_meta.span,
|lint| {
lint.build(&format!(
"unknown `doc` attribute `{}`",
i_meta.name_or_empty(),
),
)
.emit();
i_meta.name_or_empty()
))
.warn(
"this was previously accepted by the compiler but is \
being phased out; it will become a hard error in \
a future release!",
)
.emit();
},
);
return false;
}
}
Expand Down
10 changes: 8 additions & 2 deletions src/test/rustdoc-ui/doc-attr.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
#![crate_type = "lib"]
#![doc(as_ptr)] //~ ERROR
#![deny(unused_attributes)]
//~^ NOTE lint level is defined here
#![doc(as_ptr)]
//~^ ERROR unknown `doc` attribute
//~| WARNING will become a hard error in a future release

#[doc(as_ptr)] //~ ERROR
#[doc(as_ptr)]
//~^ ERROR unknown `doc` attribute
//~| WARNING will become a hard error in a future release
pub fn foo() {}
13 changes: 11 additions & 2 deletions src/test/rustdoc-ui/doc-attr.stderr
Original file line number Diff line number Diff line change
@@ -1,14 +1,23 @@
error: unknown `doc` attribute `as_ptr`
--> $DIR/doc-attr.rs:4:7
--> $DIR/doc-attr.rs:8:7
|
LL | #[doc(as_ptr)]
| ^^^^^^
|
note: the lint level is defined here
--> $DIR/doc-attr.rs:2:9
|
LL | #![deny(unused_attributes)]
| ^^^^^^^^^^^^^^^^^
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!

error: unknown `doc` attribute `as_ptr`
--> $DIR/doc-attr.rs:2:8
--> $DIR/doc-attr.rs:4:8
|
LL | #![doc(as_ptr)]
| ^^^^^^
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!

error: aborting due to 2 previous errors

10 changes: 8 additions & 2 deletions src/test/ui/attributes/doc-attr.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
#![crate_type = "lib"]
#![doc(as_ptr)] //~ ERROR
#![deny(unused_attributes)]
//~^ NOTE lint level is defined here
#![doc(as_ptr)]
//~^ ERROR unknown `doc` attribute
//~| WARNING will become a hard error in a future release

#[doc(as_ptr)] //~ ERROR
#[doc(as_ptr)]
//~^ ERROR unknown `doc` attribute
//~| WARNING will become a hard error in a future release
pub fn foo() {}
13 changes: 11 additions & 2 deletions src/test/ui/attributes/doc-attr.stderr
Original file line number Diff line number Diff line change
@@ -1,14 +1,23 @@
error: unknown `doc` attribute `as_ptr`
--> $DIR/doc-attr.rs:4:7
--> $DIR/doc-attr.rs:8:7
|
LL | #[doc(as_ptr)]
| ^^^^^^
|
note: the lint level is defined here
--> $DIR/doc-attr.rs:2:9
|
LL | #![deny(unused_attributes)]
| ^^^^^^^^^^^^^^^^^
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!

error: unknown `doc` attribute `as_ptr`
--> $DIR/doc-attr.rs:2:8
--> $DIR/doc-attr.rs:4:8
|
LL | #![doc(as_ptr)]
| ^^^^^^
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!

error: aborting due to 2 previous errors

0 comments on commit 1c77a1f

Please sign in to comment.