forked from OSchip/llvm-project
clang-format: Fix formatting bug with comment in weird place.
Before: template <typename T> // T should be one of {A, B}. void f() {} After: template <typename T> // T should be one of {A, B}. void f() {} llvm-svn: 191492
This commit is contained in:
parent
74e38de492
commit
69bd8fb79a
|
@ -192,6 +192,8 @@ unsigned ContinuationIndenter::addTokenToState(LineState &State, bool Newline,
|
|||
unsigned ExtraSpaces) {
|
||||
const FormatToken &Current = *State.NextToken;
|
||||
const FormatToken &Previous = *State.NextToken->Previous;
|
||||
const FormatToken *PreviousNonComment =
|
||||
State.NextToken->getPreviousNonComment();
|
||||
|
||||
// Extra penalty that needs to be added because of the way certain line
|
||||
// breaks are chosen.
|
||||
|
@ -253,7 +255,8 @@ unsigned ContinuationIndenter::addTokenToState(LineState &State, bool Newline,
|
|||
State.Column = State.Stack.back().QuestionColumn;
|
||||
} else if (Previous.is(tok::comma) && State.Stack.back().VariablePos != 0) {
|
||||
State.Column = State.Stack.back().VariablePos;
|
||||
} else if (Previous.ClosesTemplateDeclaration ||
|
||||
} else if ((PreviousNonComment &&
|
||||
PreviousNonComment->ClosesTemplateDeclaration) ||
|
||||
((Current.Type == TT_StartOfName ||
|
||||
Current.is(tok::kw_operator)) &&
|
||||
State.ParenLevel == 0 &&
|
||||
|
|
|
@ -3500,6 +3500,9 @@ TEST_F(FormatTest, WrapsAtFunctionCallsIfNecessary) {
|
|||
TEST_F(FormatTest, WrapsTemplateDeclarations) {
|
||||
verifyFormat("template <typename T>\n"
|
||||
"virtual void loooooooooooongFunction(int Param1, int Param2);");
|
||||
verifyFormat("template <typename T>\n"
|
||||
"// T should be one of {A, B}.\n"
|
||||
"virtual void loooooooooooongFunction(int Param1, int Param2);");
|
||||
verifyFormat(
|
||||
"template <typename T>\n"
|
||||
"using comment_to_xml_conversion = comment_to_xml_conversion<T, int>;");
|
||||
|
|
Loading…
Reference in New Issue