[clang] a41fbb1 - [clang/unittests] Use std::nullopt instead of None (NFC)

Kazu Hirata via cfe-commits cfe-commits at lists.llvm.org
Sat Dec 3 12:14:29 PST 2022


Author: Kazu Hirata
Date: 2022-12-03T12:14:19-08:00
New Revision: a41fbb1fc2126e9791fd0f159f21935f6c2f93c4

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

LOG: [clang/unittests] Use std::nullopt instead of None (NFC)

This patch mechanically replaces None with std::nullopt where the
compiler would warn if None were deprecated.  The intent is to reduce
the amount of manual work required in migrating from Optional to
std::optional.

This is part of an effort to migrate from llvm::Optional to
std::optional:

https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716

Added: 
    

Modified: 
    clang/unittests/AST/ASTImporterTest.cpp
    clang/unittests/Analysis/FlowSensitive/MultiVarConstantPropagationTest.cpp
    clang/unittests/Analysis/FlowSensitive/SingleVarConstantPropagationTest.cpp
    clang/unittests/Analysis/FlowSensitive/TransferTest.cpp
    clang/unittests/Basic/DarwinSDKInfoTest.cpp
    clang/unittests/Basic/FileEntryTest.cpp
    clang/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp
    clang/unittests/Frontend/ASTUnitTest.cpp
    clang/unittests/Lex/HeaderSearchTest.cpp
    clang/unittests/Serialization/SourceLocationEncodingTest.cpp
    clang/unittests/StaticAnalyzer/CallDescriptionTest.cpp
    clang/unittests/Tooling/ASTSelectionTest.cpp
    clang/unittests/Tooling/HeaderAnalysisTest.cpp
    clang/unittests/Tooling/SourceCodeBuildersTest.cpp
    clang/unittests/Tooling/StandardLibraryTest.cpp
    clang/unittests/Tooling/StencilTest.cpp
    clang/unittests/Tooling/Syntax/TokensTest.cpp
    clang/unittests/Tooling/TransformerTest.cpp

Removed: 
    


################################################################################
diff  --git a/clang/unittests/AST/ASTImporterTest.cpp b/clang/unittests/AST/ASTImporterTest.cpp
index cb8c0bf5dcd5a..865574f0fec6d 100644
--- a/clang/unittests/AST/ASTImporterTest.cpp
+++ b/clang/unittests/AST/ASTImporterTest.cpp
@@ -4818,7 +4818,7 @@ TEST_P(ASTImporterOptionSpecificTestBase, ImportSubstTemplateTypeParmType) {
     ASSERT_EQ(Subst->getPackIndex(), PackIndex);
   };
   auto tests = [&](ASTContext &Ctx) {
-    testType(Ctx, "void", None);
+    testType(Ctx, "void", std::nullopt);
     testType(Ctx, "char", 3);
     testType(Ctx, "float", 2);
     testType(Ctx, "int", 1);

diff  --git a/clang/unittests/Analysis/FlowSensitive/MultiVarConstantPropagationTest.cpp b/clang/unittests/Analysis/FlowSensitive/MultiVarConstantPropagationTest.cpp
index 39a1e1dd0859f..4562a6294b2df 100644
--- a/clang/unittests/Analysis/FlowSensitive/MultiVarConstantPropagationTest.cpp
+++ b/clang/unittests/Analysis/FlowSensitive/MultiVarConstantPropagationTest.cpp
@@ -61,9 +61,10 @@ struct ValueLattice {
   // When `None`, the lattice is either at top or bottom, based on `State`.
   llvm::Optional<int64_t> Value;
 
-  constexpr ValueLattice() : State(ValueState::Undefined), Value(llvm::None) {}
+  constexpr ValueLattice()
+      : State(ValueState::Undefined), Value(std::nullopt) {}
   constexpr ValueLattice(int64_t V) : State(ValueState::Defined), Value(V) {}
-  constexpr ValueLattice(ValueState S) : State(S), Value(llvm::None) {}
+  constexpr ValueLattice(ValueState S) : State(S), Value(std::nullopt) {}
 
   static constexpr ValueLattice bottom() {
     return ValueLattice(ValueState::Undefined);

diff  --git a/clang/unittests/Analysis/FlowSensitive/SingleVarConstantPropagationTest.cpp b/clang/unittests/Analysis/FlowSensitive/SingleVarConstantPropagationTest.cpp
index 60b7860917899..9c52ed1b52e2f 100644
--- a/clang/unittests/Analysis/FlowSensitive/SingleVarConstantPropagationTest.cpp
+++ b/clang/unittests/Analysis/FlowSensitive/SingleVarConstantPropagationTest.cpp
@@ -63,7 +63,9 @@ struct ConstantPropagationLattice {
   // `None` is "bottom".
   llvm::Optional<VarValue> Data;
 
-  static constexpr ConstantPropagationLattice bottom() { return {llvm::None}; }
+  static constexpr ConstantPropagationLattice bottom() {
+    return {std::nullopt};
+  }
   static constexpr ConstantPropagationLattice top() {
     return {VarValue{nullptr, 0}};
   }

diff  --git a/clang/unittests/Analysis/FlowSensitive/TransferTest.cpp b/clang/unittests/Analysis/FlowSensitive/TransferTest.cpp
index 01f61cab3716e..7e7be3c9e07ef 100644
--- a/clang/unittests/Analysis/FlowSensitive/TransferTest.cpp
+++ b/clang/unittests/Analysis/FlowSensitive/TransferTest.cpp
@@ -3849,7 +3849,7 @@ TEST(TransferTest, ContextSensitiveOptionDisabled) {
         EXPECT_FALSE(Env.flowConditionImplies(FooVal));
         EXPECT_FALSE(Env.flowConditionImplies(Env.makeNot(FooVal)));
       },
-      {TransferOptions{/*.ContextSensitiveOpts=*/llvm::None}});
+      {TransferOptions{/*.ContextSensitiveOpts=*/std::nullopt}});
 }
 
 TEST(TransferTest, ContextSensitiveDepthZero) {

diff  --git a/clang/unittests/Basic/DarwinSDKInfoTest.cpp b/clang/unittests/Basic/DarwinSDKInfoTest.cpp
index d56e13d839162..887f74a97a58f 100644
--- a/clang/unittests/Basic/DarwinSDKInfoTest.cpp
+++ b/clang/unittests/Basic/DarwinSDKInfoTest.cpp
@@ -23,23 +23,26 @@ TEST(DarwinSDKInfo, VersionMapping) {
   EXPECT_EQ(Mapping->getMinimumValue(), VersionTuple(1));
 
   // Exact mapping.
-  EXPECT_EQ(Mapping->map(VersionTuple(3), VersionTuple(0, 1), None),
+  EXPECT_EQ(Mapping->map(VersionTuple(3), VersionTuple(0, 1), std::nullopt),
             VersionTuple(1));
-  EXPECT_EQ(Mapping->map(VersionTuple(3, 0), VersionTuple(0, 1), None),
+  EXPECT_EQ(Mapping->map(VersionTuple(3, 0), VersionTuple(0, 1), std::nullopt),
             VersionTuple(1));
-  EXPECT_EQ(Mapping->map(VersionTuple(3, 0, 0), VersionTuple(0, 1), None),
-            VersionTuple(1));
-  EXPECT_EQ(Mapping->map(VersionTuple(3, 1), VersionTuple(0, 1), None),
-            VersionTuple(1, 2));
-  EXPECT_EQ(Mapping->map(VersionTuple(3, 1, 0), VersionTuple(0, 1), None),
+  EXPECT_EQ(
+      Mapping->map(VersionTuple(3, 0, 0), VersionTuple(0, 1), std::nullopt),
+      VersionTuple(1));
+  EXPECT_EQ(Mapping->map(VersionTuple(3, 1), VersionTuple(0, 1), std::nullopt),
             VersionTuple(1, 2));
+  EXPECT_EQ(
+      Mapping->map(VersionTuple(3, 1, 0), VersionTuple(0, 1), std::nullopt),
+      VersionTuple(1, 2));
 
   // Missing mapping - fallback to major.
-  EXPECT_EQ(Mapping->map(VersionTuple(3, 0, 1), VersionTuple(0, 1), None),
-            VersionTuple(1));
+  EXPECT_EQ(
+      Mapping->map(VersionTuple(3, 0, 1), VersionTuple(0, 1), std::nullopt),
+      VersionTuple(1));
 
   // Minimum
-  EXPECT_EQ(Mapping->map(VersionTuple(2), VersionTuple(0, 1), None),
+  EXPECT_EQ(Mapping->map(VersionTuple(2), VersionTuple(0, 1), std::nullopt),
             VersionTuple(0, 1));
 
   // Maximum
@@ -57,7 +60,7 @@ TEST(DarwinSDKInfo, VersionMappingMissingKey) {
   EXPECT_TRUE(Mapping);
   EXPECT_EQ(
       Mapping->map(VersionTuple(4), VersionTuple(0, 1), VersionTuple(100)),
-      None);
+      std::nullopt);
 }
 
 TEST(DarwinSDKInfo, VersionMappingParseEmpty) {
@@ -95,22 +98,23 @@ TEST(DarwinSDKInfoTest, ParseAndTestMappingMacCatalyst) {
   ASSERT_TRUE(Mapping);
   // Verify that the macOS versions that are present in the map are translated
   // directly to their corresponding Mac Catalyst versions.
-  EXPECT_EQ(*Mapping->map(VersionTuple(10, 15), VersionTuple(), None),
+  EXPECT_EQ(*Mapping->map(VersionTuple(10, 15), VersionTuple(), std::nullopt),
             VersionTuple(13, 1));
-  EXPECT_EQ(*Mapping->map(VersionTuple(11, 0), VersionTuple(), None),
+  EXPECT_EQ(*Mapping->map(VersionTuple(11, 0), VersionTuple(), std::nullopt),
             VersionTuple(14, 0));
-  EXPECT_EQ(*Mapping->map(VersionTuple(11, 2), VersionTuple(), None),
+  EXPECT_EQ(*Mapping->map(VersionTuple(11, 2), VersionTuple(), std::nullopt),
             VersionTuple(14, 2));
 
   // Verify that a macOS version that's not present in the map is translated
   // like the nearest major OS version.
-  EXPECT_EQ(*Mapping->map(VersionTuple(11, 1), VersionTuple(), None),
+  EXPECT_EQ(*Mapping->map(VersionTuple(11, 1), VersionTuple(), std::nullopt),
             VersionTuple(14, 0));
 
   // Verify that the macOS versions that are outside of the mapped version
   // range map to the min/max values passed to the `map` call.
-  EXPECT_EQ(*Mapping->map(VersionTuple(10, 14), VersionTuple(99, 99), None),
-            VersionTuple(99, 99));
+  EXPECT_EQ(
+      *Mapping->map(VersionTuple(10, 14), VersionTuple(99, 99), std::nullopt),
+      VersionTuple(99, 99));
   EXPECT_EQ(
       *Mapping->map(VersionTuple(11, 5), VersionTuple(), VersionTuple(99, 99)),
       VersionTuple(99, 99));
@@ -143,22 +147,23 @@ TEST(DarwinSDKInfoTest, ParseAndTestMappingIOSDerived) {
 
   // Verify that the iOS versions that are present in the map are translated
   // directly to their corresponding tvOS versions.
-  EXPECT_EQ(*Mapping->map(VersionTuple(10, 0), VersionTuple(), None),
+  EXPECT_EQ(*Mapping->map(VersionTuple(10, 0), VersionTuple(), std::nullopt),
             VersionTuple(10, 0));
-  EXPECT_EQ(*Mapping->map(VersionTuple(10, 3, 1), VersionTuple(), None),
+  EXPECT_EQ(*Mapping->map(VersionTuple(10, 3, 1), VersionTuple(), std::nullopt),
             VersionTuple(10, 2));
-  EXPECT_EQ(*Mapping->map(VersionTuple(11, 0), VersionTuple(), None),
+  EXPECT_EQ(*Mapping->map(VersionTuple(11, 0), VersionTuple(), std::nullopt),
             VersionTuple(11, 0));
 
   // Verify that an iOS version that's not present in the map is translated
   // like the nearest major OS version.
-  EXPECT_EQ(*Mapping->map(VersionTuple(10, 1), VersionTuple(), None),
+  EXPECT_EQ(*Mapping->map(VersionTuple(10, 1), VersionTuple(), std::nullopt),
             VersionTuple(10, 0));
 
   // Verify that the iOS versions that are outside of the mapped version
   // range map to the min/max values passed to the `map` call.
-  EXPECT_EQ(*Mapping->map(VersionTuple(9, 0), VersionTuple(99, 99), None),
-            VersionTuple(99, 99));
+  EXPECT_EQ(
+      *Mapping->map(VersionTuple(9, 0), VersionTuple(99, 99), std::nullopt),
+      VersionTuple(99, 99));
   EXPECT_EQ(
       *Mapping->map(VersionTuple(13, 0), VersionTuple(), VersionTuple(99, 99)),
       VersionTuple(99, 99));

diff  --git a/clang/unittests/Basic/FileEntryTest.cpp b/clang/unittests/Basic/FileEntryTest.cpp
index 4249a3d550148..b1755e07f48fc 100644
--- a/clang/unittests/Basic/FileEntryTest.cpp
+++ b/clang/unittests/Basic/FileEntryTest.cpp
@@ -93,7 +93,7 @@ TEST(FileEntryTest, OptionalFileEntryRefDegradesToFileEntryPtr) {
   OptionalFileEntryRefDegradesToFileEntryPtr M0;
   OptionalFileEntryRefDegradesToFileEntryPtr M1 = Refs.addFile("1");
   OptionalFileEntryRefDegradesToFileEntryPtr M2 = Refs.addFile("2");
-  OptionalFileEntryRefDegradesToFileEntryPtr M0Also = None;
+  OptionalFileEntryRefDegradesToFileEntryPtr M0Also = std::nullopt;
   OptionalFileEntryRefDegradesToFileEntryPtr M1Also =
       Refs.addFileAlias("1-also", *M1);
 

diff  --git a/clang/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp b/clang/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp
index 3a73f39e73b3c..62faf032a3ee7 100644
--- a/clang/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp
+++ b/clang/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp
@@ -183,7 +183,7 @@ struct VerifyingConsumer {
       return true;
     if (!UnexpectedInitial.empty() || !UnexpectedNonInitial.empty())
       return false;
-    return llvm::None;
+    return std::nullopt;
   }
 
   // This method is used by tests.

diff  --git a/clang/unittests/Frontend/ASTUnitTest.cpp b/clang/unittests/Frontend/ASTUnitTest.cpp
index 1bfc957f21bfa..f3859536f368c 100644
--- a/clang/unittests/Frontend/ASTUnitTest.cpp
+++ b/clang/unittests/Frontend/ASTUnitTest.cpp
@@ -168,9 +168,9 @@ TEST_F(ASTUnitTest, LoadFromCommandLineEarlyError) {
 
   ASTUnit *AST = ASTUnit::LoadFromCommandLine(
       &Args[0], &Args[4], PCHContainerOps, Diags, "", false,
-      CaptureDiagsKind::All, None, true, 0, TU_Complete, false, false, false,
-      SkipFunctionBodiesScope::None, false, true, false, false, None, &ErrUnit,
-      nullptr);
+      CaptureDiagsKind::All, std::nullopt, true, 0, TU_Complete, false, false,
+      false, SkipFunctionBodiesScope::None, false, true, false, false,
+      std::nullopt, &ErrUnit, nullptr);
 
   ASSERT_EQ(AST, nullptr);
   ASSERT_NE(ErrUnit, nullptr);

diff  --git a/clang/unittests/Lex/HeaderSearchTest.cpp b/clang/unittests/Lex/HeaderSearchTest.cpp
index 939f5a7210d8a..e67445f1aeadc 100644
--- a/clang/unittests/Lex/HeaderSearchTest.cpp
+++ b/clang/unittests/Lex/HeaderSearchTest.cpp
@@ -38,8 +38,9 @@ class HeaderSearchTest : public ::testing::Test {
   }
 
   void addSearchDir(llvm::StringRef Dir) {
-    VFS->addFile(Dir, 0, llvm::MemoryBuffer::getMemBuffer(""), /*User=*/None,
-                 /*Group=*/None, llvm::sys::fs::file_type::directory_file);
+    VFS->addFile(
+        Dir, 0, llvm::MemoryBuffer::getMemBuffer(""), /*User=*/std::nullopt,
+        /*Group=*/std::nullopt, llvm::sys::fs::file_type::directory_file);
     auto DE = FileMgr.getOptionalDirectoryRef(Dir);
     assert(DE);
     auto DL = DirectoryLookup(*DE, SrcMgr::C_User, /*isFramework=*/false);
@@ -47,8 +48,9 @@ class HeaderSearchTest : public ::testing::Test {
   }
 
   void addSystemFrameworkSearchDir(llvm::StringRef Dir) {
-    VFS->addFile(Dir, 0, llvm::MemoryBuffer::getMemBuffer(""), /*User=*/None,
-                 /*Group=*/None, llvm::sys::fs::file_type::directory_file);
+    VFS->addFile(
+        Dir, 0, llvm::MemoryBuffer::getMemBuffer(""), /*User=*/std::nullopt,
+        /*Group=*/std::nullopt, llvm::sys::fs::file_type::directory_file);
     auto DE = FileMgr.getOptionalDirectoryRef(Dir);
     assert(DE);
     auto DL = DirectoryLookup(*DE, SrcMgr::C_System, /*isFramework=*/true);
@@ -58,7 +60,8 @@ class HeaderSearchTest : public ::testing::Test {
   void addHeaderMap(llvm::StringRef Filename,
                     std::unique_ptr<llvm::MemoryBuffer> Buf,
                     bool isAngled = false) {
-    VFS->addFile(Filename, 0, std::move(Buf), /*User=*/None, /*Group=*/None,
+    VFS->addFile(Filename, 0, std::move(Buf), /*User=*/std::nullopt,
+                 /*Group=*/std::nullopt,
                  llvm::sys::fs::file_type::regular_file);
     auto FE = FileMgr.getFile(Filename, true);
     assert(FE);
@@ -197,9 +200,10 @@ TEST_F(HeaderSearchTest, NestedFramework) {
 TEST_F(HeaderSearchTest, HeaderFrameworkLookup) {
   std::string HeaderPath = "/tmp/Frameworks/Foo.framework/Headers/Foo.h";
   addSystemFrameworkSearchDir("/tmp/Frameworks");
-  VFS->addFile(
-      HeaderPath, 0, llvm::MemoryBuffer::getMemBufferCopy("", HeaderPath),
-      /*User=*/None, /*Group=*/None, llvm::sys::fs::file_type::regular_file);
+  VFS->addFile(HeaderPath, 0,
+               llvm::MemoryBuffer::getMemBufferCopy("", HeaderPath),
+               /*User=*/std::nullopt, /*Group=*/std::nullopt,
+               llvm::sys::fs::file_type::regular_file);
 
   bool IsFrameworkFound = false;
   auto FoundFile = Search.LookupFile(
@@ -267,7 +271,8 @@ TEST_F(HeaderSearchTest, HeaderMapFrameworkLookup) {
   VFS->addFile(
       HeaderDirName + HeaderName, 0,
       llvm::MemoryBuffer::getMemBufferCopy("", HeaderDirName + HeaderName),
-      /*User=*/None, /*Group=*/None, llvm::sys::fs::file_type::regular_file);
+      /*User=*/std::nullopt, /*Group=*/std::nullopt,
+      llvm::sys::fs::file_type::regular_file);
 
   bool IsMapped = false;
   auto FoundFile = Search.LookupFile(

diff  --git a/clang/unittests/Serialization/SourceLocationEncodingTest.cpp b/clang/unittests/Serialization/SourceLocationEncodingTest.cpp
index 3839def0c6005..f33a909a65335 100644
--- a/clang/unittests/Serialization/SourceLocationEncodingTest.cpp
+++ b/clang/unittests/Serialization/SourceLocationEncodingTest.cpp
@@ -21,7 +21,7 @@ using LocSeq = SourceLocationSequence;
 // If ExpectedEncoded is provided, verify the encoded value too.
 // Loc is the raw (in-memory) form of SourceLocation.
 void roundTrip(SourceLocation::UIntTy Loc,
-               llvm::Optional<uint64_t> ExpectedEncoded = llvm::None) {
+               llvm::Optional<uint64_t> ExpectedEncoded = std::nullopt) {
   uint64_t ActualEncoded =
       SourceLocationEncoding::encode(SourceLocation::getFromRawEncoding(Loc));
   if (ExpectedEncoded)

diff  --git a/clang/unittests/StaticAnalyzer/CallDescriptionTest.cpp b/clang/unittests/StaticAnalyzer/CallDescriptionTest.cpp
index bfdb357d60aab..991a45d30103b 100644
--- a/clang/unittests/StaticAnalyzer/CallDescriptionTest.cpp
+++ b/clang/unittests/StaticAnalyzer/CallDescriptionTest.cpp
@@ -153,7 +153,7 @@ TEST(CallDescription, RequiredArguments) {
 TEST(CallDescription, LackOfRequiredArguments) {
   EXPECT_TRUE(tooling::runToolOnCode(
       std::unique_ptr<FrontendAction>(new CallDescriptionAction<>({
-          {{"foo", None}, true},
+          {{"foo", std::nullopt}, true},
           {{"foo", 2}, false},
       })),
       "void foo(int); void foo(int, int); void bar() { foo(1); }"));

diff  --git a/clang/unittests/Tooling/ASTSelectionTest.cpp b/clang/unittests/Tooling/ASTSelectionTest.cpp
index 531f9ac89f441..430562e9d2e0f 100644
--- a/clang/unittests/Tooling/ASTSelectionTest.cpp
+++ b/clang/unittests/Tooling/ASTSelectionTest.cpp
@@ -149,13 +149,13 @@ ForAllChildrenOf allChildrenOf(const SelectedASTNode &Node) {
 
 TEST(ASTSelectionFinder, CursorNoSelection) {
   findSelectedASTNodes(
-      " void f() { }", {1, 1}, None,
+      " void f() { }", {1, 1}, std::nullopt,
       [](Optional<SelectedASTNode> Node) { EXPECT_FALSE(Node); });
 }
 
 TEST(ASTSelectionFinder, CursorAtStartOfFunction) {
   findSelectedASTNodes(
-      "void f() { }", {1, 1}, None, [](Optional<SelectedASTNode> Node) {
+      "void f() { }", {1, 1}, std::nullopt, [](Optional<SelectedASTNode> Node) {
         EXPECT_TRUE(Node);
         checkNode<TranslationUnitDecl>(*Node, SourceSelectionKind::None,
                                        /*NumChildren=*/1);
@@ -525,15 +525,15 @@ TEST(ASTSelectionFinder, CorrectEndForObjectiveCImplementation) {
 @ end
 )";
   // Just after '@ end'
-  findSelectedASTNodes(Source, {5, 6}, None,
-                       [](Optional<SelectedASTNode> Node) {
-                         EXPECT_TRUE(Node);
-                         EXPECT_EQ(Node->Children.size(), 1u);
-                         checkNode<ObjCImplementationDecl>(
-                             Node->Children[0],
-                             SourceSelectionKind::ContainsSelection);
-                       },
-                       SelectionFinderVisitor::Lang_OBJC);
+  findSelectedASTNodes(
+      Source, {5, 6}, std::nullopt,
+      [](Optional<SelectedASTNode> Node) {
+        EXPECT_TRUE(Node);
+        EXPECT_EQ(Node->Children.size(), 1u);
+        checkNode<ObjCImplementationDecl>(
+            Node->Children[0], SourceSelectionKind::ContainsSelection);
+      },
+      SelectionFinderVisitor::Lang_OBJC);
 }
 
 const SelectedASTNode &checkFnBody(const Optional<SelectedASTNode> &Node,
@@ -688,7 +688,7 @@ void f2() {
 )";
   // No selection range.
   findSelectedASTNodesWithRange(
-      Source, {2, 2}, None,
+      Source, {2, 2}, std::nullopt,
       [](SourceRange SelectionRange, Optional<SelectedASTNode> Node) {
         EXPECT_TRUE(Node);
         Optional<CodeRangeASTSelection> SelectedCode =

diff  --git a/clang/unittests/Tooling/HeaderAnalysisTest.cpp b/clang/unittests/Tooling/HeaderAnalysisTest.cpp
index c6ba625c0c062..a2096d00d7e50 100644
--- a/clang/unittests/Tooling/HeaderAnalysisTest.cpp
+++ b/clang/unittests/Tooling/HeaderAnalysisTest.cpp
@@ -66,11 +66,11 @@ TEST(HeaderAnalysisTest, ParseIWYUPragma) {
   EXPECT_THAT(parseIWYUPragma("// IWYU pragma:   keep  me\netc"),
               ValueIs(Eq("keep  me")));
   EXPECT_THAT(parseIWYUPragma("/* IWYU pragma: keep */"), ValueIs(Eq("keep")));
-  EXPECT_EQ(parseIWYUPragma("//  IWYU pragma: keep"), llvm::None)
+  EXPECT_EQ(parseIWYUPragma("//  IWYU pragma: keep"), std::nullopt)
       << "Prefix is sensitive to whitespace";
-  EXPECT_EQ(parseIWYUPragma("// IWYU pragma:keep"), llvm::None)
+  EXPECT_EQ(parseIWYUPragma("// IWYU pragma:keep"), std::nullopt)
       << "Prefix is sensitive to whitespace";
-  EXPECT_EQ(parseIWYUPragma("/\n* IWYU pragma: keep */"), llvm::None)
+  EXPECT_EQ(parseIWYUPragma("/\n* IWYU pragma: keep */"), std::nullopt)
       << "Must start with /* or //";
 }
 

diff  --git a/clang/unittests/Tooling/SourceCodeBuildersTest.cpp b/clang/unittests/Tooling/SourceCodeBuildersTest.cpp
index 50167881e5cd6..a65f6d961185a 100644
--- a/clang/unittests/Tooling/SourceCodeBuildersTest.cpp
+++ b/clang/unittests/Tooling/SourceCodeBuildersTest.cpp
@@ -71,14 +71,14 @@ static llvm::Optional<TestMatch> matchStmt(StringRef StatementCode,
                                           {"-Wno-unused-value"});
   if (AstUnit == nullptr) {
     ADD_FAILURE() << "AST construction failed";
-    return llvm::None;
+    return std::nullopt;
   }
   ASTContext &Context = AstUnit->getASTContext();
   auto Matches = ast_matchers::match(wrapMatcher(Matcher), Context);
   // We expect a single, exact match for the statement.
   if (Matches.size() != 1) {
     ADD_FAILURE() << "Wrong number of matches: " << Matches.size();
-    return llvm::None;
+    return std::nullopt;
   }
   return TestMatch{std::move(AstUnit), MatchResult(Matches[0], &Context)};
 }

diff  --git a/clang/unittests/Tooling/StandardLibraryTest.cpp b/clang/unittests/Tooling/StandardLibraryTest.cpp
index 64c01b56eab88..01dc58c9ba481 100644
--- a/clang/unittests/Tooling/StandardLibraryTest.cpp
+++ b/clang/unittests/Tooling/StandardLibraryTest.cpp
@@ -94,13 +94,13 @@ TEST(StdlibTest, Recognizer) {
 
   stdlib::Recognizer Recognizer;
 
-  EXPECT_EQ(Recognizer(&VectorNonstd), llvm::None);
+  EXPECT_EQ(Recognizer(&VectorNonstd), std::nullopt);
   EXPECT_EQ(Recognizer(Vec), stdlib::Symbol::named("std::", "vector"));
   EXPECT_EQ(Recognizer(Nest), stdlib::Symbol::named("std::", "vector"));
   EXPECT_EQ(Recognizer(Clock),
             stdlib::Symbol::named("std::chrono::", "system_clock"));
   EXPECT_EQ(Recognizer(CDivT), stdlib::Symbol::named("", "div_t"));
-  EXPECT_EQ(Recognizer(Sec), llvm::None);
+  EXPECT_EQ(Recognizer(Sec), std::nullopt);
 }
 
 } // namespace

diff  --git a/clang/unittests/Tooling/StencilTest.cpp b/clang/unittests/Tooling/StencilTest.cpp
index 45dab154c7d6b..ee77933c428df 100644
--- a/clang/unittests/Tooling/StencilTest.cpp
+++ b/clang/unittests/Tooling/StencilTest.cpp
@@ -76,14 +76,14 @@ static llvm::Optional<TestMatch> matchStmt(StringRef StatementCode,
       wrapSnippet(ExtraPreface, StatementCode), {"-Wno-unused-value"});
   if (AstUnit == nullptr) {
     ADD_FAILURE() << "AST construction failed";
-    return llvm::None;
+    return std::nullopt;
   }
   ASTContext &Context = AstUnit->getASTContext();
   auto Matches = ast_matchers::match(wrapMatcher(Matcher), Context);
   // We expect a single, exact match for the statement.
   if (Matches.size() != 1) {
     ADD_FAILURE() << "Wrong number of matches: " << Matches.size();
-    return llvm::None;
+    return std::nullopt;
   }
   return TestMatch{std::move(AstUnit), MatchResult(Matches[0], &Context)};
 }

diff  --git a/clang/unittests/Tooling/Syntax/TokensTest.cpp b/clang/unittests/Tooling/Syntax/TokensTest.cpp
index 85fc837fbe2be..dfda6cbcfe9c0 100644
--- a/clang/unittests/Tooling/Syntax/TokensTest.cpp
+++ b/clang/unittests/Tooling/Syntax/TokensTest.cpp
@@ -661,10 +661,10 @@ TEST_F(TokenBufferTest, SpelledByExpanded) {
   EXPECT_THAT(Buffer.spelledForExpanded(findExpanded("b1 b2")),
               ValueIs(SameRange(findSpelled("split B").drop_front())));
   // Ranges not fully covering macro invocations should fail.
-  EXPECT_EQ(Buffer.spelledForExpanded(findExpanded("a1 a2")), llvm::None);
-  EXPECT_EQ(Buffer.spelledForExpanded(findExpanded("b2")), llvm::None);
+  EXPECT_EQ(Buffer.spelledForExpanded(findExpanded("a1 a2")), std::nullopt);
+  EXPECT_EQ(Buffer.spelledForExpanded(findExpanded("b2")), std::nullopt);
   EXPECT_EQ(Buffer.spelledForExpanded(findExpanded("a2 a3 split b1 b2")),
-            llvm::None);
+            std::nullopt);
 
   // Recursive macro invocations.
   recordTokens(R"cpp(
@@ -731,7 +731,7 @@ TEST_F(TokenBufferTest, SpelledByExpanded) {
     ID2(ID(a1), ID(a2) a3) ID2(a4, a5 a6 a7)
   )cpp");
   // Should fail, spans multiple arguments.
-  EXPECT_EQ(Buffer.spelledForExpanded(findExpanded("a1 a2")), llvm::None);
+  EXPECT_EQ(Buffer.spelledForExpanded(findExpanded("a1 a2")), std::nullopt);
   EXPECT_THAT(Buffer.spelledForExpanded(findExpanded("a2 a3")),
               ValueIs(SameRange(findSpelled("ID ( a2 ) a3"))));
   EXPECT_THAT(
@@ -742,7 +742,8 @@ TEST_F(TokenBufferTest, SpelledByExpanded) {
   EXPECT_THAT(Buffer.spelledForExpanded(findExpanded("a4 a5 a6 a7")),
               ValueIs(SameRange(findSpelled("ID2 ( a4 , a5 a6 a7 )"))));
   // Should fail, spans multiple invocations.
-  EXPECT_EQ(Buffer.spelledForExpanded(findExpanded("a1 a2 a3 a4")), llvm::None);
+  EXPECT_EQ(Buffer.spelledForExpanded(findExpanded("a1 a2 a3 a4")),
+            std::nullopt);
 
   // https://github.com/clangd/clangd/issues/1289
   recordTokens(R"cpp(
@@ -750,7 +751,7 @@ TEST_F(TokenBufferTest, SpelledByExpanded) {
     #define INDIRECT FOO(y)
     INDIRECT // expands to foo(y)
   )cpp");
-  EXPECT_EQ(Buffer.spelledForExpanded(findExpanded("y")), llvm::None);
+  EXPECT_EQ(Buffer.spelledForExpanded(findExpanded("y")), std::nullopt);
 
   recordTokens(R"cpp(
     #define FOO(X) a X b
@@ -776,7 +777,7 @@ TEST_F(TokenBufferTest, SpelledByExpanded) {
   )cpp");
   EXPECT_THAT(Buffer.spelledForExpanded(findExpanded("good")),
               ValueIs(SameRange(findSpelled("good"))));
-  EXPECT_EQ(Buffer.spelledForExpanded(findExpanded("bad")), llvm::None);
+  EXPECT_EQ(Buffer.spelledForExpanded(findExpanded("bad")), std::nullopt);
 
   recordTokens(R"cpp(
     #define PREV prev
@@ -787,7 +788,7 @@ TEST_F(TokenBufferTest, SpelledByExpanded) {
   )cpp");
   EXPECT_THAT(Buffer.spelledForExpanded(findExpanded("good")),
             ValueIs(SameRange(findSpelled("good"))));
-  EXPECT_EQ(Buffer.spelledForExpanded(findExpanded("bad")), llvm::None);
+  EXPECT_EQ(Buffer.spelledForExpanded(findExpanded("bad")), std::nullopt);
 
   recordTokens(R"cpp(
     #define ID(X) X
@@ -798,7 +799,7 @@ TEST_F(TokenBufferTest, SpelledByExpanded) {
   )cpp");
   EXPECT_THAT(Buffer.spelledForExpanded(findExpanded("good")),
             ValueIs(SameRange(findSpelled("good"))));
-  EXPECT_EQ(Buffer.spelledForExpanded(findExpanded("bad")), llvm::None);
+  EXPECT_EQ(Buffer.spelledForExpanded(findExpanded("bad")), std::nullopt);
 }
 
 TEST_F(TokenBufferTest, ExpandedTokensForRange) {
@@ -856,7 +857,7 @@ TEST_F(TokenBufferTest, ExpansionsOverlapping) {
                                   SameRange(findExpanded("1 + 2 + 3")))));
   // Only the first spelled token should be found.
   for (const auto &T : ID1.drop_front())
-    EXPECT_EQ(Buffer.expansionStartingAt(&T), llvm::None);
+    EXPECT_EQ(Buffer.expansionStartingAt(&T), std::nullopt);
 
   llvm::ArrayRef<syntax::Token> ID2 = findSpelled("ID ( ID ( 2 + 3 + 4 ) )");
   EXPECT_THAT(Buffer.expansionStartingAt(&ID2.front()),
@@ -864,7 +865,7 @@ TEST_F(TokenBufferTest, ExpansionsOverlapping) {
                                   SameRange(findExpanded("2 + 3 + 4")))));
   // Only the first spelled token should be found.
   for (const auto &T : ID2.drop_front())
-    EXPECT_EQ(Buffer.expansionStartingAt(&T), llvm::None);
+    EXPECT_EQ(Buffer.expansionStartingAt(&T), std::nullopt);
 
   EXPECT_THAT(Buffer.expansionsOverlapping(llvm::makeArrayRef(
                   findSpelled("1 + 2").data(), findSpelled("4").data())),
@@ -886,7 +887,7 @@ int b = 1;
                           SameRange(findExpanded("int a").take_front(0)))));
   // Only the first spelled token should be found.
   for (const auto &T : DefineFoo.drop_front())
-    EXPECT_EQ(Buffer.expansionStartingAt(&T), llvm::None);
+    EXPECT_EQ(Buffer.expansionStartingAt(&T), std::nullopt);
 
   llvm::ArrayRef<syntax::Token> PragmaOnce = findSpelled("# pragma once");
   EXPECT_THAT(
@@ -895,7 +896,7 @@ int b = 1;
                           SameRange(findExpanded("int b").take_front(0)))));
   // Only the first spelled token should be found.
   for (const auto &T : PragmaOnce.drop_front())
-    EXPECT_EQ(Buffer.expansionStartingAt(&T), llvm::None);
+    EXPECT_EQ(Buffer.expansionStartingAt(&T), std::nullopt);
 
   EXPECT_THAT(
       Buffer.expansionsOverlapping(findSpelled("FOO ; # pragma")),

diff  --git a/clang/unittests/Tooling/TransformerTest.cpp b/clang/unittests/Tooling/TransformerTest.cpp
index 73672820e1ddc..6d6ed33d8fd67 100644
--- a/clang/unittests/Tooling/TransformerTest.cpp
+++ b/clang/unittests/Tooling/TransformerTest.cpp
@@ -110,18 +110,18 @@ class ClangRefactoringTestBase : public testing::Test {
             "clang-tool", std::make_shared<PCHContainerOperations>(),
             FileContents)) {
       llvm::errs() << "Running tool failed.\n";
-      return None;
+      return std::nullopt;
     }
     if (ErrorCount != 0) {
       llvm::errs() << "Generating changes failed.\n";
-      return None;
+      return std::nullopt;
     }
     auto ChangedCode =
         applyAtomicChanges("input.cc", Code, Changes, ApplyChangesSpec());
     if (!ChangedCode) {
       llvm::errs() << "Applying changes failed: "
                    << llvm::toString(ChangedCode.takeError()) << "\n";
-      return None;
+      return std::nullopt;
     }
     return *ChangedCode;
   }


        


More information about the cfe-commits mailing list