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

Paweł Żukowski via cfe-commits cfe-commits at lists.llvm.org
Tue Nov 1 11:29:33 PDT 2016


idlecode retitled this revision from "[clang-tidy] Fixed else-after-return warning in cascade if statement" to "[clang-tidy] Fixed readability-else-after-return for cascade statements".
idlecode updated the summary for this revision.
idlecode updated this revision to Diff 76604.
idlecode added a comment.

I have reverted matcher to the state before https://reviews.llvm.org/D23265 (tests are passing with compoundStmt instead of stmt and this way is better than mine).


https://reviews.llvm.org/D26125

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


Index: test/clang-tidy/readability-else-after-return.cpp
===================================================================
--- test/clang-tidy/readability-else-after-return.cpp
+++ 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++;
     }
   }
Index: clang-tidy/readability/ElseAfterReturnCheck.cpp
===================================================================
--- clang-tidy/readability/ElseAfterReturnCheck.cpp
+++ 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))))),


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D26125.76604.patch
Type: text/x-patch
Size: 2690 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20161101/26be5aad/attachment.bin>


More information about the cfe-commits mailing list