]> git.lizzy.rs Git - rust.git/commitdiff
Merge pull request #2502 from topecongiro/fix-reorder-module
authorNick Cameron <nrc@ncameron.org>
Sun, 4 Mar 2018 22:20:48 +0000 (11:20 +1300)
committerGitHub <noreply@github.com>
Sun, 4 Mar 2018 22:20:48 +0000 (11:20 +1300)
Fix reorder module

src/reorder.rs
tests/source/issue-2482/a.rs [new file with mode: 0644]
tests/source/issue-2482/b.rs [new file with mode: 0644]
tests/source/issue-2482/c.rs [new file with mode: 0644]
tests/target/issue-2482/a.rs [new file with mode: 0644]
tests/target/issue-2482/b.rs [new file with mode: 0644]
tests/target/issue-2482/c.rs [new file with mode: 0644]

index d4bc36fc83f3fbfb605d9649230c72956f2809c9..a43f56d595bb795ddae425bb297f1a7b1f4f961f 100644 (file)
@@ -23,7 +23,7 @@
 use codemap::LineRangeUtils;
 use comment::combine_strs_with_missing_comments;
 use imports::{path_to_imported_ident, rewrite_import};
-use items::{rewrite_extern_crate, rewrite_mod};
+use items::{is_mod_decl, rewrite_extern_crate, rewrite_mod};
 use lists::{itemize_list, write_list, ListFormatting};
 use rewrite::{Rewrite, RewriteContext};
 use shape::Shape;
@@ -234,7 +234,7 @@ pub fn from(item: &ast::Item) -> Self {
         match item.node {
             _ if contains_macro_use_attr(item) => ReorderableItemKind::Other,
             ast::ItemKind::ExternCrate(..) => ReorderableItemKind::ExternCrate,
-            ast::ItemKind::Mod(..) => ReorderableItemKind::Mod,
+            ast::ItemKind::Mod(..) if is_mod_decl(item) => ReorderableItemKind::Mod,
             ast::ItemKind::Use(..) => ReorderableItemKind::Use,
             _ => ReorderableItemKind::Other,
         }
diff --git a/tests/source/issue-2482/a.rs b/tests/source/issue-2482/a.rs
new file mode 100644 (file)
index 0000000..fbbcb52
--- /dev/null
@@ -0,0 +1,9 @@
+// rustfmt-reorder_modules: true
+
+// Do not reorder inline modules.
+
+mod c;
+mod a {
+    fn a() {}
+}
+mod b;
diff --git a/tests/source/issue-2482/b.rs b/tests/source/issue-2482/b.rs
new file mode 100644 (file)
index 0000000..40a8d94
--- /dev/null
@@ -0,0 +1 @@
+pub fn b() {}
diff --git a/tests/source/issue-2482/c.rs b/tests/source/issue-2482/c.rs
new file mode 100644 (file)
index 0000000..d937545
--- /dev/null
@@ -0,0 +1 @@
+pub fn c() {}
diff --git a/tests/target/issue-2482/a.rs b/tests/target/issue-2482/a.rs
new file mode 100644 (file)
index 0000000..fbbcb52
--- /dev/null
@@ -0,0 +1,9 @@
+// rustfmt-reorder_modules: true
+
+// Do not reorder inline modules.
+
+mod c;
+mod a {
+    fn a() {}
+}
+mod b;
diff --git a/tests/target/issue-2482/b.rs b/tests/target/issue-2482/b.rs
new file mode 100644 (file)
index 0000000..40a8d94
--- /dev/null
@@ -0,0 +1 @@
+pub fn b() {}
diff --git a/tests/target/issue-2482/c.rs b/tests/target/issue-2482/c.rs
new file mode 100644 (file)
index 0000000..d937545
--- /dev/null
@@ -0,0 +1 @@
+pub fn c() {}