Rename automatic_links to url_improvements

This commit is contained in:
Guillaume Gomez 2020-10-17 16:38:49 +02:00
parent 55b4d21e25
commit 60caf51b0d
9 changed files with 29 additions and 29 deletions

View File

@ -67,9 +67,9 @@ use rustc_hir::def_id::LocalDefId;
use rustc_middle::ty::query::Providers;
use rustc_middle::ty::TyCtxt;
use rustc_session::lint::builtin::{
AUTOMATIC_LINKS, BARE_TRAIT_OBJECTS, BROKEN_INTRA_DOC_LINKS, ELIDED_LIFETIMES_IN_PATHS,
BARE_TRAIT_OBJECTS, BROKEN_INTRA_DOC_LINKS, ELIDED_LIFETIMES_IN_PATHS,
EXPLICIT_OUTLIVES_REQUIREMENTS, INVALID_CODEBLOCK_ATTRIBUTES, INVALID_HTML_TAGS,
MISSING_DOC_CODE_EXAMPLES, PRIVATE_DOC_TESTS,
MISSING_DOC_CODE_EXAMPLES, PRIVATE_DOC_TESTS, URL_IMPROVEMENTS,
};
use rustc_span::symbol::{Ident, Symbol};
use rustc_span::Span;
@ -313,7 +313,7 @@ fn register_builtins(store: &mut LintStore, no_interleave_lints: bool) {
add_lint_group!(
"rustdoc",
AUTOMATIC_LINKS,
URL_IMPROVEMENTS,
BROKEN_INTRA_DOC_LINKS,
PRIVATE_INTRA_DOC_LINKS,
INVALID_CODEBLOCK_ATTRIBUTES,

View File

@ -1891,12 +1891,12 @@ declare_lint! {
}
declare_lint! {
/// The `automatic_links` lint detects when a URL could be written using
/// The `url_improvements` lint detects when a URL could be written using
/// only angle brackets. This is a `rustdoc` only lint, see the
/// documentation in the [rustdoc book].
///
/// [rustdoc book]: ../../../rustdoc/lints.html#automatic_links
pub AUTOMATIC_LINKS,
/// [rustdoc book]: ../../../rustdoc/lints.html#url_improvements
pub URL_IMPROVEMENTS,
Warn,
"detects URLs that could be written using only angle brackets"
}
@ -2806,7 +2806,7 @@ declare_lint_pass! {
MISSING_DOC_CODE_EXAMPLES,
INVALID_HTML_TAGS,
PRIVATE_DOC_TESTS,
AUTOMATIC_LINKS,
URL_IMPROVEMENTS,
WHERE_CLAUSES_OBJECT_SAFETY,
PROC_MACRO_DERIVE_RESOLUTION_FALLBACK,
MACRO_USE_EXTERN_CRATE,

View File

@ -287,7 +287,7 @@ pub mod primitive;
unused_imports,
unsafe_op_in_unsafe_fn
)]
#[cfg_attr(not(bootstrap), allow(automatic_links))]
#[cfg_attr(not(bootstrap), allow(url_improvements))]
// FIXME: This annotation should be moved into rust-lang/stdarch after clashing_extern_declarations is
// merged. It currently cannot because bootstrap fails as the lint hasn't been defined yet.
#[allow(clashing_extern_declarations)]

View File

@ -286,7 +286,7 @@ warning: unclosed HTML tag `h1`
warning: 2 warnings emitted
```
## automatic_links
## url_improvements
This lint is **nightly-only** and **warns by default**. It detects links which
could use the "automatic" link syntax. For example:

View File

@ -330,13 +330,12 @@ pub fn run_core(
let invalid_codeblock_attributes_name = rustc_lint::builtin::INVALID_CODEBLOCK_ATTRIBUTES.name;
let invalid_html_tags = rustc_lint::builtin::INVALID_HTML_TAGS.name;
let renamed_and_removed_lints = rustc_lint::builtin::RENAMED_AND_REMOVED_LINTS.name;
let automatic_links = rustc_lint::builtin::AUTOMATIC_LINKS.name;
let url_improvements = rustc_lint::builtin::URL_IMPROVEMENTS.name;
let unknown_lints = rustc_lint::builtin::UNKNOWN_LINTS.name;
// In addition to those specific lints, we also need to allow those given through
// command line, otherwise they'll get ignored and we don't want that.
let lints_to_show = vec![
automatic_links.to_owned(),
intra_link_resolution_failure_name.to_owned(),
missing_docs.to_owned(),
missing_doc_example.to_owned(),
@ -346,6 +345,7 @@ pub fn run_core(
invalid_html_tags.to_owned(),
renamed_and_removed_lints.to_owned(),
unknown_lints.to_owned(),
url_improvements.to_owned(),
];
let (lint_opts, lint_caps) = init_lints(lints_to_show, lint_opts, |lint| {

View File

@ -11,8 +11,8 @@ use crate::core::DocContext;
mod stripper;
pub use stripper::*;
mod automatic_links;
pub use self::automatic_links::CHECK_AUTOMATIC_LINKS;
mod url_improvements;
pub use self::url_improvements::CHECK_URL_IMPROVEMENTS;
mod collapse_docs;
pub use self::collapse_docs::COLLAPSE_DOCS;
@ -93,7 +93,7 @@ pub const PASSES: &[Pass] = &[
COLLECT_TRAIT_IMPLS,
CALCULATE_DOC_COVERAGE,
CHECK_INVALID_HTML_TAGS,
CHECK_AUTOMATIC_LINKS,
CHECK_URL_IMPROVEMENTS,
];
/// The list of passes run by default.
@ -109,7 +109,7 @@ pub const DEFAULT_PASSES: &[ConditionalPass] = &[
ConditionalPass::always(CHECK_CODE_BLOCK_SYNTAX),
ConditionalPass::always(CHECK_INVALID_HTML_TAGS),
ConditionalPass::always(PROPAGATE_DOC_CFG),
ConditionalPass::always(CHECK_AUTOMATIC_LINKS),
ConditionalPass::always(CHECK_URL_IMPROVEMENTS),
];
/// The list of default passes run when `--doc-coverage` is passed to rustdoc.

View File

@ -10,9 +10,9 @@ use rustc_errors::Applicability;
use rustc_feature::UnstableFeatures;
use rustc_session::lint;
pub const CHECK_AUTOMATIC_LINKS: Pass = Pass {
name: "check-automatic-links",
run: check_automatic_links,
pub const CHECK_URL_IMPROVEMENTS: Pass = Pass {
name: "check-url-improvements",
run: check_url_improvements,
description: "detects URLS that could be written using angle brackets",
};
@ -23,14 +23,14 @@ const URL_REGEX: &str = concat!(
r"\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)" // optional query or url fragments
);
struct AutomaticLinksLinter<'a, 'tcx> {
struct UrlImprovementsLinter<'a, 'tcx> {
cx: &'a DocContext<'tcx>,
regex: Regex,
}
impl<'a, 'tcx> AutomaticLinksLinter<'a, 'tcx> {
impl<'a, 'tcx> UrlImprovementsLinter<'a, 'tcx> {
fn new(cx: &'a DocContext<'tcx>) -> Self {
AutomaticLinksLinter { cx, regex: Regex::new(URL_REGEX).expect("failed to build regex") }
UrlImprovementsLinter { cx, regex: Regex::new(URL_REGEX).expect("failed to build regex") }
}
fn find_raw_urls(
@ -53,17 +53,17 @@ impl<'a, 'tcx> AutomaticLinksLinter<'a, 'tcx> {
}
}
pub fn check_automatic_links(krate: Crate, cx: &DocContext<'_>) -> Crate {
pub fn check_url_improvements(krate: Crate, cx: &DocContext<'_>) -> Crate {
if !UnstableFeatures::from_environment().is_nightly_build() {
krate
} else {
let mut coll = AutomaticLinksLinter::new(cx);
let mut coll = UrlImprovementsLinter::new(cx);
coll.fold_crate(krate)
}
}
impl<'a, 'tcx> DocFolder for AutomaticLinksLinter<'a, 'tcx> {
impl<'a, 'tcx> DocFolder for UrlImprovementsLinter<'a, 'tcx> {
fn fold_item(&mut self, item: Item) -> Option<Item> {
let hir_id = match self.cx.as_local_hir_id(item.def_id) {
Some(hir_id) => hir_id,
@ -78,7 +78,7 @@ impl<'a, 'tcx> DocFolder for AutomaticLinksLinter<'a, 'tcx> {
let sp = super::source_span_for_markdown_range(cx, &dox, &range, &item.attrs)
.or_else(|| span_of_attrs(&item.attrs))
.unwrap_or(item.source.span());
cx.tcx.struct_span_lint_hir(lint::builtin::AUTOMATIC_LINKS, hir_id, sp, |lint| {
cx.tcx.struct_span_lint_hir(lint::builtin::URL_IMPROVEMENTS, hir_id, sp, |lint| {
lint.build(msg)
.span_suggestion(
sp,

View File

@ -1,4 +1,4 @@
#![deny(automatic_links)]
#![deny(url_improvements)]
/// [http://a.com](http://a.com)
//~^ ERROR unneeded long form for URL
@ -53,7 +53,7 @@ pub fn c() {}
/// [b]: http://b.com
pub fn everything_is_fine_here() {}
#[allow(automatic_links)]
#[allow(url_improvements)]
pub mod foo {
/// https://somewhere.com/a?hello=12&bye=11#xyz
pub fn bar() {}

View File

@ -7,8 +7,8 @@ LL | /// [http://a.com](http://a.com)
note: the lint level is defined here
--> $DIR/automatic-links.rs:1:9
|
LL | #![deny(automatic_links)]
| ^^^^^^^^^^^^^^^
LL | #![deny(url_improvements)]
| ^^^^^^^^^^^^^^^^
error: unneeded long form for URL
--> $DIR/automatic-links.rs:5:5