[ADT] Use value instead of getValue() (NFC)
authorKazu Hirata <kazu@google.com>
Mon, 20 Jun 2022 01:34:33 +0000 (18:34 -0700)
committerKazu Hirata <kazu@google.com>
Mon, 20 Jun 2022 01:34:33 +0000 (18:34 -0700)
Since Optional<clang::FileEntryRef> uses a custom storage class, this
patch adds value to MapEntryOptionalStorage.

clang/include/clang/Basic/DirectoryEntry.h
llvm/include/llvm/ADT/Optional.h

index 0cfdb1d..d54b81d 100644 (file)
@@ -133,14 +133,26 @@ public:
   bool has_value() const { return MaybeRef.hasOptionalValue(); }
   bool hasValue() const { return MaybeRef.hasOptionalValue(); }
 
+  RefTy &value() & {
+    assert(has_value());
+    return MaybeRef;
+  }
   RefTy &getValue() & {
     assert(hasValue());
     return MaybeRef;
   }
+  RefTy const &value() const & {
+    assert(has_value());
+    return MaybeRef;
+  }
   RefTy const &getValue() const & {
     assert(hasValue());
     return MaybeRef;
   }
+  RefTy &&value() && {
+    assert(has_value());
+    return std::move(MaybeRef);
+  }
   RefTy &&getValue() && {
     assert(hasValue());
     return std::move(MaybeRef);
index 6276591..d1615d9 100644 (file)
@@ -300,53 +300,53 @@ public:
 
   void reset() { Storage.reset(); }
 
-  constexpr const T *getPointer() const { return &Storage.getValue(); }
-  T *getPointer() { return &Storage.getValue(); }
-  constexpr const T &value() const & { return Storage.getValue(); }
-  constexpr const T &getValue() const & { return Storage.getValue(); }
-  T &value() & { return Storage.getValue(); }
-  T &getValue() & { return Storage.getValue(); }
+  constexpr const T *getPointer() const { return &Storage.value(); }
+  T *getPointer() { return &Storage.value(); }
+  constexpr const T &value() const & { return Storage.value(); }
+  constexpr const T &getValue() const & { return Storage.value(); }
+  T &value() & { return Storage.value(); }
+  T &getValue() & { return Storage.value(); }
 
   constexpr explicit operator bool() const { return has_value(); }
   constexpr bool has_value() const { return Storage.has_value(); }
   constexpr bool hasValue() const { return Storage.has_value(); }
   constexpr const T *operator->() const { return getPointer(); }
   T *operator->() { return getPointer(); }
-  constexpr const T &operator*() const & { return getValue(); }
-  T &operator*() & { return getValue(); }
+  constexpr const T &operator*() const & { return value(); }
+  T &operator*() & { return value(); }
 
   template <typename U> constexpr T value_or(U &&alt) const & {
-    return has_value() ? getValue() : std::forward<U>(alt);
+    return has_value() ? value() : std::forward<U>(alt);
   }
   template <typename U> constexpr T getValueOr(U &&alt) const & {
-    return has_value() ? getValue() : std::forward<U>(alt);
+    return has_value() ? value() : std::forward<U>(alt);
   }
 
   /// Apply a function to the value if present; otherwise return None.
   template <class Function>
-  auto map(const Function &F) const & -> Optional<decltype(F(getValue()))> {
+  auto map(const Function &F) const & -> Optional<decltype(F(value()))> {
     if (*this)
-      return F(getValue());
+      return F(value());
     return None;
   }
 
-  T &&value() && { return std::move(Storage.getValue()); }
-  T &&getValue() && { return std::move(Storage.getValue()); }
-  T &&operator*() && { return std::move(Storage.getValue()); }
+  T &&value() && { return std::move(Storage.value()); }
+  T &&getValue() && { return std::move(Storage.value()); }
+  T &&operator*() && { return std::move(Storage.value()); }
 
   template <typename U> T value_or(U &&alt) && {
-    return has_value() ? std::move(getValue()) : std::forward<U>(alt);
+    return has_value() ? std::move(value()) : std::forward<U>(alt);
   }
   template <typename U> T getValueOr(U &&alt) && {
-    return has_value() ? std::move(getValue()) : std::forward<U>(alt);
+    return has_value() ? std::move(value()) : std::forward<U>(alt);
   }
 
   /// Apply a function to the value if present; otherwise return None.
   template <class Function>
   auto map(const Function &F)
-      && -> Optional<decltype(F(std::move(*this).getValue()))> {
+      && -> Optional<decltype(F(std::move(*this).value()))> {
     if (*this)
-      return F(std::move(*this).getValue());
+      return F(std::move(*this).value());
     return None;
   }
 };