]> granicus.if.org Git - clang/commitdiff
Reverting r176019. Corrupt patch.
authorEdwin Vane <edwin.vane@intel.com>
Mon, 25 Feb 2013 14:09:28 +0000 (14:09 +0000)
committerEdwin Vane <edwin.vane@intel.com>
Mon, 25 Feb 2013 14:09:28 +0000 (14:09 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176021 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/ASTMatchers/ASTMatchersInternal.h
unittests/ASTMatchers/ASTMatchersTest.cpp

index cdbde76247f1ba6a8398f8a4908ef82f60a21280..e18e325942268c41ff944602ce35380397cec772 100644 (file)
@@ -353,23 +353,6 @@ inline Matcher<T> makeMatcher(MatcherInterface<T> *Implementation) {
   return Matcher<T>(Implementation);
 }
 
-/// \brief Metafunction to determine if type T has a member called getDecl.
-template <typename T> struct has_getDecl {
-  struct Default { int getDecl; };
-  struct Derived : T, Default { };
-
-  template<typename C, C> struct CheckT;
-
-  // If T::getDecl exists, an ambiguity arises and CheckT will
-  // not be instantiable. This makes f(...) the only available
-  // overload.
-  template<typename C>
-  static char (&f(CheckT<int Default::*, &C::getDecl>*))[1];
-  template<typename C> static char (&f(...))[2];
-
-  static bool const value = sizeof(f<Derived>(0)) == 2;
-};
-
 /// \brief Matches declarations for QualType and CallExpr.
 ///
 /// Type argument DeclMatcherT is required by PolymorphicMatcherWithParam1 but
@@ -393,13 +376,11 @@ private:
   /// \brief If getDecl exists as a member of U, returns whether the inner
   /// matcher matches Node.getDecl().
   template <typename U>
-  bool matchesSpecialized(
-      const U &Node, ASTMatchFinder *Finder, BoundNodesTreeBuilder *Builder,
-      typename llvm::enable_if<has_getDecl<U>, int>::type = 0) const {
+  bool matchesSpecialized(const U &Node, ASTMatchFinder *Finder, 
+                          BoundNodesTreeBuilder *Builder) const {
     return matchesDecl(Node.getDecl(), Finder, Builder);
   }
 
-
   /// \brief Extracts the CXXRecordDecl or EnumDecl of a QualType and returns
   /// whether the inner matcher matches on it.
   bool matchesSpecialized(const QualType &Node, ASTMatchFinder *Finder,
@@ -412,15 +393,6 @@ private:
     return matchesDecl(Node->getAsCXXRecordDecl(), Finder, Builder);
   }
 
-  /// \brief Gets the TemplateDecl from a TemplateSpecializationType
-  /// and returns whether the inner matches on it.
-  bool matchesSpecialized(const TemplateSpecializationType &Node,
-                          ASTMatchFinder *Finder,
-                          BoundNodesTreeBuilder *Builder) const {
-    return matchesDecl(Node.getTemplateName().getAsTemplateDecl(),
-                       Finder, Buidler);
-  }
-
   /// \brief Extracts the Decl of the callee of a CallExpr and returns whether
   /// the inner matcher matches on it.
   bool matchesSpecialized(const CallExpr &Node, ASTMatchFinder *Finder,
index a759df9070f562a13db235f98a983eb987c38916..63017473f427a52d03de19662f3ac224e4f334db 100644 (file)
@@ -818,12 +818,6 @@ TEST(HasDeclaration, HasDeclarationOfEnumType) {
                           qualType(hasDeclaration(enumDecl(hasName("X")))))))));
 }
 
-TEST(HasDeclaration, HasGetDeclTraitTest) {
-  EXPECT_TRUE(internal::has_getDecl<TypedefType>::value);
-  EXPECT_TRUE(internal::has_getDecl<RecordType>::value);
-  EXPECT_FALSE(internal::has_getDecl<TemplateSpecializationType>::value);
-}
-
 TEST(HasDeclaration, HasDeclarationOfTypeWithDecl) {
   EXPECT_TRUE(matches("typedef int X; X a;",
                       varDecl(hasName("a"),