Skip to content

Commit d05077e

Browse files
committed
Fix test for just sender
1 parent 0587b8f commit d05077e

File tree

3 files changed

+16
-4
lines changed

3 files changed

+16
-4
lines changed

include/beman/execution26/detail/get_completion_behaviour.hpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,16 @@ struct get_completion_behaviour_t {
4545

4646
if constexpr (requires { typename new_sender_type::completion_behaviour; }) {
4747
return typename new_sender_type::completion_behaviour{};
48-
} else if constexpr (requires { ::std::move(new_sender).get_completion_behaviour(std::forward<Env>(env)); }) {
49-
return std::move(new_sender).get_completion_behaviour(std::forward<Env>(env));
48+
} else if constexpr (requires {
49+
new_sender(::std::forward<Sender>(sender), ::std::forward<Env>(env))
50+
.get_completion_behaviour(std::forward<Env>(env));
51+
}) {
52+
return new_sender(::std::forward<Sender>(sender), ::std::forward<Env>(env))
53+
.get_completion_behaviour(std::forward<Env>(env));
5054
} else if constexpr (::beman::execution26::detail::is_awaitable<
5155
new_sender_type,
5256
::beman::execution26::detail::env_promise<decayed_env>>) {
53-
if (new_sender(sender, env).await_ready()) {
57+
if (new_sender(::std::forward<Sender>(sender), ::std::forward<Env>(env)).await_ready()) {
5458
return completion_behaviour::inline_completion;
5559
} else {
5660
return completion_behaviour::unknown;

include/beman/execution26/detail/just.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ struct impls_for<just_t<Completion>> : ::beman::execution26::detail::default_imp
5050
}(::std::make_index_sequence<State::size()>{});
5151
};
5252

53-
static constexpr auto get_completion_behaviour = [](const auto&, const auto&, const auto&) {
53+
static constexpr auto get_completion_behaviour = [](const auto&, const auto&, const auto&...) {
5454
return ::beman::execution26::completion_behaviour::inline_completion;
5555
};
5656
};

tests/beman/execution26/exec-get-completion-behaviour.test.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
33

44
#include <beman/execution26/detail/get_completion_behaviour.hpp>
5+
#include <beman/execution26/detail/just.hpp>
56

67
#include <test/execution.hpp>
78

@@ -44,10 +45,17 @@ void test_constexpr_sender() {
4445
ASSERT(test_std::completion_behaviour::inline_completion == completion_behaviour);
4546
}
4647

48+
void test_just() {
49+
auto just = test_std::just();
50+
auto completion_behaviour = test_std::get_completion_behaviour(just, test_std::empty_env{});
51+
ASSERT(test_std::completion_behaviour::inline_completion == completion_behaviour);
52+
}
53+
4754
} // namespace
4855

4956
TEST(exec_get_completion_behaviour) {
5057
test_constexpr_awaitable();
5158
test_typedef_sender();
5259
test_constexpr_sender();
60+
test_just();
5361
}

0 commit comments

Comments
 (0)