[Lldb-commits] [lldb] r339328 - Remove unused type Either from Utility library.

Tatyana Krasnukha via lldb-commits lldb-commits at lists.llvm.org
Thu Aug 9 04:42:28 PDT 2018


Author: tkrasnukha
Date: Thu Aug  9 04:42:28 2018
New Revision: 339328

URL: http://llvm.org/viewvc/llvm-project?rev=339328&view=rev
Log:
Remove unused type Either from Utility library.

Modified:
    lldb/trunk/include/lldb/Utility/Either.h
    lldb/trunk/lldb.xcodeproj/project.pbxproj

Modified: lldb/trunk/include/lldb/Utility/Either.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Utility/Either.h?rev=339328&r1=339327&r2=339328&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Utility/Either.h (original)
+++ lldb/trunk/include/lldb/Utility/Either.h Thu Aug  9 04:42:28 2018
@@ -12,115 +12,61 @@
 
 #include "llvm/ADT/Optional.h"
 
-#include <functional>
-
 namespace lldb_utility {
-template <typename T1, typename T2> class Either {
-private:
-  enum class Selected { One, Two };
-
-  Selected m_selected;
-  union {
-    T1 m_t1;
-    T2 m_t2;
-  };
-
-public:
-  Either(const T1 &t1) {
-    m_t1 = t1;
-    m_selected = Selected::One;
-  }
-
-  Either(const T2 &t2) {
-    m_t2 = t2;
-    m_selected = Selected::Two;
-  }
-
-  Either(const Either<T1, T2> &rhs) {
-    switch (rhs.m_selected) {
-    case Selected::One:
-      m_t1 = rhs.GetAs<T1>().getValue();
-      m_selected = Selected::One;
-      break;
-    case Selected::Two:
-      m_t2 = rhs.GetAs<T2>().getValue();
-      m_selected = Selected::Two;
-      break;
-    }
-  }
-
-  template <class X, typename std::enable_if<std::is_same<T1, X>::value>::type
-                         * = nullptr>
-  llvm::Optional<T1> GetAs() const {
-    switch (m_selected) {
-    case Selected::One:
-      return m_t1;
-    default:
-      return llvm::Optional<T1>();
-    }
-  }
-
-  template <class X, typename std::enable_if<std::is_same<T2, X>::value>::type
-                         * = nullptr>
-  llvm::Optional<T2> GetAs() const {
-    switch (m_selected) {
-    case Selected::Two:
-      return m_t2;
-    default:
-      return llvm::Optional<T2>();
-    }
-  }
-
-  template <class ResultType>
-  ResultType Apply(std::function<ResultType(T1)> if_T1,
-                   std::function<ResultType(T2)> if_T2) const {
-    switch (m_selected) {
-    case Selected::One:
-      return if_T1(m_t1);
-    case Selected::Two:
-      return if_T2(m_t2);
-    }
-  }
-
-  bool operator==(const Either<T1, T2> &rhs) {
-    return (GetAs<T1>() == rhs.GetAs<T1>()) && (GetAs<T2>() == rhs.GetAs<T2>());
-  }
-
-  explicit operator bool() {
-    switch (m_selected) {
-    case Selected::One:
-      return (bool)m_t1;
-    case Selected::Two:
-      return (bool)m_t2;
-    }
-  }
-
-  Either<T1, T2> &operator=(const Either<T1, T2> &rhs) {
-    switch (rhs.m_selected) {
-    case Selected::One:
-      m_t1 = rhs.GetAs<T1>().getValue();
-      m_selected = Selected::One;
-      break;
-    case Selected::Two:
-      m_t2 = rhs.GetAs<T2>().getValue();
-      m_selected = Selected::Two;
-      break;
-    }
-    return *this;
-  }
-
-  ~Either() {
-    switch (m_selected) {
-    case Selected::One:
-      m_t1.T1::~T1();
-      break;
-    case Selected::Two:
-      m_t2.T2::~T2();
-      break;
-    }
-  }
-};
-
+    template <typename T1, typename T2>
+    class Either {
+    private:
+        enum class Selected {
+            One, Two
+        };
+        
+        Selected m_selected;
+        union {
+            T1 m_t1;
+            T2 m_t2;
+        };
+        
+    public:
+        Either(const T1& t1)
+        {
+            m_t1 = t1;
+            m_selected = Selected::One;
+        }
+        
+        Either(const T2& t2)
+        {
+            m_t2 = t2;
+            m_selected = Selected::Two;
+        }
+        
+        template <class X, typename std::enable_if<std::is_same<T1,X>::value>::type * = nullptr >
+        llvm::Optional<T1>
+        GetAs()
+        {
+            switch (m_selected)
+            {
+                case Selected::One:
+                    return m_t1;
+                default:
+                    return llvm::Optional<T1>();
+            }
+        }
+        
+        template <class X, typename std::enable_if<std::is_same<T2,X>::value>::type * = nullptr >
+        llvm::Optional<T2>
+        GetAs()
+        {
+            switch (m_selected)
+            {
+                case Selected::Two:
+                    return m_t2;
+                default:
+                    return llvm::Optional<T2>();
+            }
+        }
+    };
+    
 } // namespace lldb_utility
 
 #endif // #ifndef liblldb_Either_h_
+

Modified: lldb/trunk/lldb.xcodeproj/project.pbxproj
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/lldb.xcodeproj/project.pbxproj?rev=339328&r1=339327&r2=339328&view=diff
==============================================================================
--- lldb/trunk/lldb.xcodeproj/project.pbxproj (original)
+++ lldb/trunk/lldb.xcodeproj/project.pbxproj Thu Aug  9 04:42:28 2018
@@ -1777,7 +1777,6 @@
 		26CFDCA2186163A4000E63E5 /* Editline.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Editline.cpp; sourceTree = "<group>"; };
 		26CFDCA01861638D000E63E5 /* Editline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Editline.h; path = include/lldb/Host/Editline.h; sourceTree = "<group>"; };
 		2326CF511BDD693B00A5CEAC /* EditlineTest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EditlineTest.cpp; sourceTree = "<group>"; };
-		9481FE6B1B5F2D9200DED357 /* Either.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = Either.h; path = include/lldb/Utility/Either.h; sourceTree = "<group>"; };
 		26D9FDC812F784FD0003F2EE /* EmulateInstruction.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = EmulateInstruction.cpp; path = source/Core/EmulateInstruction.cpp; sourceTree = "<group>"; };
 		26D9FDC612F784E60003F2EE /* EmulateInstruction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EmulateInstruction.h; path = include/lldb/Core/EmulateInstruction.h; sourceTree = "<group>"; };
 		9A22A15D135E30370024DDC3 /* EmulateInstructionARM.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EmulateInstructionARM.cpp; sourceTree = "<group>"; };
@@ -4510,7 +4509,6 @@
 				49CA96E81E6AAC6600C03FEE /* DataEncoder.cpp */,
 				49CA96F41E6AAC8E00C03FEE /* DataExtractor.h */,
 				49CA96E91E6AAC6600C03FEE /* DataExtractor.cpp */,
-				9481FE6B1B5F2D9200DED357 /* Either.h */,
 				26BC7DD310F1B7D500F91463 /* Endian.h */,
 				AFC2DCE61E6E2ED000283714 /* FastDemangle.cpp */,
 				AFC2DCED1E6E2F9800283714 /* FastDemangle.h */,




More information about the lldb-commits mailing list