]> granicus.if.org Git - clang/commitdiff
clang-format: Understand C-style case in case label.
authorDaniel Jasper <djasper@google.com>
Fri, 12 Jun 2015 07:15:33 +0000 (07:15 +0000)
committerDaniel Jasper <djasper@google.com>
Fri, 12 Jun 2015 07:15:33 +0000 (07:15 +0000)
Before:
  case (my_int) ONE:

After:
  case (my_int)ONE:

This fixed llvm.org/PR23760

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

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

index e45ef6031146d43173df697505c0d523ee372e24..3e8659ef853979938097b6f34ce3dae256e79323 100644 (file)
@@ -1081,7 +1081,7 @@ private:
     // there is also an identifier before the ().
     else if (LeftOfParens && Tok.Next &&
              (LeftOfParens->Tok.getIdentifierInfo() == nullptr ||
-              LeftOfParens->is(tok::kw_return)) &&
+              LeftOfParens->isOneOf(tok::kw_return, tok::kw_case)) &&
              !LeftOfParens->isOneOf(TT_OverloadedOperator, tok::at,
                                     TT_TemplateCloser)) {
       if (Tok.Next->isOneOf(tok::identifier, tok::numeric_constant)) {
index 46be32bf4b1289c1088b26e71bc3b82bbd8709f4..e6df49d45906ef11748e69747a03cd5967d6ed31 100644 (file)
@@ -5818,6 +5818,7 @@ TEST_F(FormatTest, FormatsCasts) {
   verifyFormat("my_int a = (const my_int *)-1;");
   verifyFormat("my_int a = (my_int)(my_int)-1;");
   verifyFormat("my_int a = (ns::my_int)-2;");
+  verifyFormat("case (my_int)ONE:");
 
   // FIXME: single value wrapped with paren will be treated as cast.
   verifyFormat("void f(int i = (kValue)*kMask) {}");