From 2ae7b0c8983b377d1c11ab63f13acc9df0d8e745 Mon Sep 17 00:00:00 2001 From: Vadim Petrochenkov Date: Sat, 27 Apr 2019 20:29:27 +0300 Subject: [PATCH] tidy: Fix false positives from long URLs --- src/ci/docker/scripts/sccache.sh | 2 -- src/librustc/error_codes.rs | 1 - src/librustc_typeck/error_codes.rs | 1 - src/tools/tidy/src/style.rs | 17 +++++++++++------ 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/ci/docker/scripts/sccache.sh b/src/ci/docker/scripts/sccache.sh index e05246201dd0c..4c03419894e7c 100644 --- a/src/ci/docker/scripts/sccache.sh +++ b/src/ci/docker/scripts/sccache.sh @@ -1,5 +1,3 @@ -# ignore-tidy-linelength - set -ex curl -fo /usr/local/bin/sccache \ diff --git a/src/librustc/error_codes.rs b/src/librustc/error_codes.rs index f6917c45d57e8..7f68b35d014cb 100644 --- a/src/librustc/error_codes.rs +++ b/src/librustc/error_codes.rs @@ -1,4 +1,3 @@ -// ignore-tidy-linelength #![allow(non_snake_case)] // Error messages for EXXXX errors. diff --git a/src/librustc_typeck/error_codes.rs b/src/librustc_typeck/error_codes.rs index ba67593ce968a..fdca3230904a8 100644 --- a/src/librustc_typeck/error_codes.rs +++ b/src/librustc_typeck/error_codes.rs @@ -1,4 +1,3 @@ -// ignore-tidy-linelength // ignore-tidy-filelength #![allow(non_snake_case)] diff --git a/src/tools/tidy/src/style.rs b/src/tools/tidy/src/style.rs index 599b6c676fb27..e860f2e9df0ad 100644 --- a/src/tools/tidy/src/style.rs +++ b/src/tools/tidy/src/style.rs @@ -38,7 +38,7 @@ when executed when assertions are disabled. Use llvm::report_fatal_error for increased robustness."; /// Parser states for `line_is_url`. -#[derive(PartialEq)] +#[derive(Clone, Copy, PartialEq)] #[allow(non_camel_case_types)] enum LIUState { EXP_COMMENT_START, @@ -56,11 +56,12 @@ enum LIUState { fn line_is_url(line: &str) -> bool { use self::LIUState::*; let mut state: LIUState = EXP_COMMENT_START; + let is_url = |w: &str| w.starts_with("http://") || w.starts_with("https://"); for tok in line.split_whitespace() { match (state, tok) { - (EXP_COMMENT_START, "//") => state = EXP_LINK_LABEL_OR_URL, - (EXP_COMMENT_START, "///") => state = EXP_LINK_LABEL_OR_URL, + (EXP_COMMENT_START, "//") | + (EXP_COMMENT_START, "///") | (EXP_COMMENT_START, "//!") => state = EXP_LINK_LABEL_OR_URL, (EXP_LINK_LABEL_OR_URL, w) @@ -68,14 +69,18 @@ fn line_is_url(line: &str) -> bool { => state = EXP_URL, (EXP_LINK_LABEL_OR_URL, w) - if w.starts_with("http://") || w.starts_with("https://") + if is_url(w) => state = EXP_END, (EXP_URL, w) - if w.starts_with("http://") || w.starts_with("https://") || w.starts_with("../") + if is_url(w) || w.starts_with("../") => state = EXP_END, - (_, _) => return false, + (_, w) + if w.len() > COLS && is_url(w) + => state = EXP_END, + + (_, _) => {} } }