Revert "Add support for eachOf/allOf/anyOf variadic matchers in the dynamic layer."

Summary:
This reverts commit 3b082a3c72324aa3363b5184731740534c6b9a2b.

It breaks the build in c++11 mode.

Reviewers: klimek

CC: cfe-commits, revane

Differential Revision: http://llvm-reviews.chandlerc.com/D1533

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189368 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/ASTMatchers/Dynamic/VariantValue.cpp b/lib/ASTMatchers/Dynamic/VariantValue.cpp
index c350d78..87aca7d 100644
--- a/lib/ASTMatchers/Dynamic/VariantValue.cpp
+++ b/lib/ASTMatchers/Dynamic/VariantValue.cpp
@@ -38,9 +38,13 @@
         .str();
   }
 
-  virtual void makeTypedMatcher(MatcherOps &Ops) const {
-    if (Ops.canConstructFrom(*Matcher))
-      Ops.constructFrom(*Matcher);
+  virtual bool hasTypedMatcher(const MatcherOps &Ops) const {
+    return Ops.canConstructFrom(*Matcher);
+  }
+
+  virtual const DynTypedMatcher *getTypedMatcher(const MatcherOps &Ops) const {
+    assert(hasTypedMatcher(Ops));
+    return Matcher.get();
   }
 
 private:
@@ -76,49 +80,23 @@
     return (Twine("Matcher<") + Inner + ">").str();
   }
 
-  virtual void makeTypedMatcher(MatcherOps &Ops) const {
-    const DynTypedMatcher *Found = NULL;
+  virtual bool hasTypedMatcher(const MatcherOps &Ops) const {
+    return getTypedMatcher(Ops) != NULL;
+  }
+
+  virtual const DynTypedMatcher *getTypedMatcher(const MatcherOps &Ops) const {
+    const DynTypedMatcher* Found = NULL;
     for (size_t i = 0, e = Matchers.size(); i != e; ++i) {
       if (Ops.canConstructFrom(*Matchers[i])) {
-        if (Found)
-          return;
+        if (Found) return NULL;
         Found = Matchers[i];
       }
     }
-    if (Found)
-      Ops.constructFrom(*Found);
-  }
-
-  std::vector<const DynTypedMatcher *> Matchers;
-};
-
-class VariantMatcher::VariadicOpPayload : public VariantMatcher::Payload {
-public:
-  VariadicOpPayload(ast_matchers::internal::VariadicOperatorFunction Func,
-                    ArrayRef<VariantMatcher> Args)
-      : Func(Func), Args(Args) {}
-
-  virtual bool getSingleMatcher(const DynTypedMatcher *&Out) const {
-    return false;
-  }
-
-  virtual std::string getTypeAsString() const {
-    std::string Inner;
-    for (size_t i = 0, e = Args.size(); i != e; ++i) {
-      if (i != 0)
-        Inner += "&";
-      Inner += Args[i].getTypeAsString();
-    }
-    return Inner;
-  }
-
-  virtual void makeTypedMatcher(MatcherOps &Ops) const {
-    Ops.constructVariadicOperator(Func, Args);
+    return Found;
   }
 
 private:
-  const ast_matchers::internal::VariadicOperatorFunction Func;
-  const std::vector<VariantMatcher> Args;
+  std::vector<const DynTypedMatcher *> Matchers;
 };
 
 VariantMatcher::VariantMatcher() {}
@@ -132,12 +110,6 @@
   return VariantMatcher(new PolymorphicPayload(Matchers));
 }
 
-VariantMatcher VariantMatcher::VariadicOperatorMatcher(
-    ast_matchers::internal::VariadicOperatorFunction Func,
-    ArrayRef<VariantMatcher> Args) {
-  return VariantMatcher(new VariadicOpPayload(Func, Args));
-}
-
 bool VariantMatcher::getSingleMatcher(const DynTypedMatcher *&Out) const {
   if (Value) return Value->getSingleMatcher(Out);
   return false;