aaron.ballman added a comment.

Should this check also try to find this pattern:

  if (dyn_cast<Frobble>(Bobble))
    ...

in order to recommend the proper replacement:

  if (isa<Frobble>(Bobble))
    ...

I ask because the name `llvm-avoid-cast-in-conditional` sounds like it would 
also cover this situation and I run into it during code reviews with some 
frequency (more often than I run into `cast<>` being used in a conditional).



================
Comment at: clang-tools-extra/clang-tidy/llvm/AvoidCastInConditionalCheck.cpp:20
+void AvoidCastInConditionalCheck::registerMatchers(MatchFinder *Finder) {
+  Finder->addMatcher(
+      ifStmt(anyOf(
----------------
No need to register this matcher if C++ isn't enabled.


================
Comment at: 
clang-tools-extra/clang-tidy/llvm/AvoidCastInConditionalCheck.cpp:35-36
+    diag(MatchedDecl->getBeginLoc(),
+         "Found cast<> in conditional statement; consider using dyn_cast<> if "
+         "it can fail, or removal of conditional if it can't.");
+    ;
----------------
clang-tidy diagnostics should not be complete sentences; you should make this 
ungrammatical. How about: `cast<> in conditional will assert rather than return 
a null pointer`?


================
Comment at: clang-tools-extra/clang-tidy/llvm/AvoidCastInConditionalCheck.cpp:37
+         "it can fail, or removal of conditional if it can't.");
+    ;
+  }
----------------
Spurious semicolon?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D59802/new/

https://reviews.llvm.org/D59802



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to