r175151 - Get less confused by trailing comma in Google style.
Daniel Jasper
djasper at google.com
Thu Feb 14 01:19:04 PST 2013
Author: djasper
Date: Thu Feb 14 03:19:04 2013
New Revision: 175151
URL: http://llvm.org/viewvc/llvm-project?rev=175151&view=rev
Log:
Get less confused by trailing comma in Google style.
The formatter can now format:
void aaaaaaaaaaaaaaaaaa(int level,
double *min_x,
double *max_x,
double *min_y,
double *max_y,
double *min_z,
double *max_z, ) {
}
Although this is invalid code, it frequently happens during development and
clang-format should be nicer :-).
Modified:
cfe/trunk/lib/Format/Format.cpp
cfe/trunk/unittests/Format/FormatTest.cpp
Modified: cfe/trunk/lib/Format/Format.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Format/Format.cpp?rev=175151&r1=175150&r2=175151&view=diff
==============================================================================
--- cfe/trunk/lib/Format/Format.cpp (original)
+++ cfe/trunk/lib/Format/Format.cpp Thu Feb 14 03:19:04 2013
@@ -781,7 +781,8 @@ private:
return true;
if (State.NextToken->Parent->is(tok::comma) &&
State.Stack.back().BreakBeforeParameter &&
- !isTrailingComment(*State.NextToken))
+ !isTrailingComment(*State.NextToken) &&
+ State.NextToken->isNot(tok::r_paren))
return true;
// FIXME: Comparing LongestObjCSelectorName to 0 is a hacky way of finding
// out whether it is the first parameter. Clean this up.
Modified: cfe/trunk/unittests/Format/FormatTest.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Format/FormatTest.cpp?rev=175151&r1=175150&r2=175151&view=diff
==============================================================================
--- cfe/trunk/unittests/Format/FormatTest.cpp (original)
+++ cfe/trunk/unittests/Format/FormatTest.cpp Thu Feb 14 03:19:04 2013
@@ -1817,6 +1817,17 @@ TEST_F(FormatTest, HandlesIncludeDirecti
// Error recovery tests.
//===----------------------------------------------------------------------===//
+TEST_F(FormatTest, IncompleteParameterLists) {
+ verifyGoogleFormat("void aaaaaaaaaaaaaaaaaa(int level,\n"
+ " double *min_x,\n"
+ " double *max_x,\n"
+ " double *min_y,\n"
+ " double *max_y,\n"
+ " double *min_z,\n"
+ " double *max_z, ) {\n"
+ "}");
+}
+
TEST_F(FormatTest, IncorrectCodeTrailingStuff) {
verifyFormat("void f() { return; }\n42");
verifyFormat("void f() {\n"
More information about the cfe-commits
mailing list