diff options
Diffstat (limited to 'lib/Format/TokenAnnotator.cpp')
-rw-r--r-- | lib/Format/TokenAnnotator.cpp | 19 |
1 files changed, 11 insertions, 8 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) { |