about summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlyssa <git@ulyssa.dev>2021-09-15 08:58:23 -0700
committerCaleb Cartwright <calebcartwright@users.noreply.github.com>2021-09-20 20:05:52 -0500
commitdd445aba080cd337300644c77137fedcad482623 (patch)
tree08baa4c48904f177716c6a7be9b898c5dc5d3c40
parent7aa69e5bc87f32fdcbf037abce2d575335480b9a (diff)
downloadrust-dd445aba080cd337300644c77137fedcad482623.tar.gz
rust-dd445aba080cd337300644c77137fedcad482623.zip
Trailing comma on match block goes missing when guard is on its own line
-rw-r--r--src/matches.rs1
-rw-r--r--tests/source/match-block-trailing-comma.rs8
-rw-r--r--tests/target/match-block-trailing-comma.rs10
3 files changed, 19 insertions, 0 deletions
diff --git a/src/matches.rs b/src/matches.rs
index 140ec226c02..5a6ed0ec06e 100644
--- a/src/matches.rs
+++ b/src/matches.rs
@@ -409,6 +409,7 @@ fn rewrite_match_body(
             }
             result.push_str(&nested_indent_str);
             result.push_str(&body_str);
+            result.push_str(&comma);
             return Some(result);
         }
 
diff --git a/tests/source/match-block-trailing-comma.rs b/tests/source/match-block-trailing-comma.rs
index e9daac13bf9..baa05b79c16 100644
--- a/tests/source/match-block-trailing-comma.rs
+++ b/tests/source/match-block-trailing-comma.rs
@@ -8,6 +8,14 @@ fn foo() {
             "line1";
             "line2"
         }
+        ThisIsA::Guard if true => {
+            "line1";
+            "line2"
+        }
+        ThisIsA::ReallyLongPattern(ThatWillForce::TheGuard, ToWrapOnto::TheFollowingLine) if true => {
+            "line1";
+            "line2"
+        }
         b => (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
               bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb),
     }
diff --git a/tests/target/match-block-trailing-comma.rs b/tests/target/match-block-trailing-comma.rs
index 44d1f289f8e..5ab433a2e6c 100644
--- a/tests/target/match-block-trailing-comma.rs
+++ b/tests/target/match-block-trailing-comma.rs
@@ -8,6 +8,16 @@ fn foo() {
             "line1";
             "line2"
         },
+        ThisIsA::Guard if true => {
+            "line1";
+            "line2"
+        },
+        ThisIsA::ReallyLongPattern(ThatWillForce::TheGuard, ToWrapOnto::TheFollowingLine)
+            if true =>
+        {
+            "line1";
+            "line2"
+        },
         b => (
             aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
             bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,