aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Format/Format.cpp4
-rw-r--r--unittests/Format/FormatTest.cpp8
2 files changed, 9 insertions, 3 deletions
diff --git a/lib/Format/Format.cpp b/lib/Format/Format.cpp
index 53dc97abec..1854d70d90 100644
--- a/lib/Format/Format.cpp
+++ b/lib/Format/Format.cpp
@@ -333,7 +333,9 @@ private:
if (!DryRun)
replaceWhitespace(Current, 0, Spaces);
- if (RootToken.isNot(tok::kw_for) &&
+ // FIXME: Do we need to do this for assignments nested in other
+ // expressions?
+ if (RootToken.isNot(tok::kw_for) && ParenLevel == 0 &&
(getPrecedence(Previous) == prec::Assignment ||
Previous.is(tok::kw_return)))
State.Indent[ParenLevel] = State.Column + Spaces;
diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp
index 495fc7fee1..d4e5a51bc3 100644
--- a/unittests/Format/FormatTest.cpp
+++ b/unittests/Format/FormatTest.cpp
@@ -816,8 +816,9 @@ TEST_F(FormatTest, UnderstandsEquals) {
"}");
verifyFormat(
+ // FIXME: Does an expression like this ever make sense? If yes, fix.
"if (int aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa = 100000000 +\n"
- " 10000000) {\n"
+ " 10000000) {\n"
"}");
}
@@ -872,7 +873,10 @@ TEST_F(FormatTest, WrapsTemplateDeclarations) {
verifyFormat("template <typename T>\n"
"void aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(\n"
" int aaaaaaaaaaaaaaaaa);");
-
+ verifyFormat(
+ "template <typename T1, typename T2 = char, typename T3 = char,\n"
+ " typename T4 = char>\n"
+ "void f();");
}
TEST_F(FormatTest, UnderstandsTemplateParameters) {