Skip to content

Commit

Permalink
Rollup merge of #64471 - Mark-Simulacrum:warn-depr-attr, r=Centril
Browse files Browse the repository at this point in the history
Warn on no_start, crate_id attribute use

These attributes are now deprecated; they don't have any use anymore.

`no_start` stopped being applicable in 3ee916e as part of #18967. Ideally we would've removed it pre-1.0, but since that didn't happen let's at least mark it deprecated.

`crate_id` was renamed to `crate_name` in 50ee1ec as part of #15319. Ideally we would've followed that up with a removal of crate_id itself as well, but that didn't happen; this PR finally marks it as deprecated at least.

Fixes #43142 and resolves #43144.
  • Loading branch information
Centril committed Sep 15, 2019
2 parents 1779893 + a0e48b6 commit 3e4c778
Show file tree
Hide file tree
Showing 6 changed files with 37 additions and 15 deletions.
29 changes: 21 additions & 8 deletions src/librustc_lint/builtin.rs
Original file line number Diff line number Diff line change
Expand Up @@ -669,6 +669,22 @@ impl DeprecatedAttr {
}
}

fn lint_deprecated_attr(
cx: &EarlyContext<'_>,
attr: &ast::Attribute,
msg: &str,
suggestion: Option<&str>,
) {
cx.struct_span_lint(DEPRECATED, attr.span, &msg)
.span_suggestion_short(
attr.span,
suggestion.unwrap_or("remove this attribute"),
String::new(),
Applicability::MachineApplicable
)
.emit();
}

impl EarlyLintPass for DeprecatedAttr {
fn check_attribute(&mut self, cx: &EarlyContext<'_>, attr: &ast::Attribute) {
for &&(n, _, _, ref g) in &self.depr_attrs {
Expand All @@ -679,18 +695,15 @@ impl EarlyLintPass for DeprecatedAttr {
_) = g {
let msg = format!("use of deprecated attribute `{}`: {}. See {}",
name, reason, link);
let mut err = cx.struct_span_lint(DEPRECATED, attr.span, &msg);
err.span_suggestion_short(
attr.span,
suggestion.unwrap_or("remove this attribute"),
String::new(),
Applicability::MachineApplicable
);
err.emit();
lint_deprecated_attr(cx, attr, &msg, suggestion);
}
return;
}
}
if attr.check_name(sym::no_start) || attr.check_name(sym::crate_id) {
let msg = format!("use of deprecated attribute `{}`: no longer used.", attr.path);
lint_deprecated_attr(cx, attr, &msg, None);
}
}
}

Expand Down
2 changes: 0 additions & 2 deletions src/test/ui/attributes/item-attributes.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,6 @@
#![rustc_dummy]
#![rustc_dummy(attr5)]

#![crate_id="foobar#0.1"]

// These are attributes of the following mod
#[rustc_dummy = "val"]
#[rustc_dummy = "val"]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,12 +84,12 @@
#![crate_name = "0900"]
#![crate_type = "bin"] // cannot pass "0800" here

// For #![crate_id], see issue #43142. (I cannot bear to enshrine current behavior in a test)
#![crate_id = "10"] //~ WARN use of deprecated attribute

// FIXME(#44232) we should warn that this isn't used.
#![feature(rust1)]

// For #![no_start], see issue #43144. (I cannot bear to enshrine current behavior in a test)
#![no_start] //~ WARN use of deprecated attribute

// (cannot easily gating state of crate-level #[no_main]; but non crate-level is below at "0400")
#![no_builtins]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,20 @@ LL | mod inner { #![macro_escape] }
|
= help: consider an outer attribute, `#[macro_use]` mod ...

warning: use of deprecated attribute `crate_id`: no longer used.
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:87:1
|
LL | #![crate_id = "10"]
| ^^^^^^^^^^^^^^^^^^^ help: remove this attribute
|
= note: `#[warn(deprecated)]` on by default

warning: use of deprecated attribute `no_start`: no longer used.
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:92:1
|
LL | #![no_start]
| ^^^^^^^^^^^^ help: remove this attribute

warning: the feature `rust1` has been stable since 1.0.0 and no longer requires an attribute to enable
--> $DIR/issue-43106-gating-of-builtin-attrs.rs:90:12
|
Expand Down
2 changes: 0 additions & 2 deletions src/test/ui/issues/issue-1251.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@

#![feature(rustc_private)]

#![crate_id="rust_get_test_int"]

mod rustrt {
extern crate libc;

Expand Down
1 change: 0 additions & 1 deletion src/test/ui/issues/issue-6919.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

// pretty-expanded FIXME #23616

#![crate_id="issue-6919"]
extern crate issue6919_3;

pub fn main() {
Expand Down

0 comments on commit 3e4c778

Please sign in to comment.