diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Format/TokenAnnotator.cpp | 19 | ||||
-rw-r--r-- | lib/Format/TokenAnnotator.h | 2 |
2 files changed, 12 insertions, 9 deletions
diff --git a/lib/Format/TokenAnnotator.cpp b/lib/Format/TokenAnnotator.cpp index ace6d25467..44593f358f 100644 --- a/lib/Format/TokenAnnotator.cpp +++ b/lib/Format/TokenAnnotator.cpp @@ -107,8 +107,7 @@ private: if (CurrentToken->is(tok::pipepipe) || CurrentToken->is(tok::ampamp) || CurrentToken->is(tok::question) || CurrentToken->is(tok::colon)) return false; - if (CurrentToken->is(tok::comma)) - ++Left->ParameterCount; + updateParameterCount(Left, CurrentToken); if (!consumeToken()) return false; } @@ -175,8 +174,7 @@ private: } if (CurrentToken->is(tok::r_square) || CurrentToken->is(tok::r_brace)) return false; - if (CurrentToken->is(tok::comma)) - ++Left->ParameterCount; + updateParameterCount(Left, CurrentToken); if (!consumeToken()) return false; } @@ -240,8 +238,7 @@ private: } if (CurrentToken->is(tok::r_paren) || CurrentToken->is(tok::r_brace)) return false; - if (CurrentToken->is(tok::comma)) - ++Left->ParameterCount; + updateParameterCount(Left, CurrentToken); if (!consumeToken()) return false; } @@ -263,13 +260,19 @@ private: } if (CurrentToken->is(tok::r_paren) || CurrentToken->is(tok::r_square)) return false; - if (CurrentToken->is(tok::comma)) - ++Left->ParameterCount; + updateParameterCount(Left, CurrentToken); if (!consumeToken()) return false; } return true; } + + void updateParameterCount(AnnotatedToken *Left, AnnotatedToken *Current) { + if (Current->is(tok::comma)) + ++Left->ParameterCount; + else if (Left->ParameterCount == 0 && Current->isNot(tok::comment)) + Left->ParameterCount = 1; + } bool parseConditional() { while (CurrentToken != NULL) { diff --git a/lib/Format/TokenAnnotator.h b/lib/Format/TokenAnnotator.h index 5ce84af96a..850b6ddede 100644 --- a/lib/Format/TokenAnnotator.h +++ b/lib/Format/TokenAnnotator.h @@ -73,7 +73,7 @@ public: : FormatTok(FormatTok), Type(TT_Unknown), SpacesRequiredBefore(0), CanBreakBefore(false), MustBreakBefore(false), ClosesTemplateDeclaration(false), MatchingParen(NULL), - ParameterCount(1), BindingStrength(0), SplitPenalty(0), + ParameterCount(0), BindingStrength(0), SplitPenalty(0), LongestObjCSelectorName(0), Parent(NULL), FakeLParens(0), FakeRParens(0) { } |