about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlexey Semenyuk <alexsemenyuk88@gmail.com>2025-04-11 03:14:07 +0500
committerAlexey Semenyuk <alexsemenyuk88@gmail.com>2025-04-11 13:42:21 +0500
commite1bd4e4b6c29d584e702154e1f34d3361c5b7c81 (patch)
treefda081886784ac908f01044a17b8bf88b75aa96a
parente0e2a93cf2e36be513c36176d26f14ddb9f24002 (diff)
downloadrust-e1bd4e4b6c29d584e702154e1f34d3361c5b7c81.tar.gz
rust-e1bd4e4b6c29d584e702154e1f34d3361c5b7c81.zip
arbitrary_source_item_ordering should ignore test modules
-rw-r--r--clippy_lints/src/arbitrary_source_item_ordering.rs5
-rw-r--r--tests/ui-toml/arbitrary_source_item_ordering/ordering_good.rs1
-rw-r--r--tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.default.stderr6
-rw-r--r--tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.ord_in_2.stderr12
-rw-r--r--tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.ord_in_3.stderr6
-rw-r--r--tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.ord_within.stderr30
-rw-r--r--tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs8
7 files changed, 47 insertions, 21 deletions
diff --git a/clippy_lints/src/arbitrary_source_item_ordering.rs b/clippy_lints/src/arbitrary_source_item_ordering.rs
index 9113c20c795..e4f6748b7f3 100644
--- a/clippy_lints/src/arbitrary_source_item_ordering.rs
+++ b/clippy_lints/src/arbitrary_source_item_ordering.rs
@@ -5,6 +5,7 @@ use clippy_config::types::{
     SourceItemOrderingWithinModuleItemGroupings,
 };
 use clippy_utils::diagnostics::span_lint_and_note;
