[clang] 58c9467 - Use std::optional in Tooling/Inclusions.

Haojian Wu via cfe-commits cfe-commits at lists.llvm.org
Mon Dec 12 07:02:12 PST 2022


Author: Haojian Wu
Date: 2022-12-12T16:01:56+01:00
New Revision: 58c9467f58a3ec77bae4675becfa7f3bc8470230

URL: https://github.com/llvm/llvm-project/commit/58c9467f58a3ec77bae4675becfa7f3bc8470230
DIFF: https://github.com/llvm/llvm-project/commit/58c9467f58a3ec77bae4675becfa7f3bc8470230.diff

LOG: Use std::optional in Tooling/Inclusions.

Added: 
    

Modified: 
    clang/include/clang/Tooling/Inclusions/HeaderAnalysis.h
    clang/lib/Tooling/Inclusions/HeaderAnalysis.cpp
    clang/unittests/Tooling/HeaderAnalysisTest.cpp

Removed: 
    


################################################################################
diff  --git a/clang/include/clang/Tooling/Inclusions/HeaderAnalysis.h b/clang/include/clang/Tooling/Inclusions/HeaderAnalysis.h
index 31854ff6f59da..760b8dd0879c9 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 <optional>
+
 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<llvm::StringRef> parseIWYUPragma(const char *Text);
+std::optional<llvm::StringRef> 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 f2a15c2a568cf..49d23908d33b7 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<StringRef> parseIWYUPragma(const char *Text) {
+std::optional<StringRef> 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 186eb87b062d2..623957c3ba237 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)


        


More information about the cfe-commits mailing list