Enable OwningRewritePatternList insert overload with parameter pack only when
authorSmit Hinsu <hinsu@google.com>
Tue, 3 Sep 2019 02:59:08 +0000 (19:59 -0700)
committerA. Unique TensorFlower <gardener@tensorflow.org>
Tue, 3 Sep 2019 02:59:56 +0000 (19:59 -0700)
there is at least one template pattern type

Also remove the other insert overload with pattern pointer as there are no existing users nor any potential known use-case.

PiperOrigin-RevId: 266842920

mlir/include/mlir/IR/PatternMatch.h

index b531a61..f3ed316 100644 (file)
@@ -408,13 +408,12 @@ public:
   // Pattern Insertion
   //===--------------------------------------------------------------------===//
 
-  void insert(RewritePattern *pattern) { patterns.emplace_back(pattern); }
-
   /// Add an instance of each of the pattern types 'Ts' to the pattern list with
   /// the given arguments.
-  // Note: ConstructorArg is necessary here to separate the two variadic lists.
+  /// Note: ConstructorArg is necessary here to separate the two variadic lists.
   template <typename... Ts, typename ConstructorArg,
-            typename... ConstructorArgs>
+            typename... ConstructorArgs,
+            typename = std::enable_if_t<sizeof...(Ts) != 0>>
   void insert(ConstructorArg &&arg, ConstructorArgs &&... args) {
     // The following expands a call to emplace_back for each of the pattern
     // types 'Ts'. This magic is necessary due to a limitation in the places