+use clippy_utils::is_cfg_test;
 use rustc_hir::{
     AssocItemKind, FieldDef, HirId, ImplItemRef, IsAuto, Item, ItemKind, Mod, QPath, TraitItemRef, TyKind, Variant,
     VariantData,
@@ -361,6 +362,10 @@ impl<'tcx> LateLintPass<'tcx> for ArbitrarySourceItemOrdering {
         // as no sorting by source map/line of code has to be applied.
         //
         for item in items {
+            if is_cfg_test(cx.tcx, item.hir_id()) {
+                continue;
+            }
+
             if item.span.in_external_macro(cx.sess().source_map()) {
                 continue;
             }
diff --git a/tests/ui-toml/arbitrary_source_item_ordering/ordering_good.rs b/tests/ui-toml/arbitrary_source_item_ordering/ordering_good.rs
index b43791521cb..694ef45c75b 100644
--- a/tests/ui-toml/arbitrary_source_item_ordering/ordering_good.rs
+++ b/tests/ui-toml/arbitrary_source_item_ordering/ordering_good.rs
@@ -16,6 +16,7 @@
 //@[bad_conf_4] error-in-other-file:
 //@[bad_conf_5] error-in-other-file:
 //@[bad_conf_6] error-in-other-file:
+//@compile-flags: --test
 
 #![allow(dead_code)]
 #![warn(clippy::arbitrary_source_item_ordering)]
diff --git a/tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.default.stderr b/tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.default.stderr
index 7fc216b30d5..fcd7864c667 100644
--- a/tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.default.stderr
+++ b/tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.default.stderr
@@ -1,16 +1,16 @@
 error: incorrect ordering of items (must be alphabetically ordered)
-  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:35:5
+  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:36:5
    |
 LL |     a: bool,
    |     ^
    |
 note: should be placed before `b`
-  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:34:5
+  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:35:5
    |
 LL |     b: bool,
    |     ^
 note: the lint level is defined here
-  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:32:8
+  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:33:8
    |
 LL | #[deny(clippy::arbitrary_source_item_ordering)]
    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.ord_in_2.stderr b/tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.ord_in_2.stderr
index 1f75f5099ec..81c35ff778b 100644
--- a/tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.ord_in_2.stderr
+++ b/tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.ord_in_2.stderr
@@ -1,33 +1,33 @@
 error: incorrect ordering of items (must be alphabetically ordered)
-  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:24:8
+  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:25:8
    |
 LL | struct OrderedChecked {
    |        ^^^^^^^^^^^^^^
    |
 note: should be placed before `Unordered`
-  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:18:8
+  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:19:8
    |
 LL | struct Unordered {
    |        ^^^^^^^^^
 note: the lint level is defined here
-  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:9:9
+  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:10:9
    |
 LL | #![deny(clippy::arbitrary_source_item_ordering)]
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 error: incorrect ordering of items (must be alphabetically ordered)
-  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:35:5
+  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:36:5
    |
 LL |     a: bool,
    |     ^
    |
 note: should be placed before `b`
-  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:34:5
+  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:35:5
    |
 LL |     b: bool,
    |     ^
 note: the lint level is defined here
-  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:32:8
+  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:33:8
    |
 LL | #[deny(clippy::arbitrary_source_item_ordering)]
    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.ord_in_3.stderr b/tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.ord_in_3.stderr
index 8027f55add6..09ede57f295 100644
--- a/tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.ord_in_3.stderr
+++ b/tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.ord_in_3.stderr
@@ -1,16 +1,16 @@
 error: incorrect ordering of items (must be alphabetically ordered)
-  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:24:8
+  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:25:8
    |
 LL | struct OrderedChecked {
    |        ^^^^^^^^^^^^^^
    |
 note: should be placed before `Unordered`
-  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:18:8
+  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:19:8
    |
 LL | struct Unordered {
    |        ^^^^^^^^^
 note: the lint level is defined here
-  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:9:9
+  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:10:9
    |
 LL | #![deny(clippy::arbitrary_source_item_ordering)]
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.ord_within.stderr b/tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.ord_within.stderr
index 333a601f6a9..7c515f050c1 100644
--- a/tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.ord_within.stderr
+++ b/tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.ord_within.stderr
@@ -1,48 +1,60 @@
 error: incorrect ordering of items (must be alphabetically ordered)
-  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:24:8
+  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:25:8
    |
 LL | struct OrderedChecked {
    |        ^^^^^^^^^^^^^^
    |
 note: should be placed before `Unordered`
-  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:18:8
+  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:19:8
    |
 LL | struct Unordered {
    |        ^^^^^^^^^
 note: the lint level is defined here
-  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:9:9
+  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:10:9
    |
 LL | #![deny(clippy::arbitrary_source_item_ordering)]
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 error: incorrect ordering of items (must be alphabetically ordered)
-  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:45:4
+  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:46:4
    |
 LL | fn before_main() {}
    |    ^^^^^^^^^^^
    |
 note: should be placed before `main`
-  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:41:4
+  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:42:4
    |
 LL | fn main() {
    |    ^^^^
 
 error: incorrect ordering of items (must be alphabetically ordered)
-  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:35:5
+  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:36:5
    |
 LL |     a: bool,
    |     ^
    |
 note: should be placed before `b`
-  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:34:5
+  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:35:5
    |
 LL |     b: bool,
    |     ^
 note: the lint level is defined here
-  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:32:8
+  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:33:8
    |
 LL | #[deny(clippy::arbitrary_source_item_ordering)]
    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-error: aborting due to 3 previous errors
+error: incorrect ordering of items (must be alphabetically ordered)
+  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:52:11
+   |
+LL |     const A: i8 = 0;
+   |           ^
+   |
+note: should be placed before `B`
+  --> tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs:51:11
+   |
+LL |     const B: i8 = 1;
+   |           ^
+
+error: aborting due to 4 previous errors
 
diff --git a/tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs b/tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs
index e32b921dd96..cb6d0170b8f 100644
--- a/tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs
+++ b/tests/ui-toml/arbitrary_source_item_ordering/selective_ordering.rs
@@ -4,6 +4,7 @@
 //@[ord_within] rustc-env:CLIPPY_CONF_DIR=tests/ui-toml/arbitrary_source_item_ordering/ord_within
 //@[ord_in_2] rustc-env:CLIPPY_CONF_DIR=tests/ui-toml/arbitrary_source_item_ordering/ord_in_2
 //@[ord_in_3] rustc-env:CLIPPY_CONF_DIR=tests/ui-toml/arbitrary_source_item_ordering/ord_in_3
+//@compile-flags: --test
 
 #![allow(dead_code)]
 #![deny(clippy::arbitrary_source_item_ordering)]
@@ -44,3 +45,10 @@ fn main() {
 
 fn before_main() {}
 //~[ord_within]^ arbitrary_source_item_ordering
+
+#[cfg(test)]
+mod test {
+    const B: i8 = 1;
+    const A: i8 = 0;
+    //~[ord_within]^ arbitrary_source_item_ordering
+}