[clang-tools-extra] 43fbbcb - [clangd] llvm::Optional::value => operator*/operator->

Fangrui Song via cfe-commits cfe-commits at lists.llvm.org
Fri Dec 16 21:11:08 PST 2022


Author: Fangrui Song
Date: 2022-12-17T05:11:01Z
New Revision: 43fbbcbfa9a0cb0a0ce2e1c5df63e49e8acf2db2

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

LOG: [clangd] llvm::Optional::value => operator*/operator->

std::optional::value() has undesired exception checking semantics and is
unavailable in some older Xcode. The call sites block std::optional migration.

Added: 
    

Modified: 
    clang-tools-extra/clangd/unittests/ConfigYAMLTests.cpp
    clang-tools-extra/clangd/unittests/GlobalCompilationDatabaseTests.cpp
    clang-tools-extra/clangd/unittests/HeaderSourceSwitchTests.cpp
    clang-tools-extra/clangd/unittests/LSPBinderTests.cpp

Removed: 
    


################################################################################
diff  --git a/clang-tools-extra/clangd/unittests/ConfigYAMLTests.cpp b/clang-tools-extra/clangd/unittests/ConfigYAMLTests.cpp
index bbaac04f90dcd..6f12bc830767a 100644
--- a/clang-tools-extra/clangd/unittests/ConfigYAMLTests.cpp
+++ b/clang-tools-extra/clangd/unittests/ConfigYAMLTests.cpp
@@ -81,12 +81,12 @@ CompileFlags: { Add: [foo, bar] }
   EXPECT_THAT(Results[1].CompileFlags.Add, ElementsAre(val("b\naz\n")));
 
   ASSERT_TRUE(Results[2].Index.Background);
-  EXPECT_EQ("Skip", *Results[2].Index.Background.value());
+  EXPECT_EQ("Skip", **Results[2].Index.Background);
   EXPECT_THAT(Results[3].Diagnostics.ClangTidy.CheckOptions,
               ElementsAre(PairVal("IgnoreMacros", "true"),
                           PairVal("example-check.ExampleOption", "0")));
   EXPECT_TRUE(Results[3].Diagnostics.UnusedIncludes);
