diff --git a/clang/include/clang/Tooling/Inclusions/HeaderAnalysis.h b/clang/include/clang/Tooling/Inclusions/HeaderAnalysis.h index 31854ff6f59da5..760b8dd0879c96 100644 --- a/clang/include/clang/Tooling/Inclusions/HeaderAnalysis.h +++ b/clang/include/clang/Tooling/Inclusions/HeaderAnalysis.h @@ -9,8 +9,9 @@ #ifndef LLVM_CLANG_TOOLING_INCLUSIONS_HEADER_ANALYSIS_H #define LLVM_CLANG_TOOLING_INCLUSIONS_HEADER_ANALYSIS_H -#include "llvm/ADT/Optional.h" #include "llvm/ADT/StringRef.h" +#include + namespace clang { class FileEntry; class SourceManager; @@ -37,7 +38,7 @@ bool codeContainsImports(llvm::StringRef Code); /// Input is a null-terminated char* as provided by SM.getCharacterData(). /// (This should not be StringRef as we do *not* want to scan for its length). /// For multi-line comments, we return only the first line. -llvm::Optional parseIWYUPragma(const char *Text); +std::optional parseIWYUPragma(const char *Text); } // namespace tooling } // namespace clang diff --git a/clang/lib/Tooling/Inclusions/HeaderAnalysis.cpp b/clang/lib/Tooling/Inclusions/HeaderAnalysis.cpp index f2a15c2a568cfd..49d23908d33b70 100644 --- a/clang/lib/Tooling/Inclusions/HeaderAnalysis.cpp +++ b/clang/lib/Tooling/Inclusions/HeaderAnalysis.cpp @@ -93,7 +93,7 @@ bool codeContainsImports(llvm::StringRef Code) { return false; } -llvm::Optional parseIWYUPragma(const char *Text) { +std::optional parseIWYUPragma(const char *Text) { // Skip the comment start, // or /*. if (Text[0] != '/' || (Text[1] != '/' && Text[1] != '*')) return std::nullopt; diff --git a/clang/unittests/Tooling/HeaderAnalysisTest.cpp b/clang/unittests/Tooling/HeaderAnalysisTest.cpp index 186eb87b062d25..623957c3ba237f 100644 --- a/clang/unittests/Tooling/HeaderAnalysisTest.cpp +++ b/clang/unittests/Tooling/HeaderAnalysisTest.cpp @@ -9,13 +9,12 @@ #include "clang/Tooling/Inclusions/HeaderAnalysis.h" #include "clang/Lex/Preprocessor.h" #include "clang/Testing/TestAST.h" -#include "llvm/Testing/Support/SupportHelpers.h" +#include "gmock/gmock.h" #include "gtest/gtest.h" namespace clang { namespace tooling { namespace { -using llvm::ValueIs; using testing::Eq; TEST(HeaderAnalysisTest, IsSelfContained) { @@ -93,10 +92,10 @@ TEST(HeaderAnalysisTest, CodeContainsImports) { } TEST(HeaderAnalysisTest, ParseIWYUPragma) { - EXPECT_THAT(parseIWYUPragma("// IWYU pragma: keep"), ValueIs(Eq("keep"))); + EXPECT_THAT(parseIWYUPragma("// IWYU pragma: keep"), Eq("keep")); EXPECT_THAT(parseIWYUPragma("// IWYU pragma: keep me\netc"), - ValueIs(Eq("keep me"))); - EXPECT_THAT(parseIWYUPragma("/* IWYU pragma: keep */"), ValueIs(Eq("keep"))); + Eq("keep me")); + EXPECT_THAT(parseIWYUPragma("/* IWYU pragma: keep */"), Eq("keep")); EXPECT_EQ(parseIWYUPragma("// IWYU pragma: keep"), std::nullopt) << "Prefix is sensitive to whitespace"; EXPECT_EQ(parseIWYUPragma("// IWYU pragma:keep"), std::nullopt)