about summary refs log tree commit diff
diff options
context:
space:
mode:
authorNick Cameron <nrc@ncameron.org>2018-05-09 13:18:27 +1200
committerGitHub <noreply@github.com>2018-05-09 13:18:27 +1200
commit5dba81bbbf0f352335b240fbf1cd64e5f3ca447f (patch)
tree9d70f8501a1aa7560c7ec0fc7dc301e84cf6a670
parent659d0c97412f2b010003df445f4c9cd84aa4bc75 (diff)
parent4c9ef93df7e7984bbe1077aa3c24ae538fa0a42c (diff)
Merge pull request #2687 from Marwes/issue_2641
fix: Don't insert an extra brace in macros with native newlines
-rw-r--r--src/lib.rs2
-rw-r--r--tests/config/issue-2641.toml1
-rw-r--r--tests/source/issue-2641.rs3
-rw-r--r--tests/target/issue-2641.rs3
4 files changed, 8 insertions, 1 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 73c3fdd48c2..48c9295c4f9 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -646,7 +646,7 @@ pub fn format_code_block(code_snippet: &str, config: &Config) -> Option<String>
     // then unindent the whole code block.
     let formatted = format_snippet(&snippet, config)?;
     // 2 = "}\n"
-    let block_len = formatted.len().checked_sub(2).unwrap_or(0);
+    let block_len = formatted.rfind('}').unwrap_or(formatted.len());
     let mut is_indented = true;
     for (kind, ref line) in LineClasses::new(&formatted[FN_MAIN_PREFIX.len()..block_len]) {
         if !is_first {
diff --git a/tests/config/issue-2641.toml b/tests/config/issue-2641.toml
new file mode 100644
index 00000000000..11c9dca8a06
--- /dev/null
+++ b/tests/config/issue-2641.toml
@@ -0,0 +1 @@
+newline_style = "Windows"
diff --git a/tests/source/issue-2641.rs b/tests/source/issue-2641.rs
new file mode 100644
index 00000000000..c7ad60674fd
--- /dev/null
+++ b/tests/source/issue-2641.rs
@@ -0,0 +1,3 @@
+macro_rules! a {
+    () => {{}}
+}
diff --git a/tests/target/issue-2641.rs b/tests/target/issue-2641.rs
new file mode 100644
index 00000000000..fbf5326c330
--- /dev/null
+++ b/tests/target/issue-2641.rs
@@ -0,0 +1,3 @@
+macro_rules! a {
+    () => {{}};
+}