Index: mlir/include/mlir/IR/OpImplementation.h =================================================================== --- mlir/include/mlir/IR/OpImplementation.h +++ mlir/include/mlir/IR/OpImplementation.h @@ -302,6 +302,7 @@ llvm::interleaveComma(types, p); return p; } + template inline std::enable_if_t::value, AsmPrinterT &> @@ -309,6 +310,18 @@ llvm::interleaveComma(types, p); return p; } + +// Prevent matching the TypeRange version above for ValueRange +// printing through base AsmPrinter. This is needed so that the +// ValueRange printing behaviour does not change from printing +// the SSA values to printing the types for the operands when +// using AsmPrinter instead of OpAsmPrinter. +template +inline std::enable_if_t::value && + std::is_convertible::value, + AsmPrinterT &> +operator<<(AsmPrinterT &p, const T &other) = delete; + template inline std::enable_if_t::value, AsmPrinterT &>