From 58c9467f58a3ec77bae4675becfa7f3bc8470230 Mon Sep 17 00:00:00 2001 From: Haojian Wu Date: Mon, 12 Dec 2022 16:00:51 +0100 Subject: [PATCH] Use std::optional in Tooling/Inclusions. --- clang/include/clang/Tooling/Inclusions/HeaderAnalysis.h | 5 +++-- clang/lib/Tooling/Inclusions/HeaderAnalysis.cpp | 2 +- clang/unittests/Tooling/HeaderAnalysisTest.cpp | 9 ++++----- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/clang/include/clang/Tooling/Inclusions/HeaderAnalysis.h b/clang/include/clang/Tooling/Inclusions/HeaderAnalysis.h index 31854ff..760b8dd 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 f2a15c2..49d2390 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 186eb87..623957c 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) -- 2.7.4