summaryrefslogtreecommitdiffstats
path: root/clang/unittests/Format/FormatTestJS.cpp
diff options
context:
space:
mode:
authorKrasimir Georgiev <krasimir@google.com>2018-08-07 10:23:24 +0000
committerKrasimir Georgiev <krasimir@google.com>2018-08-07 10:23:24 +0000
commit123ca80bdba39952c60081dda4ec7537a76c2d92 (patch)
tree82981a8b5e55acb69289bb65e3973b8f967e053a /clang/unittests/Format/FormatTestJS.cpp
parent2f0881160c2135e1e3230c50645d9728ed51844c (diff)
downloadbcm5719-llvm-123ca80bdba39952c60081dda4ec7537a76c2d92.tar.gz
bcm5719-llvm-123ca80bdba39952c60081dda4ec7537a76c2d92.zip
[clang-format] comment reflow: add last line's penalty when ending broken
Summary: This fixes a bug in clang-format where the last line's penalty is not taken into account when its ending is broken. Usually the last line's penalty is handled by addNextStateToQueue, but in cases where the trailing `*/` is put on a newline, the contents of the last line have to be considered for penalizing. Reviewers: mprobst Reviewed By: mprobst Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D50378 llvm-svn: 339123
Diffstat (limited to 'clang/unittests/Format/FormatTestJS.cpp')
-rw-r--r--clang/unittests/Format/FormatTestJS.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/clang/unittests/Format/FormatTestJS.cpp b/clang/unittests/Format/FormatTestJS.cpp
index 58a900352a2..83467837389 100644
--- a/clang/unittests/Format/FormatTestJS.cpp
+++ b/clang/unittests/Format/FormatTestJS.cpp
@@ -2284,5 +2284,25 @@ TEST_F(FormatTestJS, BackslashesInComments) {
"formatMe( );\n");
}
+TEST_F(FormatTestJS, AddsLastLinePenaltyIfEndingIsBroken) {
+ EXPECT_EQ(
+ "a = function() {\n"
+ " b = function() {\n"
+ " this.aaaaaaaaaaaaaaaaaaa[aaaaaaaaaaa] = aaaa.aaaaaa ?\n"
+ " aaaa.aaaaaa : /** @type "
+ "{aaaa.aaaa.aaaaaaaaa.aaaaaaaaaaaaaaaaaaa} */\n"
+ " (aaaa.aaaa.aaaaaaaaa.aaaaaaaaaaaaa.aaaaaaaaaaaaaaaaa);\n"
+ " };\n"
+ "};",
+ format("a = function() {\n"
+ " b = function() {\n"
+ " this.aaaaaaaaaaaaaaaaaaa[aaaaaaaaaaa] = aaaa.aaaaaa ? "
+ "aaaa.aaaaaa : /** @type "
+ "{aaaa.aaaa.aaaaaaaaa.aaaaaaaaaaaaaaaaaaa} */\n"
+ " (aaaa.aaaa.aaaaaaaaa.aaaaaaaaaaaaa.aaaaaaaaaaaaaaaaa);\n"
+ " };\n"
+ "};"));
+}
+
} // end namespace tooling
} // end namespace clang
OpenPOWER on IntegriCloud