Skip to content

Commit 292c912

Browse files
committed
Simplify result/expected.h
- The `CF_EXPECT*` macros never used the `Result&&` versions of `TypeIsSuccess` and `OutcomeDereference`. - One use of `type_traits` conditional logic in `OutcomeDereference` was replaced with overload resolution.
1 parent e1f5d38 commit 292c912

File tree

2 files changed

+5
-18
lines changed

2 files changed

+5
-18
lines changed

base/cvd/cuttlefish/result/expect.h

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,11 @@ T OutcomeDereference(std::optional<T>&& value) {
5656
return std::move(*value);
5757
}
5858

59+
inline void OutcomeDereference(Result<void>&&) {}
60+
5961
template <typename T>
60-
typename std::conditional_t<std::is_void_v<T>, bool, T> OutcomeDereference(
61-
Result<T>&& result) {
62-
if constexpr (std::is_void<T>::value) {
63-
return result.ok();
64-
} else {
65-
return std::move(*result);
66-
}
62+
T OutcomeDereference(Result<T>&& result) {
63+
return std::move(*result);
6764
}
6865

6966
template <typename T>
@@ -84,11 +81,6 @@ bool TypeIsSuccess(Result<T>& value) {
8481
return value.ok();
8582
}
8683

87-
template <typename T>
88-
bool TypeIsSuccess(Result<T>&& value) {
89-
return value.ok();
90-
}
91-
9284
inline auto ErrorFromType(bool) { return StackTraceError(); }
9385

9486
template <typename T>
@@ -101,11 +93,6 @@ auto ErrorFromType(Result<T>& value) {
10193
return value.error();
10294
}
10395

104-
template <typename T>
105-
auto ErrorFromType(Result<T>&& value) {
106-
return value.error();
107-
}
108-
10996
#define CF_EXPECT_OVERLOAD(_1, _2, NAME, ...) NAME
11097

11198
#define CF_EXPECT2(RESULT, MSG) \

base/cvd/cuttlefish/result/result.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,5 @@
1515

1616
#pragma once
1717

18-
#include "cuttlefish/result/expect.h" // IWYU pragma: export
18+
#include "cuttlefish/result/expect.h" // IWYU pragma: export
1919
#include "cuttlefish/result/result_type.h" // IWYU pragma: export

0 commit comments

Comments
 (0)