Fix function declaration behavior.
This only affects styles that prevent bin packing. There, a break after
a template declaration also forced a line break after the function name.
Before:
template <class SomeType, class SomeOtherType>
SomeType
SomeFunction(SomeType Type, SomeOtherType OtherType) {}
After:
template <class SomeType, class SomeOtherType>
SomeType SomeFunction(SomeType Type, SomeOtherType OtherType) {}
This fixes llvm.org/PR16072.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182457 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Format/Format.cpp b/lib/Format/Format.cpp
index dd0ece5..1f36f9a 100644
--- a/lib/Format/Format.cpp
+++ b/lib/Format/Format.cpp
@@ -251,7 +251,7 @@
State.Column = FirstIndent;
State.NextToken = &RootToken;
State.Stack.push_back(
- ParenState(FirstIndent, FirstIndent, !Style.BinPackParameters,
+ ParenState(FirstIndent, FirstIndent, /*AvoidBinPacking=*/ false,
/*NoLineBreak=*/ false));
State.LineContainsContinuedForLoopSection = false;
State.ParenLevel = 0;
diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp
index 4ffb0d6..8c178d6 100644
--- a/unittests/Format/FormatTest.cpp
+++ b/unittests/Format/FormatTest.cpp
@@ -2077,6 +2077,10 @@
" .aaaaaaa();\n"
"}",
NoBinPacking);
+ verifyFormat(
+ "template <class SomeType, class SomeOtherType>\n"
+ "SomeType SomeFunction(SomeType Type, SomeOtherType OtherType) {}",
+ NoBinPacking);
}
TEST_F(FormatTest, FormatsBuilderPattern) {