10 #include "clang/AST/ASTContext.h"
11 #include "clang/ASTMatchers/ASTMatchFinder.h"
17 namespace readability {
19 void RedundantFunctionPtrDereferenceCheck::registerMatchers(MatchFinder *Finder) {
20 Finder->addMatcher(traverse(ast_type_traits::TK_AsIs,
21 unaryOperator(hasOperatorName(
"*"),
22 has(implicitCastExpr(hasCastKind(
23 CK_FunctionToPointerDecay))))
28 void RedundantFunctionPtrDereferenceCheck::check(
const MatchFinder::MatchResult &Result) {
29 const auto *Operator = Result.Nodes.getNodeAs<UnaryOperator>(
"op");
30 diag(Operator->getOperatorLoc(),
31 "redundant repeated dereference of function pointer")
32 << FixItHint::CreateRemoval(Operator->getOperatorLoc());