[Mlir-commits] [mlir] e90a0d6 - [mlir] Add a FailureOr copy constructor from a FailureOr of a convertible type.
River Riddle
llvmlistbot at llvm.org
Tue Jul 27 13:45:30 PDT 2021
Author: River Riddle
Date: 2021-07-27T20:45:10Z
New Revision: e90a0d6381911fba87ae55fc1e6f877a3f3890d9
URL: https://github.com/llvm/llvm-project/commit/e90a0d6381911fba87ae55fc1e6f877a3f3890d9
DIFF: https://github.com/llvm/llvm-project/commit/e90a0d6381911fba87ae55fc1e6f877a3f3890d9.diff
LOG: [mlir] Add a FailureOr copy constructor from a FailureOr of a convertible type.
Added:
Modified:
mlir/include/mlir/Support/LogicalResult.h
Removed:
################################################################################
diff --git a/mlir/include/mlir/Support/LogicalResult.h b/mlir/include/mlir/Support/LogicalResult.h
index a38de7a901eac..cb5174e88b9f3 100644
--- a/mlir/include/mlir/Support/LogicalResult.h
+++ b/mlir/include/mlir/Support/LogicalResult.h
@@ -85,6 +85,10 @@ template <typename T> class LLVM_NODISCARD FailureOr : public Optional<T> {
FailureOr() : FailureOr(failure()) {}
FailureOr(T &&y) : Optional<T>(std::forward<T>(y)) {}
FailureOr(const T &y) : Optional<T>(y) {}
+ template <typename U,
+ std::enable_if_t<std::is_constructible<T, U>::value> * = nullptr>
+ FailureOr(const FailureOr<U> &other)
+ : Optional<T>(failed(other) ? Optional<T>() : Optional<T>(*other)) {}
operator LogicalResult() const { return success(this->hasValue()); }
More information about the Mlir-commits
mailing list