PiotrZSL added inline comments.

================
Comment at: 
clang-tools-extra/clang-tidy/llvm/PreferIsaOrDynCastInConditionalsCheck.cpp:39
           varDecl(hasInitializer(
               callExpr(allOf(unless(isMacroID()), unless(cxxMemberCallExpr()),
                              callee(namedDecl(hasName("cast")))))
----------------
allOf is redudant


================
Comment at: 
clang-tools-extra/clang-tidy/llvm/PreferIsaOrDynCastInConditionalsCheck.cpp:46
       callExpr(
-          allOf(
-              unless(isMacroID()), unless(cxxMemberCallExpr()),
-              allOf(callee(namedDecl(hasAnyName("isa", "cast", "cast_or_null",
-                                                "dyn_cast", 
"dyn_cast_or_null"))
-                               .bind("func")),
-                    hasArgument(
-                        0,
-                        mapAnyOf(declRefExpr, 
cxxMemberCallExpr).bind("arg")))))
+          allOf(unless(isMacroID()), unless(cxxMemberCallExpr()),
+                allOf(callee(namedDecl(hasAnyName("isa", "cast", 
"cast_or_null",
----------------
no need for allOf, just put those unless directly under callExpr


================
Comment at: 
clang-tools-extra/clang-tidy/llvm/PreferIsaOrDynCastInConditionalsCheck.cpp:47
+          allOf(unless(isMacroID()), unless(cxxMemberCallExpr()),
+                allOf(callee(namedDecl(hasAnyName("isa", "cast", 
"cast_or_null",
+                                                  "cast_if_present", 
"dyn_cast",
----------------
this also doesn't look to be needed..


================
Comment at: 
clang-tools-extra/clang-tidy/llvm/PreferIsaOrDynCastInConditionalsCheck.cpp:47
+          allOf(unless(isMacroID()), unless(cxxMemberCallExpr()),
+                allOf(callee(namedDecl(hasAnyName("isa", "cast", 
"cast_or_null",
+                                                  "cast_if_present", 
"dyn_cast",
----------------
PiotrZSL wrote:
> this also doesn't look to be needed..
maybe check argument count first `argumentCountIs(1)`
it could be cheaper than hasAnyName


================
Comment at: 
clang-tools-extra/clang-tidy/llvm/PreferIsaOrDynCastInConditionalsCheck.cpp:57
   Finder->addMatcher(
       traverse(TK_AsIs,
                stmt(anyOf(
----------------
Let me quote You: "Rather than calling traverse, the canoncial way to handle 
this is by overriding the getCheckTraversalKind virtual function to return 
TK_IgnoreUnlessSpelledInSource"
In this case just return TK_AsIs.


================
Comment at: 
clang-tools-extra/clang-tidy/llvm/PreferIsaOrDynCastInConditionalsCheck.cpp:59
                stmt(anyOf(
                    ifStmt(Any), whileStmt(Any), doStmt(Condition),
                    binaryOperator(
----------------
Change name of this any, on first look I mistook this for a anything()


================
Comment at: 
clang-tools-extra/clang-tidy/llvm/PreferIsaOrDynCastInConditionalsCheck.cpp:61
                    binaryOperator(
                        allOf(unless(isExpansionInFileMatching(
                                  "llvm/include/llvm/Support/Casting.h")),
----------------
no need for allOf, all those matchers are variadic...



================
Comment at: 
clang-tools-extra/clang-tidy/llvm/PreferIsaOrDynCastInConditionalsCheck.cpp:65-66
                              hasLHS(implicitCastExpr().bind("lhs")),
                              
hasRHS(anyOf(implicitCastExpr(has(CallExpression)),
                                           CallExpression))))
                        .bind("and")))),
----------------
I think that `hasRHS(ignoringImpCasts(CallExpression))` should do a trick.


================
Comment at: 
clang-tools-extra/clang-tidy/llvm/PreferIsaOrDynCastInConditionalsCheck.cpp:96
+    HasIsPresent = FindIsaAndPresent(*Result.Context);
   if (const auto *MatchedDecl = Result.Nodes.getNodeAs<CallExpr>("assign")) {
     SourceLocation StartLoc = MatchedDecl->getCallee()->getExprLoc();
----------------
This is not a Decl but an Expr


================
Comment at: 
clang-tools-extra/clang-tidy/llvm/PreferIsaOrDynCastInConditionalsCheck.cpp:155-156
+        << ReplaceFunc
         << FixItHint::CreateReplacement(SourceRange(MatchedDecl->getBeginLoc(),
                                                     MatchedDecl->getEndLoc()),
                                         Replacement);
----------------
Maybe `MatchedDecl->getSourceRange ()` ?


================
Comment at: 
clang-tools-extra/clang-tidy/llvm/PreferIsaOrDynCastInConditionalsCheck.h:61
+private:
+  mutable std::optional<bool> HasIsPresent;
 };
----------------
no need for mutable, its used only form Check that isn't const.
Maybe better HasIsPresentCache ?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D131319

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

Reply via email to