about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJarredAllen <jarredallen73@gmail.com>2020-05-14 15:06:05 -0700
committerJarredAllen <jarredallen73@gmail.com>2020-05-31 11:55:45 -0700
commit7e843515d9525b6389c3fc1bcfa6ae046c1351dc (patch)
tree01fcae591a89a907cee38677943a75fb1503b896
parent9fdcb13edb4026d1058c793a553f1798c044870c (diff)
downloadrust-7e843515d9525b6389c3fc1bcfa6ae046c1351dc.tar.gz
rust-7e843515d9525b6389c3fc1bcfa6ae046c1351dc.zip
Created lint
-rw-r--r--CHANGELOG.md1
-rw-r--r--clippy_lints/src/lib.rs4
-rw-r--r--clippy_lints/src/sort_by_key_reverse.rs28
-rw-r--r--src/lintlist/mod.rs7
-rw-r--r--tests/ui/sort_by_key_reverse.rs5
5 files changed, 45 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f7dae3dcfff..c00f84bdb85 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1555,6 +1555,7 @@ Released 2018-09-13
 [`single_match_else`]: https://rust-lang.github.io/rust-clippy/master/index.html#single_match_else
 [`skip_while_next`]: https://rust-lang.github.io/rust-clippy/master/index.html#skip_while_next
 [`slow_vector_initialization`]: https://rust-lang.github.io/rust-clippy/master/index.html#slow_vector_initialization
+[`sort_by_key_reverse`]: https://rust-lang.github.io/rust-clippy/master/index.html#sort_by_key_reverse
 [`str_to_string`]: https://rust-lang.github.io/rust-clippy/master/index.html#str_to_string
 [`string_add`]: https://rust-lang.github.io/rust-clippy/master/index.html#string_add
 [`string_add_assign`]: https://rust-lang.github.io/rust-clippy/master/index.html#string_add_assign
diff --git a/clippy_lints/src/lib.rs b/clippy_lints/src/lib.rs
index 38cfa212d9f..f51855badff 100644
--- a/clippy_lints/src/lib.rs
+++ b/clippy_lints/src/lib.rs
@@ -304,6 +304,7 @@ mod serde_api;
 mod shadow;
 mod single_component_path_imports;
 mod slow_vector_initialization;
+mod sort_by_key_reverse;
 mod strings;
 mod suspicious_trait_impl;
 mod swap;
@@ -779,6 +780,7 @@ pub fn register_plugins(store: &mut rustc_lint::LintStore, sess: &Session, conf:
         &shadow::SHADOW_UNRELATED,
         &single_component_path_imports::SINGLE_COMPONENT_PATH_IMPORTS,
         &slow_vector_initialization::SLOW_VECTOR_INITIALIZATION,
+        &sort_by_key_reverse::SORT_BY_KEY_REVERSE,
         &strings::STRING_ADD,
         &strings::STRING_ADD_ASSIGN,
         &strings::STRING_LIT_AS_BYTES,
@@ -1391,6 +1393,7 @@ pub fn register_plugins(store: &mut rustc_lint::LintStore, sess: &Session, conf:
         LintId::of(&serde_api::SERDE_API_MISUSE),
         LintId::of(&single_component_path_imports::SINGLE_COMPONENT_PATH_IMPORTS),
         LintId::of(&slow_vector_initialization::SLOW_VECTOR_INITIALIZATION),
+        LintId::of(&sort_by_key_reverse::SORT_BY_KEY_REVERSE),
         LintId::of(&strings::STRING_LIT_AS_BYTES),
         LintId::of(&suspicious_trait_impl::SUSPICIOUS_ARITHMETIC_IMPL),
         LintId::of(&suspicious_trait_impl::SUSPICIOUS_OP_ASSIGN_IMPL),
@@ -1592,6 +1595,7 @@ pub fn register_plugins(store: &mut rustc_lint::LintStore, sess: &Session, conf:
         LintId::of(&ranges::RANGE_ZIP_WITH_LEN),
         LintId::of(&reference::DEREF_ADDROF),
         LintId::of(&reference::REF_IN_DEREF),
+        LintId::of(&sort_by_key_reverse::SORT_BY_KEY_REVERSE),
         LintId::of(&swap::MANUAL_SWAP),
         LintId::of(&temporary_assignment::TEMPORARY_ASSIGNMENT),
         LintId::of(&transmute::CROSSPOINTER_TRANSMUTE),
diff --git a/clippy_lints/src/sort_by_key_reverse.rs b/clippy_lints/src/sort_by_key_reverse.rs
new file mode 100644
index 00000000000..65830afd0f8
--- /dev/null
+++ b/clippy_lints/src/sort_by_key_reverse.rs
@@ -0,0 +1,28 @@
+use rustc_lint::{LateLintPass, LateContext};
+use rustc_session::{declare_lint_pass, declare_tool_lint};
+use rustc_hir::*;
+
+declare_clippy_lint! {
+    /// **What it does:**
+    ///
+    /// **Why is this bad?**
+    ///
+    /// **Known problems:** None.
+    ///
+    /// **Example:**
+    ///
+    /// ```rust
+    /// // example code where clippy issues a warning
+    /// ```
+    /// Use instead:
+    /// ```rust
+    /// // example code which does not raise clippy warning
+    /// ```
+    pub SORT_BY_KEY_REVERSE,
+    complexity,
+    "default lint description"
+}
+
+declare_lint_pass!(SortByKeyReverse => [SORT_BY_KEY_REVERSE]);
+
+impl LateLintPass<'_, '_> for SortByKeyReverse {}
diff --git a/src/lintlist/mod.rs b/src/lintlist/mod.rs
index 69578732898..1b82f34c863 100644
--- a/src/lintlist/mod.rs
+++ b/src/lintlist/mod.rs
@@ -1985,6 +1985,13 @@ pub static ref ALL_LINTS: Vec<Lint> = vec![
         module: "slow_vector_initialization",
     },
     Lint {
+        name: "sort_by_key_reverse",
+        group: "complexity",
+        desc: "default lint description",
+        deprecation: None,
+        module: "sort_by_key_reverse",
+    },
+    Lint {
         name: "string_add",
         group: "restriction",
         desc: "using `x + ..` where x is a `String` instead of `push_str()`",
diff --git a/tests/ui/sort_by_key_reverse.rs b/tests/ui/sort_by_key_reverse.rs
new file mode 100644
index 00000000000..2338dc6e594
--- /dev/null
+++ b/tests/ui/sort_by_key_reverse.rs
@@ -0,0 +1,5 @@
+#![warn(clippy::sort_by_key_reverse)]
+
+fn main() {
+    // test code goes here
+}