================ @@ -0,0 +1,68 @@ +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "RedundantTypenameCheck.h" +#include "clang/AST/TypeLoc.h" +#include "clang/ASTMatchers/ASTMatchFinder.h" +#include "clang/ASTMatchers/ASTMatchers.h" +#include "clang/Basic/Diagnostic.h" +#include "clang/Sema/DeclSpec.h" + +using namespace clang::ast_matchers; +using namespace clang::ast_matchers::internal; + +namespace clang::tidy::readability { + +void RedundantTypenameCheck::registerMatchers(MatchFinder *Finder) { + // NOLINTNEXTLINE(readability-identifier-naming) + const VariadicDynCastAllOfMatcher<TypeLoc, TypedefTypeLoc> typedefTypeLoc; + Finder->addMatcher(typedefTypeLoc().bind("typedefTypeLoc"), this); + + if (!getLangOpts().CPlusPlus20) + return; + + // NOLINTBEGIN(readability-identifier-naming) + const VariadicDynCastAllOfMatcher<Stmt, CXXNamedCastExpr> cxxNamedCastExpr; + const auto inImplicitTypenameContext = anyOf( ---------------- vbvictor wrote:
If we have `hasParent` in each entry of `anyOf`, could we write instead: `hasParent(anyOf(typedefNameDecl(), templateTypeParmDecl(), ...))` to lover number of repetitive `hasParent`. https://github.com/llvm/llvm-project/pull/161574 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
