clang-format: Fix regression introduced by r189337.

Before:
  if (aaaaaaaaaaaaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaaaaaaaa(
          aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) == 5) ...

After:
  if (aaaaaaaaaaaaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaaaaaaaa(
          aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)
      == 5) ...

Also precompute startsBinaryExpression() to improve performance.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190124 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Format/ContinuationIndenter.cpp b/lib/Format/ContinuationIndenter.cpp
index d48cb23..12cfd48 100644
--- a/lib/Format/ContinuationIndenter.cpp
+++ b/lib/Format/ContinuationIndenter.cpp
@@ -38,15 +38,6 @@
   return End->TotalLength - Tok.TotalLength + 1;
 }
 
-// Returns \c true if \c Tok starts a binary expression.
-static bool startsBinaryExpression(const FormatToken &Tok) {
-  for (unsigned i = 0, e = Tok.FakeLParens.size(); i != e; ++i) {
-    if (Tok.FakeLParens[i] > prec::Unknown)
-      return true;
-  }
-  return false;
-}
-
 // Returns \c true if \c Tok is the "." or "->" of a call and starts the next
 // segment of a builder type call.
 static bool startsSegmentOfBuilderTypeCall(const FormatToken &Tok) {
@@ -156,7 +147,7 @@
                         Previous.Previous &&
                         Previous.Previous->Type != TT_BinaryOperator; // For >>.
     bool LHSIsBinaryExpr =
-        Previous.Previous && Previous.Previous->FakeRParens > 0;
+        Previous.Previous && Previous.Previous->EndsBinaryExpression;
     if (Previous.Type == TT_BinaryOperator &&
         (!IsComparison || LHSIsBinaryExpr) &&
         Current.Type != TT_BinaryOperator && // For >>.
@@ -394,7 +385,7 @@
               Previous.Type == TT_UnaryOperator ||
               Previous.Type == TT_CtorInitializerColon) &&
              (Previous.getPrecedence() != prec::Assignment ||
-              startsBinaryExpression(Current)))
+              Current.StartsBinaryExpression))
       // Always indent relative to the RHS of the expression unless this is a
       // simple assignment without binary expression on the RHS. Also indent
       // relative to unary operators and the colons of constructor initializers.
@@ -455,7 +446,7 @@
   }
 
   // If return returns a binary expression, align after it.
-  if (Current.is(tok::kw_return) && startsBinaryExpression(Current))
+  if (Current.is(tok::kw_return) && Current.StartsBinaryExpression)
     State.Stack.back().LastSpace = State.Column + 7;
 
   // In ObjC method declaration we align on the ":" of parameters, but we need