diff --git a/mlir/include/mlir/IR/Visitors.h b/mlir/include/mlir/IR/Visitors.h --- a/mlir/include/mlir/IR/Visitors.h +++ b/mlir/include/mlir/IR/Visitors.h @@ -92,10 +92,8 @@ template < typename FuncTy, typename ArgT = detail::first_argument, typename RetT = decltype(std::declval()(std::declval()))> -typename std::enable_if::value || - std::is_same::value || - std::is_same::value, - RetT>::type +typename std::enable_if< + llvm::is_one_of::value, RetT>::type walk(Operation *op, FuncTy &&callback) { return walk(op, function_ref(callback)); } @@ -109,11 +107,10 @@ template < typename FuncTy, typename ArgT = detail::first_argument, typename RetT = decltype(std::declval()(std::declval()))> -typename std::enable_if::value && - !std::is_same::value && - !std::is_same::value && - std::is_same::value, - RetT>::type +typename std::enable_if< + !llvm::is_one_of::value && + std::is_same::value, + RetT>::type walk(Operation *op, FuncTy &&callback) { auto wrapperFn = [&](Operation *op) { if (auto derivedOp = dyn_cast(op)) @@ -135,11 +132,10 @@ template < typename FuncTy, typename ArgT = detail::first_argument, typename RetT = decltype(std::declval()(std::declval()))> -typename std::enable_if::value && - !std::is_same::value && - !std::is_same::value && - std::is_same::value, - RetT>::type +typename std::enable_if< + !llvm::is_one_of::value && + std::is_same::value, + RetT>::type walk(Operation *op, FuncTy &&callback) { auto wrapperFn = [&](Operation *op) { if (auto derivedOp = dyn_cast(op))