From 55517e10e54cb16461e6d225122d7055c7b507a9 Mon Sep 17 00:00:00 2001 From: Bronek Kozicki Date: Sat, 1 Aug 2026 19:47:04 +0000 Subject: [PATCH] Restore the operator listings and drop the unneeded exemptions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reverts ee0fbd35, which took both docs checks red. The listings were not stale: docs_check_signatures validates them against the headers' doxygen XML and passed on the commit before. It dropped four `operator&` overloads — the short-circuit arms, in the expected and the optional group alike — and `operator|`'s `just` arm, duplicating four `some_optional` entries in their place; the six added exemptions name entities the coverage check already reaches, which it reports as unnecessary. Assisted-by: Claude:claude-opus-5 --- docs/coverage-exemptions.txt | 7 ------ docs/reference/conjoin.md | 46 ++++++++++++++++-------------------- docs/reference/disjoin.md | 15 ++++++++---- 3 files changed, 31 insertions(+), 37 deletions(-) diff --git a/docs/coverage-exemptions.txt b/docs/coverage-exemptions.txt index 17f4b4aa..3cdb7270 100644 --- a/docs/coverage-exemptions.txt +++ b/docs/coverage-exemptions.txt @@ -17,10 +17,3 @@ fn::recover_t::apply::operator(): as above fn::transform_error_t::apply::operator(): as above fn::transform_t::apply::operator(): as above fn::value_or_t::apply::operator(): as above - -fn::expected< void, Err >::copack_value: void specialization artifact, cannot have a copack of void -fn::just< void >::emplace: void specialization artifact, cannot emplace void -fn::just< void >::v_: void specialization artifact, has no payload -fn::just< void >::~just: void specialization artifact, handled by primary template -fn::optional< T & >::const_iterator: reference specialization artifact, only has iterator -fn::optional< T & >::copack_value: reference specialization artifact, cannot copack a reference diff --git a/docs/reference/conjoin.md b/docs/reference/conjoin.md index 117086f1..d6633b04 100644 --- a/docs/reference/conjoin.md +++ b/docs/reference/conjoin.md @@ -33,54 +33,50 @@ The binary conjunction each carrier declares; `conjoin` is its n-ary fold. ```cpp {title: "fn::operator&"} template -constexpr auto operator&(Lh &&lh, Rh &&rh); // (1) +constexpr auto operator&(Lh &&lh, Rh &&rh); // (1) +constexpr auto operator&(Lh &&, Rh &&rh) -> std::remove_cvref_t; // (2) +constexpr auto operator&(Lh &&lh, Rh &&) -> std::remove_cvref_t; // (3) +constexpr auto operator&(Lh &&lh, Rh &&rh); // (4) template -constexpr auto operator&(Lh &&lh, Rh &&rh); // (2) +constexpr auto operator&(Lh &&lh, Rh &&rh); // (5) template -constexpr auto operator&(Lh &&lh, Rh &&rh); // (3) +constexpr auto operator&(Lh &&lh, Rh &&rh); // (6) template -constexpr auto operator&(Lh &&lh, Rh &&rh) -> expected::value_type, typename std::remove_cvref_t::error_type>; // (4) +constexpr auto operator&(Lh &&lh, Rh &&rh) -> expected::value_type, typename std::remove_cvref_t::error_type>; // (7) template -constexpr auto operator&(Lh &&lh, Rh &&rh) -> expected::value_type, typename std::remove_cvref_t::error_type>; // (5) +constexpr auto operator&(Lh &&lh, Rh &&rh) -> expected::value_type, typename std::remove_cvref_t::error_type>; // (8) template -constexpr auto operator&(Lh &&, Rh &&rh); // (6) +constexpr auto operator&(Lh &&, Rh &&rh); // (9) template -constexpr auto operator&(Lh &&lh, Rh &&); // (7) +constexpr auto operator&(Lh &&lh, Rh &&); // (10) -template -constexpr auto operator&(Lh &&lh, Rh &&rh); // (8) - -template -constexpr auto operator&(Lh &&lh, Rh &&rh); // (9) - -template -constexpr auto operator&(Lh &&lh, Rh &&rh); // (10) - -template -constexpr auto operator&(Lh &&, Rh &&rh); // (11) +template +constexpr auto operator&(Lh &&lh, Rh &&rh); // (11) +constexpr auto operator&(Lh &&, Rh &&rh) -> std::remove_cvref_t; // (12) +constexpr auto operator&(Lh &&lh, Rh &&) -> std::remove_cvref_t; // (13) -template -constexpr auto operator&(Lh &&lh, Rh &&); // (12) +template +constexpr auto operator&(Lh &&lh, Rh &&rh); // (14) template -constexpr auto operator&(Lh &&lh, Rh &&rh); // (13) +constexpr auto operator&(Lh &&lh, Rh &&rh); // (15) template -constexpr auto operator&(Lh &&lh, Rh &&rh); // (14) +constexpr auto operator&(Lh &&lh, Rh &&rh); // (16) template -constexpr auto operator&(Lh &&, Rh &&rh); // (15) +constexpr auto operator&(Lh &&, Rh &&rh); // (17) template -constexpr auto operator&(Lh &&lh, Rh &&); // (16) +constexpr auto operator&(Lh &&lh, Rh &&); // (18) -constexpr auto operator&(auto &&lh, auto &&rh); // (17) +constexpr auto operator&(auto &&lh, auto &&rh); // (19) ``` :include-doxygen-doc: fn::operator& { args: "Lh &&, Rh &&" } diff --git a/docs/reference/disjoin.md b/docs/reference/disjoin.md index b3214881..3effe9e1 100644 --- a/docs/reference/disjoin.md +++ b/docs/reference/disjoin.md @@ -34,19 +34,24 @@ The binary disjunction each carrier declares; `disjoin` is its n-ary fold. ```cpp {title: "fn::operator|"} template -constexpr auto operator|(Lh &&lh, Rh &&rh); // (1) +constexpr auto operator|(Lh &&lh, Rh &&rh); // (1) +constexpr auto operator|(Lh &&, Rh &&) -> ::fn::just; // (2) +constexpr auto operator|(Lh &&lh, Rh &&rh); // (3) template -constexpr auto operator|(Lh &&lh, Rh &&rh); // (2) +constexpr auto operator|(Lh &&lh, Rh &&rh); // (4) + +template +constexpr auto operator|(Lh &&lh, Rh &&rh); // (5) template -constexpr auto operator|(Lh &&lh, Rh &&rh); // (3) +constexpr auto operator|(Lh &&lh, Rh &&rh); // (6) template -constexpr auto operator|(Lh &&lh, Rh &&rh); // (4) +constexpr auto operator|(Lh &&lh, Rh &&rh); // (7) template -constexpr auto operator|(Lh &&lh, Rh &&rh); // (5) +constexpr auto operator|(Lh &&lh, Rh &&rh); // (8) ``` :include-doxygen-doc: fn::operator| { args: "Lh &&, Rh &&" }