Rename automatic_links to url_improvements
This commit is contained in:
parent
55b4d21e25
commit
60caf51b0d
@ -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,
|
||||
|
@ -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,
|
||||
|
@ -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)]
|
||||
|
@ -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:
|
||||
|
@ -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| {
|
||||
|
@ -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.
|
||||
|
@ -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,
|
@ -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() {}
|
@ -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
|
Loading…
x
Reference in New Issue
Block a user