[libcxx-commits] [libcxx] [libcxx][test] Silence nodiscard warnings for `std::expected` (PR #119174)
Stephan T. Lavavej via libcxx-commits
libcxx-commits at lists.llvm.org
Mon Dec 9 10:09:47 PST 2024
https://github.com/StephanTLavavej updated https://github.com/llvm/llvm-project/pull/119174
>From e50514564feaab58da9127a8776a4122b3e9d0b9 Mon Sep 17 00:00:00 2001
From: "Stephan T. Lavavej" <stl at nuwen.net>
Date: Sun, 8 Dec 2024 23:21:09 -0800
Subject: [PATCH 1/2] [libcxx][test] Silence nodiscard warnings for
std::expected
---
.../monadic/and_then.pass.cpp | 16 ++++++-------
.../monadic/or_else.pass.cpp | 20 ++++++++--------
.../monadic/transform.pass.cpp | 24 +++++++++----------
.../monadic/transform_error.pass.cpp | 20 ++++++++--------
4 files changed, 40 insertions(+), 40 deletions(-)
diff --git a/libcxx/test/std/utilities/expected/expected.expected/monadic/and_then.pass.cpp b/libcxx/test/std/utilities/expected/expected.expected/monadic/and_then.pass.cpp
index 293c2d39d4a325..3ac58b34eff8c6 100644
--- a/libcxx/test/std/utilities/expected/expected.expected/monadic/and_then.pass.cpp
+++ b/libcxx/test/std/utilities/expected/expected.expected/monadic/and_then.pass.cpp
@@ -263,8 +263,8 @@ constexpr void test_val_types() {
constexpr void test_sfinae() {
std::expected<NonConst, int> e(std::unexpected<int>(2));
auto l = [](auto&& x) { return x.non_const(); };
- e.and_then(l);
- std::move(e).and_then(l);
+ (void)e.and_then(l);
+ (void)std::move(e).and_then(l);
}
constexpr void test_move_only_error_type() {
@@ -272,14 +272,14 @@ constexpr void test_move_only_error_type() {
{
std::expected<int, MoveOnlyErrorType> e;
auto l = [](int) { return std::expected<int, MoveOnlyErrorType>{}; };
- std::move(e).and_then(l);
+ (void)std::move(e).and_then(l);
}
// Test const&&
{
const std::expected<int, MoveOnlyErrorType> e;
auto l = [](const int) { return std::expected<int, MoveOnlyErrorType>{}; };
- std::move(e).and_then(l);
+ (void)std::move(e).and_then(l);
}
}
@@ -296,10 +296,10 @@ constexpr bool test() {
return std::expected<int, int>();
};
- e.and_then(never_called);
- std::move(e).and_then(never_called);
- ce.and_then(never_called);
- std::move(ce).and_then(never_called);
+ (void)e.and_then(never_called);
+ (void)std::move(e).and_then(never_called);
+ (void)ce.and_then(never_called);
+ (void)std::move(ce).and_then(never_called);
return true;
}
diff --git a/libcxx/test/std/utilities/expected/expected.expected/monadic/or_else.pass.cpp b/libcxx/test/std/utilities/expected/expected.expected/monadic/or_else.pass.cpp
index b472a2756be9f9..2587ca60a8efd2 100644
--- a/libcxx/test/std/utilities/expected/expected.expected/monadic/or_else.pass.cpp
+++ b/libcxx/test/std/utilities/expected/expected.expected/monadic/or_else.pass.cpp
@@ -178,8 +178,8 @@ struct NonConst {
constexpr void test_sfinae() {
std::expected<int, NonConst> e{1};
auto l = [](auto&& x) { return x.non_const(); };
- e.or_else(l);
- std::move(e).or_else(l);
+ (void)e.or_else(l);
+ (void)std::move(e).or_else(l);
}
constexpr void test_move_only_error_type() {
@@ -187,28 +187,28 @@ constexpr void test_move_only_error_type() {
{
std::expected<int, MoveOnlyErrorType> e;
auto l = [](MoveOnlyErrorType&) { return std::expected<int, int>{}; };
- e.or_else(l);
+ (void)e.or_else(l);
}
// Test const&
{
const std::expected<int, MoveOnlyErrorType> e;
auto l = [](const MoveOnlyErrorType&) { return std::expected<int, int>{}; };
- e.or_else(l);
+ (void)e.or_else(l);
}
// Test &&
{
std::expected<int, MoveOnlyErrorType> e;
auto l = [](MoveOnlyErrorType&&) { return std::expected<int, int>{}; };
- std::move(e).or_else(l);
+ (void)std::move(e).or_else(l);
}
// Test const&&
{
const std::expected<int, MoveOnlyErrorType> e;
auto l = [](const MoveOnlyErrorType&&) { return std::expected<int, int>{}; };
- std::move(e).or_else(l);
+ (void)std::move(e).or_else(l);
}
}
@@ -225,10 +225,10 @@ constexpr bool test() {
return std::expected<int, int>();
};
- e.or_else(never_called);
- std::move(e).or_else(never_called);
- ce.or_else(never_called);
- std::move(ce).or_else(never_called);
+ (void)e.or_else(never_called);
+ (void)std::move(e).or_else(never_called);
+ (void)ce.or_else(never_called);
+ (void)std::move(ce).or_else(never_called);
return true;
}
diff --git a/libcxx/test/std/utilities/expected/expected.expected/monadic/transform.pass.cpp b/libcxx/test/std/utilities/expected/expected.expected/monadic/transform.pass.cpp
index 4fb21374aebe31..d7718205113d0b 100644
--- a/libcxx/test/std/utilities/expected/expected.expected/monadic/transform.pass.cpp
+++ b/libcxx/test/std/utilities/expected/expected.expected/monadic/transform.pass.cpp
@@ -187,13 +187,13 @@ constexpr void test_val_types() {
constexpr void test_take_val_return_void() {
std::expected<int, int> e(1);
int val = 0;
- e.transform([&val]<typename T>(T&&) -> void {
+ (void)e.transform([&val]<typename T>(T&&) -> void {
static_assert(std::is_same_v<T, int&>);
assert(val == 0);
val = 1;
});
assert(val == 1);
- std::move(e).transform([&val]<typename T>(T&&) -> void {
+ (void)std::move(e).transform([&val]<typename T>(T&&) -> void {
static_assert(std::is_same_v<T, int>);
assert(val == 1);
val = 2;
@@ -201,13 +201,13 @@ constexpr void test_take_val_return_void() {
const auto& ce = e;
assert(val == 2);
- ce.transform([&val]<typename T>(T&&) -> void {
+ (void)ce.transform([&val]<typename T>(T&&) -> void {
static_assert(std::is_same_v<T, const int&>);
assert(val == 2);
val = 3;
});
assert(val == 3);
- std::move(ce).transform([&val]<typename T>(T&&) -> void {
+ (void)std::move(ce).transform([&val]<typename T>(T&&) -> void {
static_assert(std::is_same_v<T, const int>);
assert(val == 3);
val = 4;
@@ -227,8 +227,8 @@ constexpr void test_direct_non_list_init() {
constexpr void test_sfinae() {
std::expected<NonConst, int> e(std::unexpected<int>(2));
auto l = [](auto&& x) { return x.non_const(); };
- e.transform(l);
- std::move(e).transform(l);
+ (void)e.transform(l);
+ (void)std::move(e).transform(l);
std::expected<int, int> e1(std::unexpected<int>(1));
const auto& ce1 = e1;
@@ -237,10 +237,10 @@ constexpr void test_sfinae() {
return std::expected<int, int>();
};
- e1.transform(never_called);
- std::move(e1).transform(never_called);
- ce1.and_then(never_called);
- std::move(ce1).transform(never_called);
+ (void)e1.transform(never_called);
+ (void)std::move(e1).transform(never_called);
+ (void)ce1.and_then(never_called);
+ (void)std::move(ce1).transform(never_called);
}
constexpr void test_move_only_error_type() {
@@ -248,14 +248,14 @@ constexpr void test_move_only_error_type() {
{
std::expected<int, MoveOnlyErrorType> e;
auto l = [](int) { return 0; };
- std::move(e).transform(l);
+ (void)std::move(e).transform(l);
}
// Test const&&
{
const std::expected<int, MoveOnlyErrorType> e;
auto l = [](const int) { return 0; };
- std::move(e).transform(l);
+ (void)std::move(e).transform(l);
}
}
diff --git a/libcxx/test/std/utilities/expected/expected.expected/monadic/transform_error.pass.cpp b/libcxx/test/std/utilities/expected/expected.expected/monadic/transform_error.pass.cpp
index d35788d9fef25e..a19e17b01f6a94 100644
--- a/libcxx/test/std/utilities/expected/expected.expected/monadic/transform_error.pass.cpp
+++ b/libcxx/test/std/utilities/expected/expected.expected/monadic/transform_error.pass.cpp
@@ -197,8 +197,8 @@ constexpr void test_direct_non_list_init() {
constexpr void test_sfinae() {
std::expected<int, NonConst> e(2);
auto l = [](auto&& x) { return x.non_const(); };
- e.transform_error(l);
- std::move(e).transform_error(l);
+ (void)e.transform_error(l);
+ (void)std::move(e).transform_error(l);
std::expected<int, int> e1;
const auto& ce1 = e1;
@@ -208,10 +208,10 @@ constexpr void test_sfinae() {
return 0;
};
- e1.transform_error(never_called);
- std::move(e1).transform_error(never_called);
- ce1.transform_error(never_called);
- std::move(ce1).transform_error(never_called);
+ (void)e1.transform_error(never_called);
+ (void)std::move(e1).transform_error(never_called);
+ (void)ce1.transform_error(never_called);
+ (void)std::move(ce1).transform_error(never_called);
}
constexpr void test_move_only_error_type() {
@@ -219,28 +219,28 @@ constexpr void test_move_only_error_type() {
{
std::expected<int, MoveOnlyErrorType> e;
auto l = [](MoveOnlyErrorType&) { return 0; };
- e.transform_error(l);
+ (void)e.transform_error(l);
}
// Test const&
{
const std::expected<int, MoveOnlyErrorType> e;
auto l = [](const MoveOnlyErrorType&) { return 0; };
- e.transform_error(l);
+ (void)e.transform_error(l);
}
// Test &&
{
std::expected<int, MoveOnlyErrorType> e;
auto l = [](MoveOnlyErrorType&&) { return 0; };
- std::move(e).transform_error(l);
+ (void)std::move(e).transform_error(l);
}
// Test const&&
{
const std::expected<int, MoveOnlyErrorType> e;
auto l = [](const MoveOnlyErrorType&&) { return 0; };
- std::move(e).transform_error(l);
+ (void)std::move(e).transform_error(l);
}
}
>From 26a24b5f48ca1f47ed0eda336211ec67e7ee82b5 Mon Sep 17 00:00:00 2001
From: "Stephan T. Lavavej" <stl at nuwen.net>
Date: Mon, 9 Dec 2024 10:08:35 -0800
Subject: [PATCH 2/2] Fix typo: `and_then` => `transform` in transform.pass.cpp
---
.../expected/expected.expected/monadic/transform.pass.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libcxx/test/std/utilities/expected/expected.expected/monadic/transform.pass.cpp b/libcxx/test/std/utilities/expected/expected.expected/monadic/transform.pass.cpp
index d7718205113d0b..cbd54d623c0f42 100644
--- a/libcxx/test/std/utilities/expected/expected.expected/monadic/transform.pass.cpp
+++ b/libcxx/test/std/utilities/expected/expected.expected/monadic/transform.pass.cpp
@@ -239,7 +239,7 @@ constexpr void test_sfinae() {
(void)e1.transform(never_called);
(void)std::move(e1).transform(never_called);
- (void)ce1.and_then(never_called);
+ (void)ce1.transform(never_called);
(void)std::move(ce1).transform(never_called);
}
More information about the libcxx-commits
mailing list