diff options
| author | Daniel Jasper <djasper@google.com> | 2014-12-03 13:20:49 +0000 |
|---|---|---|
| committer | Daniel Jasper <djasper@google.com> | 2014-12-03 13:20:49 +0000 |
| commit | 8379107afe9ebbaecae13123515af64cc4dab1e2 (patch) | |
| tree | 99a191730472fbdb131b2836b8c088d5bdb71241 /clang/lib/Format | |
| parent | afd188fee4e11f44c2901ca4c6499aa4be23c081 (diff) | |
| download | bcm5719-llvm-8379107afe9ebbaecae13123515af64cc4dab1e2.tar.gz bcm5719-llvm-8379107afe9ebbaecae13123515af64cc4dab1e2.zip | |
clang-format: Fix expression parser not closing stuff at end of stmt.
Uncovered by a Java test case:
Before:
public some.package.Type someFunction( // comment
int parameter) {}
After:
public some.package.Type someFunction( // comment
int parameter) {}
llvm-svn: 223228
Diffstat (limited to 'clang/lib/Format')
| -rw-r--r-- | clang/lib/Format/TokenAnnotator.cpp | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp index 6c04a014a11..3b04e49ba51 100644 --- a/clang/lib/Format/TokenAnnotator.cpp +++ b/clang/lib/Format/TokenAnnotator.cpp @@ -1147,16 +1147,7 @@ public: (CurrentPrecedence != -1 && CurrentPrecedence < Precedence) || (CurrentPrecedence == prec::Conditional && Precedence == prec::Assignment && Current->is(tok::colon))) { - if (LatestOperator) { - LatestOperator->LastOperator = true; - if (Precedence == PrecedenceArrowAndPeriod) { - // Call expressions don't have a binary operator precedence. - addFakeParenthesis(Start, prec::Unknown); - } else { - addFakeParenthesis(Start, prec::Level(Precedence)); - } - } - return; + break; } // Consume scopes: (), [], <> and {} @@ -1176,6 +1167,16 @@ public: next(/*SkipPastLeadingComments=*/Precedence > 0); } } + + if (LatestOperator && (Current || Precedence > 0)) { + LatestOperator->LastOperator = true; + if (Precedence == PrecedenceArrowAndPeriod) { + // Call expressions don't have a binary operator precedence. + addFakeParenthesis(Start, prec::Unknown); + } else { + addFakeParenthesis(Start, prec::Level(Precedence)); + } + } } private: |

