17cfdff7bSTom Lokovic //===--- StringFindStrContainsCheck.h - clang-tidy---------------*- C++ -*-===// 27cfdff7bSTom Lokovic // 37cfdff7bSTom Lokovic // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 47cfdff7bSTom Lokovic // See https://llvm.org/LICENSE.txt for license information. 57cfdff7bSTom Lokovic // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 67cfdff7bSTom Lokovic // 77cfdff7bSTom Lokovic //===----------------------------------------------------------------------===// 87cfdff7bSTom Lokovic 97cfdff7bSTom Lokovic #ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_ABSEIL_STRINGFINDSTRCONTAINSCHECK_H 107cfdff7bSTom Lokovic #define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_ABSEIL_STRINGFINDSTRCONTAINSCHECK_H 117cfdff7bSTom Lokovic 12860aefd0SNathan James #include "../ClangTidyCheck.h" 137cfdff7bSTom Lokovic #include "../utils/TransformerClangTidyCheck.h" 147cfdff7bSTom Lokovic 15*4718da50SCarlos Galvez namespace clang::tidy::abseil { 167cfdff7bSTom Lokovic 177cfdff7bSTom Lokovic /// Finds s.find(...) == string::npos comparisons (for various string-like 187cfdff7bSTom Lokovic /// types) and suggests replacing with absl::StrContains. 197cfdff7bSTom Lokovic /// 207cfdff7bSTom Lokovic /// For the user-facing documentation see: 216e566bc5SRichard /// http://clang.llvm.org/extra/clang-tidy/checks/abseil/string-find-str-contains.html 227cfdff7bSTom Lokovic class StringFindStrContainsCheck : public utils::TransformerClangTidyCheck { 237cfdff7bSTom Lokovic public: 247cfdff7bSTom Lokovic StringFindStrContainsCheck(StringRef Name, ClangTidyContext *Context); 257cfdff7bSTom Lokovic bool isLanguageVersionSupported(const LangOptions &LangOpts) const override; 267cfdff7bSTom Lokovic void storeOptions(ClangTidyOptions::OptionMap &Opts) override; 277cfdff7bSTom Lokovic 287cfdff7bSTom Lokovic private: 2912cb5405SNathan James const std::vector<StringRef> StringLikeClassesOption; 3012cb5405SNathan James const StringRef AbseilStringsMatchHeaderOption; 317cfdff7bSTom Lokovic }; 327cfdff7bSTom Lokovic 33*4718da50SCarlos Galvez } // namespace clang::tidy::abseil 347cfdff7bSTom Lokovic 357cfdff7bSTom Lokovic #endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_ABSEIL_STRINGFINDSTRCONTAINSCHECK_H 36