Skip to content

Commit

Permalink
Fix bug where rustc_lint would not apply renamed tool lints
Browse files Browse the repository at this point in the history
  • Loading branch information
jyn514 committed Apr 5, 2021
1 parent ef4e5b9 commit d19083d
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 4 deletions.
7 changes: 4 additions & 3 deletions compiler/rustc_lint/src/levels.rs
Original file line number Diff line number Diff line change
Expand Up @@ -464,15 +464,16 @@ impl<'s> LintLevelsBuilder<'s> {
// we don't warn about the name change.
if let CheckLintNameResult::Warning(_, Some(new_name)) = lint_result {
// Ignore any errors or warnings that happen because the new name is inaccurate
if let CheckLintNameResult::Ok(ids) =
store.check_lint_name(&new_name, tool_name)
{
// NOTE: `new_name` already includes the tool name, so we don't have to add it again.
if let CheckLintNameResult::Ok(ids) = store.check_lint_name(&new_name, None) {
let src =
LintLevelSource::Node(Symbol::intern(&new_name), li.span(), reason);
for &id in ids {
self.check_gated_lint(id, attr.span);
self.insert_spec(&mut specs, id, (level, src));
}
} else {
panic!("renamed lint does not exist: {}", new_name);
}
}
}
Expand Down
5 changes: 5 additions & 0 deletions src/test/rustdoc-ui/renamed-lint-still-applies.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,8 @@
// stable channel.
//! [x]
//~^ ERROR unresolved link

#![deny(rustdoc::non_autolinks)]
//~^ WARNING renamed to `rustdoc::bare_urls`
//! http://example.com
//~^ ERROR not a hyperlink
22 changes: 21 additions & 1 deletion src/test/rustdoc-ui/renamed-lint-still-applies.stderr
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
warning: lint `rustdoc::non_autolinks` has been renamed to `rustdoc::bare_urls`
--> $DIR/renamed-lint-still-applies.rs:8:9
|
LL | #![deny(rustdoc::non_autolinks)]
| ^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `rustdoc::bare_urls`
|
= note: `#[warn(renamed_and_removed_lints)]` on by default

error: unresolved link to `x`
--> $DIR/renamed-lint-still-applies.rs:5:6
|
Expand All @@ -12,5 +20,17 @@ LL | #![deny(broken_intra_doc_links)]
= note: `#[deny(rustdoc::broken_intra_doc_links)]` implied by `#[deny(broken_intra_doc_links)]`
= help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`

error: aborting due to previous error
error: this URL is not a hyperlink
--> $DIR/renamed-lint-still-applies.rs:10:5
|
LL | //! http://example.com
| ^^^^^^^^^^^^^^^^^^ help: use an automatic link instead: `<http://example.com>`
|
note: the lint level is defined here
--> $DIR/renamed-lint-still-applies.rs:8:9
|
LL | #![deny(rustdoc::non_autolinks)]
| ^^^^^^^^^^^^^^^^^^^^^^

error: aborting due to 2 previous errors; 1 warning emitted

0 comments on commit d19083d

Please sign in to comment.