Fix formatting of new arrays of pointers.

Before:
A = new SomeType * [Length];
A = new SomeType *[Length]();

After:
A = new SomeType *[Length];
A = new SomeType *[Length]();

Small formatting cleanups with clang-format.

llvm-svn: 176936
This commit is contained in:
Daniel Jasper 2013-03-13 07:49:51 +00:00
parent 91f833a413
commit 97b894849e
3 changed files with 22 additions and 15 deletions

View File

@ -288,8 +288,8 @@ public:
LineState State; LineState State;
State.Column = FirstIndent; State.Column = FirstIndent;
State.NextToken = &RootToken; State.NextToken = &RootToken;
State.Stack.push_back(ParenState(FirstIndent + 4, FirstIndent, State.Stack.push_back(
!Style.BinPackParameters, ParenState(FirstIndent + 4, FirstIndent, !Style.BinPackParameters,
/*HasMultiParameterLine=*/ false)); /*HasMultiParameterLine=*/ false));
State.VariablePos = 0; State.VariablePos = 0;
State.LineContainsContinuedForLoopSection = false; State.LineContainsContinuedForLoopSection = false;
@ -739,8 +739,8 @@ private:
unsigned StartColumn = State.Column - Current.FormatTok.TokenLength; unsigned StartColumn = State.Column - Current.FormatTok.TokenLength;
unsigned OffsetFromStart = 0; unsigned OffsetFromStart = 0;
while (StartColumn + TailLength > getColumnLimit()) { while (StartColumn + TailLength > getColumnLimit()) {
StringRef Text = StringRef(Current.FormatTok.Tok.getLiteralData() + StringRef Text = StringRef(
TailOffset, TailLength); Current.FormatTok.Tok.getLiteralData() + TailOffset, TailLength);
if (StartColumn + OffsetFromStart + 1 > getColumnLimit()) if (StartColumn + OffsetFromStart + 1 > getColumnLimit())
break; break;
StringRef::size_type SplitPoint = getSplitPoint( StringRef::size_type SplitPoint = getSplitPoint(
@ -1424,7 +1424,7 @@ private:
} }
} }
bool touchesRanges(const CharSourceRange& Range) { bool touchesRanges(const CharSourceRange &Range) {
for (unsigned i = 0, e = Ranges.size(); i != e; ++i) { for (unsigned i = 0, e = Ranges.size(); i != e; ++i) {
if (!SourceMgr.isBeforeInTranslationUnit(Range.getEnd(), if (!SourceMgr.isBeforeInTranslationUnit(Range.getEnd(),
Ranges[i].getBegin()) && Ranges[i].getBegin()) &&

View File

@ -183,21 +183,22 @@ private:
bool parseSquare() { bool parseSquare() {
if (!CurrentToken) if (!CurrentToken)
return false; return false;
ScopedContextCreator ContextCreator(*this, 10);
// A '[' could be an index subscript (after an indentifier or after // A '[' could be an index subscript (after an indentifier or after
// ')' or ']'), it could be the start of an Objective-C method // ')' or ']'), it could be the start of an Objective-C method
// expression, or it could the the start of an Objective-C array literal. // expression, or it could the the start of an Objective-C array literal.
AnnotatedToken *Left = CurrentToken->Parent; AnnotatedToken *Left = CurrentToken->Parent;
AnnotatedToken *Parent = getPreviousToken(*Left); AnnotatedToken *Parent = getPreviousToken(*Left);
Contexts.back().IsExpression = true;
bool StartsObjCMethodExpr = bool StartsObjCMethodExpr =
!Parent || Parent->is(tok::colon) || Parent->is(tok::l_square) || Contexts.back().CanBeExpression &&
(!Parent || Parent->is(tok::colon) || Parent->is(tok::l_square) ||
Parent->is(tok::l_paren) || Parent->is(tok::kw_return) || Parent->is(tok::l_paren) || Parent->is(tok::kw_return) ||
Parent->is(tok::kw_throw) || isUnaryOperator(*Parent) || Parent->is(tok::kw_throw) || isUnaryOperator(*Parent) ||
Parent->Type == TT_ObjCForIn || Parent->Type == TT_CastRParen || Parent->Type == TT_ObjCForIn || Parent->Type == TT_CastRParen ||
getBinOpPrecedence(Parent->FormatTok.Tok.getKind(), true, true) > getBinOpPrecedence(Parent->FormatTok.Tok.getKind(), true, true) >
prec::Unknown; prec::Unknown);
ScopedContextCreator ContextCreator(*this, 10);
Contexts.back().IsExpression = true;
bool StartsObjCArrayLiteral = Parent && Parent->is(tok::at); bool StartsObjCArrayLiteral = Parent && Parent->is(tok::at);
if (StartsObjCMethodExpr) { if (StartsObjCMethodExpr) {
@ -525,7 +526,8 @@ private:
Context(unsigned BindingStrength, bool IsExpression) Context(unsigned BindingStrength, bool IsExpression)
: BindingStrength(BindingStrength), LongestObjCSelectorName(0), : BindingStrength(BindingStrength), LongestObjCSelectorName(0),
ColonIsForRangeExpr(false), ColonIsObjCMethodExpr(false), ColonIsForRangeExpr(false), ColonIsObjCMethodExpr(false),
FirstObjCSelectorName(NULL), IsExpression(IsExpression) {} FirstObjCSelectorName(NULL), IsExpression(IsExpression),
CanBeExpression(true) {}
unsigned BindingStrength; unsigned BindingStrength;
unsigned LongestObjCSelectorName; unsigned LongestObjCSelectorName;
@ -533,6 +535,7 @@ private:
bool ColonIsObjCMethodExpr; bool ColonIsObjCMethodExpr;
AnnotatedToken *FirstObjCSelectorName; AnnotatedToken *FirstObjCSelectorName;
bool IsExpression; bool IsExpression;
bool CanBeExpression;
}; };
/// \brief Puts a new \c Context onto the stack \c Contexts for the lifetime /// \brief Puts a new \c Context onto the stack \c Contexts for the lifetime
@ -574,6 +577,8 @@ private:
} else if (Current.Parent && } else if (Current.Parent &&
Current.Parent->Type == TT_CtorInitializerColon) { Current.Parent->Type == TT_CtorInitializerColon) {
Contexts.back().IsExpression = true; Contexts.back().IsExpression = true;
} else if (Current.is(tok::kw_new)) {
Contexts.back().CanBeExpression = false;
} }
if (Current.Type == TT_Unknown) { if (Current.Type == TT_Unknown) {

View File

@ -1949,8 +1949,10 @@ TEST_F(FormatTest, UnderstandsUsesOfStarAndAmp) {
verifyFormat("for (int i = a * a; i < 10; ++i) {\n}"); verifyFormat("for (int i = a * a; i < 10; ++i) {\n}");
verifyFormat("for (int i = 0; i < a * a; ++i) {\n}"); verifyFormat("for (int i = 0; i < a * a; ++i) {\n}");
verifyIndependentOfContext("A = new SomeType *[Length];");
verifyIndependentOfContext("A = new SomeType *[Length]();"); verifyIndependentOfContext("A = new SomeType *[Length]();");
verifyGoogleFormat("A = new SomeType* [Length]();"); verifyGoogleFormat("A = new SomeType* [Length]();");
verifyGoogleFormat("A = new SomeType* [Length];");
} }
TEST_F(FormatTest, AdaptivelyFormatsPointersAndReferences) { TEST_F(FormatTest, AdaptivelyFormatsPointersAndReferences) {