From 2a806490844cb84de6253ee7494a3ac119e0048c Mon Sep 17 00:00:00 2001 From: Denis Blank Date: Sun, 25 Nov 2018 17:14:23 +0100 Subject: [PATCH] Make exception and empty results returning a void hint --- include/continuable/detail/core/base.hpp | 4 ++-- .../single/test-continuable-result.cpp | 24 +++++++++++++++---- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/include/continuable/detail/core/base.hpp b/include/continuable/detail/core/base.hpp index da5009d..5d99a7f 100644 --- a/include/continuable/detail/core/base.hpp +++ b/include/continuable/detail/core/base.hpp @@ -229,7 +229,7 @@ auto invoker_of(Hint, traits::identity) { std::forward(next_callback)); CONTINUABLE_BLOCK_TRY_END*/ }, - Hint{}); + traits::identity<>{}); } /// - exceptional_result -> Hint @@ -246,7 +246,7 @@ auto invoker_of(Hint, traits::identity) { std::forward(next_callback)); CONTINUABLE_BLOCK_TRY_END*/ }, - Hint{}); + traits::identity<>{}); } /// - result -> Args... diff --git a/test/unit-test/single/test-continuable-result.cpp b/test/unit-test/single/test-continuable-result.cpp index f712dfe..28be0c5 100644 --- a/test/unit-test/single/test-continuable-result.cpp +++ b/test/unit-test/single/test-continuable-result.cpp @@ -178,7 +178,12 @@ TEST(result_copyable_tests, is_copy_assignable) { TYPED_TEST(result_all_tests, is_constructible_from_error_helper) { cti::exceptional_result e1(supply_test_exception()); - { auto e2 = e1; } + { + TypeParam e2 = e1; + EXPECT_FALSE(bool(e2)); + EXPECT_FALSE(e2.is_value()); + EXPECT_TRUE(e2.is_exception()); + } auto e2 = std::move(e1); TypeParam e(std::move(e2)); @@ -190,7 +195,12 @@ TYPED_TEST(result_all_tests, is_constructible_from_error_helper) { TYPED_TEST(result_all_tests, is_assignable_from_error_helper) { cti::exceptional_result e1(supply_test_exception()); - { auto e2 = e1; } + { + TypeParam e2 = e1; + EXPECT_FALSE(bool(e2)); + EXPECT_FALSE(e2.is_value()); + EXPECT_TRUE(e2.is_exception()); + } auto e2 = std::move(e1); TypeParam e; @@ -203,7 +213,10 @@ TYPED_TEST(result_all_tests, is_assignable_from_error_helper) { TYPED_TEST(result_all_tests, is_constructible_from_empty_helper) { cti::empty_result e1; - { auto e2 = e1; } + { + auto e2 = e1; + (void)e2; + } auto e2 = std::move(e1); TypeParam e(std::move(e2)); @@ -215,7 +228,10 @@ TYPED_TEST(result_all_tests, is_constructible_from_empty_helper) { TYPED_TEST(result_all_tests, is_assignable_from_empty_helper) { cti::empty_result e1; - { auto e2 = e1; } + { + auto e2 = e1; + (void)e2; + } auto e2 = std::move(e1); TypeParam e;