-  EXPECT_EQ("Strict", *Results[3].Diagnostics.UnusedIncludes.value());
+  EXPECT_EQ("Strict", **Results[3].Diagnostics.UnusedIncludes);
 }
 
 TEST(ParseYAML, Locations) {
@@ -162,10 +162,10 @@ TEST(ParseYAML, ExternalBlockNone) {
   ASSERT_THAT(Diags.Diagnostics, IsEmpty());
   ASSERT_EQ(Results.size(), 1u);
   ASSERT_TRUE(Results[0].Index.External);
-  EXPECT_FALSE(Results[0].Index.External.value()->File.has_value());
-  EXPECT_FALSE(Results[0].Index.External.value()->MountPoint.has_value());
-  EXPECT_FALSE(Results[0].Index.External.value()->Server.has_value());
-  EXPECT_THAT(*Results[0].Index.External.value()->IsNone, testing::Eq(true));
+  EXPECT_FALSE((*Results[0].Index.External)->File.has_value());
+  EXPECT_FALSE((*Results[0].Index.External)->MountPoint.has_value());
+  EXPECT_FALSE((*Results[0].Index.External)->Server.has_value());
+  EXPECT_THAT(*(*Results[0].Index.External)->IsNone, testing::Eq(true));
 }
 
 TEST(ParseYAML, ExternalBlock) {
@@ -181,10 +181,10 @@ TEST(ParseYAML, ExternalBlock) {
       Fragment::parseYAML(YAML.code(), "config.yaml", Diags.callback());
   ASSERT_EQ(Results.size(), 1u);
   ASSERT_TRUE(Results[0].Index.External);
-  EXPECT_THAT(*Results[0].Index.External.value()->File, val("foo"));
-  EXPECT_THAT(*Results[0].Index.External.value()->MountPoint, val("baz"));
+  EXPECT_THAT(*(*Results[0].Index.External)->File, val("foo"));
+  EXPECT_THAT(*(*Results[0].Index.External)->MountPoint, val("baz"));
   ASSERT_THAT(Diags.Diagnostics, IsEmpty());
-  EXPECT_THAT(*Results[0].Index.External.value()->Server, val("bar"));
+  EXPECT_THAT(*(*Results[0].Index.External)->Server, val("bar"));
 }
 
 TEST(ParseYAML, AllScopes) {

diff  --git a/clang-tools-extra/clangd/unittests/GlobalCompilationDatabaseTests.cpp b/clang-tools-extra/clangd/unittests/GlobalCompilationDatabaseTests.cpp
index 7aed47e94b593..2d4cddeb86709 100644
--- a/clang-tools-extra/clangd/unittests/GlobalCompilationDatabaseTests.cpp
+++ b/clang-tools-extra/clangd/unittests/GlobalCompilationDatabaseTests.cpp
@@ -330,9 +330,9 @@ TEST(GlobalCompilationDatabaseTest, CompileFlagsDirectory) {
   DirectoryBasedGlobalCompilationDatabase CDB(FS);
   auto Commands = CDB.getCompileCommand(testPath("x/y.cpp"));
   ASSERT_TRUE(Commands.has_value());
-  EXPECT_THAT(Commands.value().CommandLine, Contains("-DFOO"));
+  EXPECT_THAT(Commands->CommandLine, Contains("-DFOO"));
   // Make sure we pick the right working directory.
-  EXPECT_EQ(testPath("x"), Commands.value().Directory);
+  EXPECT_EQ(testPath("x"), Commands->Directory);
 }
 
 MATCHER_P(hasArg, Flag, "") {

diff  --git a/clang-tools-extra/clangd/unittests/HeaderSourceSwitchTests.cpp b/clang-tools-extra/clangd/unittests/HeaderSourceSwitchTests.cpp
index e401b672aa6f4..4a61ada1dc759 100644
--- a/clang-tools-extra/clangd/unittests/HeaderSourceSwitchTests.cpp
+++ b/clang-tools-extra/clangd/unittests/HeaderSourceSwitchTests.cpp
@@ -33,11 +33,11 @@ TEST(HeaderSourceSwitchTest, FileHeuristic) {
   Optional<Path> PathResult =
       getCorrespondingHeaderOrSource(FooCpp, FS.view(std::nullopt));
   EXPECT_TRUE(PathResult.has_value());
-  ASSERT_EQ(PathResult.value(), FooH);
+  ASSERT_EQ(*PathResult, FooH);
 
   PathResult = getCorrespondingHeaderOrSource(FooH, FS.view(std::nullopt));
   EXPECT_TRUE(PathResult.has_value());
-  ASSERT_EQ(PathResult.value(), FooCpp);
+  ASSERT_EQ(*PathResult, FooCpp);
 
   // Test with header file in capital letters and 
diff erent extension, source
   // file with 
diff erent extension
@@ -48,7 +48,7 @@ TEST(HeaderSourceSwitchTest, FileHeuristic) {
   FS.Files[FooHH];
   PathResult = getCorrespondingHeaderOrSource(FooC, FS.view(std::nullopt));
   EXPECT_TRUE(PathResult.has_value());
-  ASSERT_EQ(PathResult.value(), FooHH);
+  ASSERT_EQ(*PathResult, FooHH);
 
   // Test with both capital letters
   auto Foo2C = testPath("foo2.C");
@@ -57,7 +57,7 @@ TEST(HeaderSourceSwitchTest, FileHeuristic) {
   FS.Files[Foo2HH];
   PathResult = getCorrespondingHeaderOrSource(Foo2C, FS.view(std::nullopt));
   EXPECT_TRUE(PathResult.has_value());
-  ASSERT_EQ(PathResult.value(), Foo2HH);
+  ASSERT_EQ(*PathResult, Foo2HH);
 
   // Test with source file as capital letter and .hxx header file
   auto Foo3C = testPath("foo3.C");
@@ -67,7 +67,7 @@ TEST(HeaderSourceSwitchTest, FileHeuristic) {
   FS.Files[Foo3HXX];
   PathResult = getCorrespondingHeaderOrSource(Foo3C, FS.view(std::nullopt));
   EXPECT_TRUE(PathResult.has_value());
-  ASSERT_EQ(PathResult.value(), Foo3HXX);
+  ASSERT_EQ(*PathResult, Foo3HXX);
 
   // Test if asking for a corresponding file that doesn't exist returns an empty
   // string.

diff  --git a/clang-tools-extra/clangd/unittests/LSPBinderTests.cpp b/clang-tools-extra/clangd/unittests/LSPBinderTests.cpp
index f640a4220bdeb..97a4316928a8c 100644
--- a/clang-tools-extra/clangd/unittests/LSPBinderTests.cpp
+++ b/clang-tools-extra/clangd/unittests/LSPBinderTests.cpp
@@ -94,18 +94,17 @@ TEST(LSPBinderTest, IncomingCalls) {
   auto &RawPlusOne = RawHandlers.MethodHandlers["plusOne"];
   RawPlusOne(1, capture(Reply));
   ASSERT_TRUE(Reply.has_value());
-  EXPECT_THAT_EXPECTED(Reply.value(), llvm::HasValue(2));
+  EXPECT_THAT_EXPECTED(*Reply, llvm::HasValue(2));
   RawPlusOne("foo", capture(Reply));
   ASSERT_TRUE(Reply.has_value());
   EXPECT_THAT_EXPECTED(
-      Reply.value(),
-      llvm::FailedWithMessage(
-          HasSubstr("failed to decode plusOne request: expected integer")));
+      *Reply, llvm::FailedWithMessage(HasSubstr(
+                  "failed to decode plusOne request: expected integer")));
 
   auto &RawFail = RawHandlers.MethodHandlers["fail"];
   RawFail(2, capture(Reply));
   ASSERT_TRUE(Reply.has_value());
-  EXPECT_THAT_EXPECTED(Reply.value(), llvm::FailedWithMessage("X=2"));
+  EXPECT_THAT_EXPECTED(*Reply, llvm::FailedWithMessage("X=2"));
 
   auto &RawNotify = RawHandlers.NotificationHandlers["notify"];
   RawNotify(42);
@@ -118,7 +117,7 @@ TEST(LSPBinderTest, IncomingCalls) {
   auto &RawCmdPlusOne = RawHandlers.CommandHandlers["cmdPlusOne"];
   RawCmdPlusOne(1, capture(Reply));
   ASSERT_TRUE(Reply.has_value());
-  EXPECT_THAT_EXPECTED(Reply.value(), llvm::HasValue(2));
+  EXPECT_THAT_EXPECTED(*Reply, llvm::HasValue(2));
 
   // None of this generated any outgoing traffic.
   EXPECT_THAT(RawOutgoing.Received, IsEmpty());
@@ -140,7 +139,7 @@ TEST(LSPBinderTest, OutgoingCalls) {
   Echo(Foo{2}, capture(Reply));
   EXPECT_THAT(RawOutgoing.take("echo"), ElementsAre(llvm::json::Value(2)));
   ASSERT_TRUE(Reply.has_value());
-  EXPECT_THAT_EXPECTED(Reply.value(), llvm::HasValue(Foo{2}));
+  EXPECT_THAT_EXPECTED(*Reply, llvm::HasValue(Foo{2}));
 
   // JSON response is integer, can't be parsed as string.
   llvm::Optional<llvm::Expected<std::string>> WrongTypeReply;
@@ -148,14 +147,14 @@ TEST(LSPBinderTest, OutgoingCalls) {
   EXPECT_THAT(RawOutgoing.take("wrongSignature"),
               ElementsAre(llvm::json::Value(2)));
   ASSERT_TRUE(Reply.has_value());
-  EXPECT_THAT_EXPECTED(WrongTypeReply.value(),
+  EXPECT_THAT_EXPECTED(*WrongTypeReply,
                        llvm::FailedWithMessage(
                            HasSubstr("failed to decode wrongSignature reply")));
 
   Fail(Foo{2}, capture(Reply));
   EXPECT_THAT(RawOutgoing.take("fail"), ElementsAre(llvm::json::Value(2)));
   ASSERT_TRUE(Reply.has_value());
-  EXPECT_THAT_EXPECTED(Reply.value(), llvm::FailedWithMessage("Params=2"));
+  EXPECT_THAT_EXPECTED(*Reply, llvm::FailedWithMessage("Params=2"));
 }
 
 } // namespace


        


More information about the cfe-commits mailing list