@@ -226,16 +226,10 @@ namespace exec {
226226 struct __item_types { };
227227 } // namespace __debug
228228
229- namespace __errs {
230- using namespace STDEXEC ;
231- inline constexpr __mstring __unrecognized_sequence_type_diagnostic =
232- " The given type cannot be used as a sequence with the given environment "
233- " because the attempt to compute the item types failed." _mstr;
234- } // namespace __errs
235-
236- template <STDEXEC::__mstring _Diagnostic = __errs::__unrecognized_sequence_type_diagnostic>
237229 struct _UNRECOGNIZED_SEQUENCE_TYPE_ ;
238230
231+ struct _FAILED_TO_COMPUTE_SEQUENCE_ITEM_TYPES_ { };
232+
239233#if STDEXEC_NO_STD_CONSTEXPR_EXCEPTIONS()
240234
241235 template <class ... _What, class ... _Values>
@@ -268,7 +262,8 @@ namespace exec {
268262
269263 template <class _Sequence , class ... _Env>
270264 using __unrecognized_sequence_error_t = STDEXEC::__mexception<
271- _UNRECOGNIZED_SEQUENCE_TYPE_<>,
265+ STDEXEC::_WHAT_ (_UNRECOGNIZED_SEQUENCE_TYPE_),
266+ STDEXEC::_WHY_ (_FAILED_TO_COMPUTE_SEQUENCE_ITEM_TYPES_),
272267 _WITH_PRETTY_SEQUENCE_<_Sequence>,
273268 STDEXEC::_WITH_ENVIRONMENT_ (_Env)...
274269 >;
@@ -301,6 +296,7 @@ namespace exec {
301296
302297 template <class _Sequence , class ... _Env>
303298 concept __with_member_alias = __mvalid<__member_alias_t , _Sequence, _Env...>;
299+
304300 template <class _Sequence , class ... _Env>
305301 concept __with_consteval_static_member =
306302 __mvalid<__consteval_static_member_result_t , _Sequence, _Env...>;
@@ -393,12 +389,12 @@ namespace exec {
393389 concept sequence_sender = STDEXEC::sender_in<_Sequence, _Env...>
394390 && enable_sequence_sender<STDEXEC::__decay_t <_Sequence>>;
395391
396- template <class _Item >
397392 struct _SEQUENCE_ITEM_IS_NOT_A_WELL_FORMED_SENDER_ { };
398393
399394 template <class _Sequence , class _Item >
400395 constexpr auto __check_item (_Item*) -> STDEXEC::__mexception<
401- _SEQUENCE_ITEM_IS_NOT_A_WELL_FORMED_SENDER_<_Item>,
396+ STDEXEC::_WHAT_(_SEQUENCE_ITEM_IS_NOT_A_WELL_FORMED_SENDER_),
397+ STDEXEC::_WITH_PRETTY_SENDER_<_Item>,
402398 _WITH_PRETTY_SEQUENCE_<_Sequence>
403399 >;
404400
@@ -410,13 +406,17 @@ namespace exec {
410406 requires STDEXEC::__merror<_Items>
411407 auto __check_items (_Items*) -> _Items;
412408
413- template <class _Item >
414409 struct _SEQUENCE_GET_ITEM_TYPES_RESULT_IS_NOT_WELL_FORMED_ { };
415410
411+ template <template <class ...> class _Class >
412+ struct _EXPECTED_A_SPECIALIZATION_OF_ { };
413+
416414 template <class _Sequence , class _Items >
417415 requires (!STDEXEC::__merror<_Items>)
418416 auto __check_items (_Items*) -> STDEXEC::__mexception<
419- _SEQUENCE_GET_ITEM_TYPES_RESULT_IS_NOT_WELL_FORMED_<_Items>,
417+ STDEXEC::_WHAT_(_SEQUENCE_GET_ITEM_TYPES_RESULT_IS_NOT_WELL_FORMED_),
418+ STDEXEC::_WHY_(_EXPECTED_A_SPECIALIZATION_OF_<item_types>),
419+ STDEXEC::_WITH_TYPE_<_Items>,
420420 _WITH_PRETTY_SEQUENCE_<_Sequence>
421421 >;
422422
@@ -435,12 +435,14 @@ namespace exec {
435435 requires STDEXEC::__merror<_Sequence>
436436 auto __check_sequence (_Sequence*) -> _Sequence;
437437
438- struct _SEQUENCE_GET_ITEM_TYPES_IS_NOT_WELL_FORMED_ { };
438+ struct _ERROR_WHILE_COMPUTING_THE_SEQUENCE_ITEM_TYPES_ { };
439+ struct _THE_CALL_TO_GET_ITEM_TYPES_IS_ILL_FORMED_ { };
439440
440441 template <class _Sequence >
441442 requires (!STDEXEC::__merror<_Sequence>) && (!STDEXEC::__mvalid<__item_types_of_t , _Sequence>)
442443 auto __check_sequence (_Sequence*) -> STDEXEC::__mexception<
443- _SEQUENCE_GET_ITEM_TYPES_IS_NOT_WELL_FORMED_,
444+ STDEXEC::_WHAT_(_ERROR_WHILE_COMPUTING_THE_SEQUENCE_ITEM_TYPES_),
445+ STDEXEC::_WHY_(_THE_CALL_TO_GET_ITEM_TYPES_IS_ILL_FORMED_),
444446 _WITH_PRETTY_SEQUENCE_<_Sequence>
445447 >;
446448
@@ -525,12 +527,12 @@ namespace exec {
525527 _Data __data_{};
526528 };
527529
528- template <class _Item >
529530 struct _MISSING_SET_NEXT_OVERLOAD_FOR_ITEM_ { };
530531
531532 template <class _Receiver , class _Item >
532533 constexpr auto __try_item (_Item*) -> STDEXEC::__mexception<
533- _MISSING_SET_NEXT_OVERLOAD_FOR_ITEM_<_Item>,
534+ STDEXEC::_WHAT_(_MISSING_SET_NEXT_OVERLOAD_FOR_ITEM_),
535+ STDEXEC::_WITH_PRETTY_SENDER_<_Item>,
534536 STDEXEC::_WITH_RECEIVER_(_Receiver)
535537 >;
536538
0 commit comments