forked from OSchip/llvm-project
clang-format: Fix bad corner case in formatting of function types.
Before: std::function< LoooooooooooongTemplatedType<SomeType>*( LooooooooooooooooooooongType type)> function; After: std::function< LoooooooooooongTemplatedType< SomeType>*( LooooooooooooooooongType type)> function; clang-format generally avoids having lines like "SomeType>*(" as they lead to parameter lists that don't belong together to be aligned. However, in case it is better than the alternative, which can even be violating the column limit. llvm-svn: 301182
This commit is contained in:
parent
9111cd950d
commit
cab4617132
|
@ -792,7 +792,8 @@ unsigned ContinuationIndenter::moveStateToNextToken(LineState &State,
|
|||
if (Previous && Previous->is(tok::question))
|
||||
State.Stack.back().QuestionColumn = State.Column;
|
||||
}
|
||||
if (!Current.opensScope() && !Current.closesScope())
|
||||
if (!Current.opensScope() && !Current.closesScope() &&
|
||||
!Current.is(TT_PointerOrReference))
|
||||
State.LowestLevelOnLine =
|
||||
std::min(State.LowestLevelOnLine, Current.NestingLevel);
|
||||
if (Current.isMemberAccess())
|
||||
|
|
|
@ -5221,6 +5221,12 @@ TEST_F(FormatTest, FormatsFunctionTypes) {
|
|||
verifyFormat("void f() { function(*some_pointer_var)[0] = 10; }");
|
||||
verifyFormat("int x = f(&h)();");
|
||||
verifyFormat("returnsFunction(¶m1, ¶m2)(param);");
|
||||
verifyFormat("std::function<\n"
|
||||
" LooooooooooongTemplatedType<\n"
|
||||
" SomeType>*(\n"
|
||||
" LooooooooooooooooongType type)>\n"
|
||||
" function;",
|
||||
getGoogleStyleWithColumns(40));
|
||||
}
|
||||
|
||||
TEST_F(FormatTest, FormatsPointersToArrayTypes) {
|
||||
|
|
Loading…
Reference in New Issue