//===- AbseilMatcher.h - clang-tidy ---------------------------------------===// // // 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 "clang/AST/ASTContext.h" #include "clang/ASTMatchers/ASTMatchFinder.h" #include <algorithm> namespace clang::ast_matchers { /// Matches AST nodes that were found within Abseil files. /// /// Example matches Y but not X /// (matcher = cxxRecordDecl(isInAbseilFile()) /// \code /// #include "absl/strings/internal-file.h" /// class X {}; /// \endcode /// absl/strings/internal-file.h: /// \code /// class Y {}; /// \endcode /// /// Usable as: Matcher<Decl>, Matcher<Stmt>, Matcher<TypeLoc>, /// Matcher<NestedNameSpecifierLoc> AST_POLYMORPHIC_MATCHER( isInAbseilFile, AST_POLYMORPHIC_SUPPORTED_TYPES(Decl, Stmt, TypeLoc, NestedNameSpecifierLoc)) { … } } // namespace clang::ast_matchers