]> granicus.if.org Git - clang/commitdiff
clang-format: [JS] Fix spacing in dict literals.
authorDaniel Jasper <djasper@google.com>
Fri, 9 May 2014 10:26:08 +0000 (10:26 +0000)
committerDaniel Jasper <djasper@google.com>
Fri, 9 May 2014 10:26:08 +0000 (10:26 +0000)
Before:
  someVariable = {'a':[{}]};

After:
  someVariable = {'a': [{}]};

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@208403 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Format/TokenAnnotator.cpp
unittests/Format/FormatTestJS.cpp

index a3400cc6c5ca6f87bc0352f27272ba98a6eb3ee5..2d864f25ae7ad83c4ac297344d2b31a0a65d8fe7 100644 (file)
@@ -225,8 +225,10 @@ private:
     FormatToken *Parent = Left->getPreviousNonComment();
     bool StartsObjCMethodExpr =
         Contexts.back().CanBeExpression && Left->Type != TT_LambdaLSquare &&
-        (!Parent || Parent->isOneOf(tok::colon, tok::l_square, tok::l_paren,
-                                    tok::kw_return, tok::kw_throw) ||
+        CurrentToken->isNot(tok::l_brace) &&
+        (!Parent ||
+         Parent->isOneOf(tok::colon, tok::l_square, tok::l_paren,
+                         tok::kw_return, tok::kw_throw) ||
          Parent->isUnaryOperator() || Parent->Type == TT_ObjCForIn ||
          Parent->Type == TT_CastRParen ||
          getBinOpPrecedence(Parent->Tok.getKind(), true, true) > prec::Unknown);
@@ -1452,7 +1454,8 @@ bool TokenAnnotator::spaceRequiredBetween(const AnnotatedLine &Line,
     return Right.MatchingParen && Style.SpacesInContainerLiterals &&
            Right.MatchingParen->Type == TT_ArrayInitializerLSquare;
   if (Right.is(tok::l_square) && Right.Type != TT_ObjCMethodExpr &&
-      Right.Type != TT_LambdaLSquare && Left.isNot(tok::numeric_constant))
+      Right.Type != TT_LambdaLSquare && Left.isNot(tok::numeric_constant) &&
+      Left.Type != TT_DictLiteral)
     return false;
   if (Left.is(tok::colon))
     return Left.Type != TT_ObjCMethodExpr;
index 73e050d6f4f08c9012c8cc6c6b8055cca93b6807..cc67416493013f93ad702f9d531d8329de0b368e 100644 (file)
@@ -85,6 +85,7 @@ TEST_F(FormatTestJS, SpacesInContainerLiterals) {
 
   verifyFormat("var obj = {a: 1, b: 2, c: 3};",
                getChromiumStyle(FormatStyle::LK_JavaScript));
+  verifyFormat("someVariable = {'a': [{}]};");
 }
 
 TEST_F(FormatTestJS, SingleQuoteStrings) {