Commit f39f340c by Abseil Team Committed by Copybara-Service

Breaks internal code

PiperOrigin-RevId: 529514670
Change-Id: Ia9a19da52f58c91d5131c2a17308a7a322db2714
parent b2abe7ad
...@@ -612,21 +612,6 @@ class StatusOr : private internal_statusor::StatusOrData<T>, ...@@ -612,21 +612,6 @@ class StatusOr : private internal_statusor::StatusOrData<T>,
return this->data_; return this->data_;
} }
// StatusOr<T>::AssignStatus()
//
// Sets the status of `absl::StatusOr<T>` to the given non-ok status value.
//
// NOTE: We recommend using the constructor and `operator=` where possible.
// This method is intended for use in generic programming, to enable setting
// the status of a `StatusOr<T>` when `T` may be `Status`. In that case, the
// constructor and `operator=` would assign into the inner value of type
// `Status`, rather than status of the `StatusOr` (b/280392796).
//
// REQUIRES: !Status(std::forward<U>(v)).ok(). This requirement is DCHECKed.
// In optimized builds, passing absl::OkStatus() here will have the effect
// of passing absl::StatusCode::kInternal as a fallback.
using internal_statusor::StatusOrData<T>::AssignStatus;
private: private:
using internal_statusor::StatusOrData<T>::Assign; using internal_statusor::StatusOrData<T>::Assign;
template <typename U> template <typename U>
......
...@@ -1844,37 +1844,4 @@ TEST(StatusOr, AssignmentFromTypeConvertibleToStatus) { ...@@ -1844,37 +1844,4 @@ TEST(StatusOr, AssignmentFromTypeConvertibleToStatus) {
} }
} }
TEST(StatusOr, StatusAssignmentFromStatusError) {
absl::StatusOr<absl::Status> statusor;
statusor.AssignStatus(absl::CancelledError());
EXPECT_FALSE(statusor.ok());
EXPECT_EQ(statusor.status(), absl::CancelledError());
}
#if GTEST_HAS_DEATH_TEST
TEST(StatusOr, StatusAssignmentFromStatusOk) {
EXPECT_DEBUG_DEATH(
{
absl::StatusOr<absl::Status> statusor;
// This will DCHECK.
statusor.AssignStatus(absl::OkStatus());
// In optimized mode, we are actually going to get error::INTERNAL for
// status here, rather than crashing, so check that.
EXPECT_FALSE(statusor.ok());
EXPECT_EQ(statusor.status().code(), absl::StatusCode::kInternal);
},
"An OK status is not a valid constructor argument to StatusOr<T>");
}
#endif
TEST(StatusOr, StatusAssignmentFromTypeConvertibleToStatus) {
CustomType<MyType, kConvToStatus> v;
absl::StatusOr<MyType> statusor;
statusor.AssignStatus(v);
EXPECT_FALSE(statusor.ok());
EXPECT_EQ(statusor.status(), static_cast<absl::Status>(v));
}
} // namespace } // namespace
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment