]> granicus.if.org Git - clang/commitdiff
More tests and a fix for braced init lists.
authorDaniel Jasper <djasper@google.com>
Thu, 23 May 2013 21:35:49 +0000 (21:35 +0000)
committerDaniel Jasper <djasper@google.com>
Thu, 23 May 2013 21:35:49 +0000 (21:35 +0000)
Before: f(new vector<int> { 1, 2, 3 });
After:  f(new vector<int>{ 1, 2, 3 });

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

lib/Format/TokenAnnotator.cpp
unittests/Format/FormatTest.cpp

index 4d346bd05130cf82f0384748ac685d8b4612f8f2..1fc9f9cbc1d899cbb67772b82afe194fd362751d 100644 (file)
@@ -1095,8 +1095,8 @@ bool TokenAnnotator::spaceRequiredBetween(const AnnotatedLine &Line,
   if (Right.Type == TT_UnaryOperator)
     return !Left.isOneOf(tok::l_paren, tok::l_square, tok::at) &&
            (Left.isNot(tok::colon) || Left.Type != TT_ObjCMethodExpr);
-  if (Left.is(tok::identifier) && Right.is(tok::l_brace) &&
-      Right.getNextNoneComment())
+  if (Left.isOneOf(tok::identifier, tok::greater, tok::r_square) &&
+      Right.is(tok::l_brace) && Right.getNextNoneComment())
     return false;
   if (Right.is(tok::ellipsis))
     return false;
index ce551e9d1bc2d05be81f07f10d999de383890fb1..f72013a448d1da6366386bdc84743af38d99e7a8 100644 (file)
@@ -3159,6 +3159,8 @@ TEST_F(FormatTest, LayoutCxx11ConstructorBraceInitializers) {
     verifyFormat("auto v = Foo{ 1 };");
     verifyFormat("f({ 1, 2 }, { { 2, 3 }, { 4, 5 } }, c, { d });");
     verifyFormat("Class::Class : member{ 1, 2, 3 } {}");
+    verifyFormat("new vector<int>{ 1, 2, 3 };");
+    verifyFormat("new int[3]{ 1, 2, 3 };");
     verifyFormat("return { arg1, arg2 };");
     verifyFormat("new T{ arg1, arg2 };");
     verifyFormat("class Class {\n"
@@ -3173,6 +3175,8 @@ TEST_F(FormatTest, LayoutCxx11ConstructorBraceInitializers) {
     verifyFormat("auto v = Foo{-1};", NoSpaces);
     verifyFormat("f({1, 2}, {{2, 3}, {4, 5}}, c, {d});", NoSpaces);
     verifyFormat("Class::Class : member{1, 2, 3} {}", NoSpaces);
+    verifyFormat("new vector<int>{1, 2, 3};", NoSpaces);
+    verifyFormat("new int[3]{1, 2, 3};", NoSpaces);
     verifyFormat("return {arg1, arg2};", NoSpaces);
     verifyFormat("new T{arg1, arg2};", NoSpaces);
     verifyFormat("class Class {\n"