[PATCH] D26125: [clang-tidy] Fixed readability-else-after-return for cascade statements

Malcolm Parsons via cfe-commits cfe-commits at lists.llvm.org
Fri Nov 4 11:07:54 PDT 2016


This revision was automatically updated to reflect the committed changes.
Closed by commit rL285999: [clang-tidy] Fixed readability-else-after-return for cascade statements (authored by malcolm.parsons).

Changed prior to commit:
  https://reviews.llvm.org/D26125?vs=76604&id=76924#toc

Repository:
  rL LLVM

https://reviews.llvm.org/D26125

Files:
  clang-tools-extra/trunk/clang-tidy/readability/ElseAfterReturnCheck.cpp
  clang-tools-extra/trunk/test/clang-tidy/readability-else-after-return.cpp


Index: clang-tools-extra/trunk/clang-tidy/readability/ElseAfterReturnCheck.cpp
===================================================================
--- clang-tools-extra/trunk/clang-tidy/readability/ElseAfterReturnCheck.cpp
+++ clang-tools-extra/trunk/clang-tidy/readability/ElseAfterReturnCheck.cpp
@@ -23,7 +23,7 @@
       stmt(anyOf(returnStmt().bind("return"), continueStmt().bind("continue"),
                  breakStmt().bind("break"), cxxThrowExpr().bind("throw")));
   Finder->addMatcher(
-      stmt(forEach(
+      compoundStmt(forEach(
           ifStmt(hasThen(stmt(
                      anyOf(ControlFlowInterruptorMatcher,
                            compoundStmt(has(ControlFlowInterruptorMatcher))))),
Index: clang-tools-extra/trunk/test/clang-tidy/readability-else-after-return.cpp
===================================================================
--- clang-tools-extra/trunk/test/clang-tidy/readability-else-after-return.cpp
+++ clang-tools-extra/trunk/test/clang-tidy/readability-else-after-return.cpp
@@ -29,32 +29,60 @@
   else if (a > 10)
     return;
   else // comment-2
-  // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: do not use 'else' after 'return'
-  // CHECK-FIXES: {{^}}  // comment-2
+  // CHECK-FIXES-NOT: {{^}}  // comment-2
     f(0);
+
+  if (a > 0)
+    if (a < 10)
+      return;
+    else // comment-3
+    // CHECK-FIXES-NOT: {{^}}    // comment-3
+      f(0);
+  else
+    if (a > 10)
+      return;
+    else // comment-4
+    // CHECK-FIXES-NOT: {{^}}    // comment-4
+      f(0);
+
+  if (a > 0) {
+    if (a < 10)
+      return;
+    else // comment-5
+    // CHECK-MESSAGES: :[[@LINE-1]]:5: warning: do not use 'else' after 'return'
+    // CHECK-FIXES: {{^}}    // comment-5
+      f(0);
+  } else {
+    if (a > 10)
+      return;
+    else // comment-6
+    // CHECK-MESSAGES: :[[@LINE-1]]:5: warning: do not use 'else' after 'return'
+    // CHECK-FIXES: {{^}}    // comment-6
+      f(0);
+  }
 }
 
 void foo() {
   for (unsigned x = 0; x < 42; ++x) {
     if (x) {
       continue;
-    } else { // comment-3
+    } else { // comment-7
     // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: do not use 'else' after 'continue'
-    // CHECK-FIXES: {{^}}    } // comment-3
+    // CHECK-FIXES: {{^}}    } // comment-7
       x++;
     }
     if (x) {
       break;
-    } else { // comment-4
+    } else { // comment-8
     // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: do not use 'else' after 'break'
-    // CHECK-FIXES: {{^}}    } // comment-4
+    // CHECK-FIXES: {{^}}    } // comment-8
       x++;
     }
     if (x) {
       throw 42;
-    } else { // comment-5
+    } else { // comment-9
     // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: do not use 'else' after 'throw'
-    // CHECK-FIXES: {{^}}    } // comment-5
+    // CHECK-FIXES: {{^}}    } // comment-9
       x++;
     }
   }


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D26125.76924.patch
Type: text/x-patch
Size: 2834 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20161104/36b0949a/attachment.bin>


More information about the cfe-commits mailing list