This was done when we were not able to parse lambdas to handle some
edge cases for block formatting different in return statements, but is
not necessary any more.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199982
91177308-0d34-0410-b5e6-
96231b3b80d8
case tok::kw_case:
parseCaseLabel();
return;
- case tok::kw_return:
- parseReturn();
- return;
case tok::kw_extern:
nextToken();
if (FormatTok->Tok.is(tok::string_literal)) {
return false;
}
-void UnwrappedLineParser::parseReturn() {
- nextToken();
-
- do {
- switch (FormatTok->Tok.getKind()) {
- case tok::l_brace:
- parseBracedList();
- if (FormatTok->Tok.isNot(tok::semi)) {
- // Assume missing ';'.
- addUnwrappedLine();
- return;
- }
- break;
- case tok::l_paren:
- parseParens();
- break;
- case tok::r_brace:
- // Assume missing ';'.
- addUnwrappedLine();
- return;
- case tok::semi:
- nextToken();
- addUnwrappedLine();
- return;
- case tok::l_square:
- tryToParseLambda();
- break;
- default:
- nextToken();
- break;
- }
- } while (!eof());
-}
-
void UnwrappedLineParser::parseParens() {
assert(FormatTok->Tok.is(tok::l_paren) && "'(' expected.");
nextToken();
void parseStructuralElement();
bool tryToParseBracedList();
bool parseBracedList(bool ContinueOnSemicolons = false);
- void parseReturn();
void parseParens();
void parseSquare();
void parseIfThenElse();
verifyFormat("void f() {\n"
" return g() {}\n"
" void h() {}");
- verifyFormat("if (foo)\n"
- " return { forgot_closing_brace();\n"
- "test();");
verifyFormat("int a[] = { void forgot_closing_brace() { f();\n"
"g();\n"
"}");
}
+TEST_F(FormatTest, DoNotPrematurelyEndUnwrappedLineForReturnStatements) {
+ verifyFormat(
+ "void f() {\n"
+ " return C{ param1, param2 }.SomeCall(param1, param2);\n"
+ "}\n");
+}
+
TEST_F(FormatTest, FormatsClosingBracesInEmptyNestedBlocks) {
verifyFormat("class X {\n"
" void f() {\n"