Give the failure module's two absences the reasons that hold, which are the request and the division of labour - #448
Merged
Conversation
…re the request and the division of labour `src/failure/mod.rs` heads a section "What is not here, said once so a green build is not read as covering it", and two of the three statements in it rested on reasons the tree refutes. The first said no caller in this tree reaches any of it yet, and named #27, #39 and #49 as why. Four modules reach it in code no `#[cfg(test)]` covers: `src/lifecycle/mod.rs:486` builds a cancellation, `src/playback/handover.rs:865` builds 0111's refusal, `src/server/destinations.rs:260` builds a refused redirect, and `src/server/retry.rs:471` reads these variants to decide what a call does next. Those files begin their test modules at 533, 881, 272 and 499. The sentence landed on 2026-08-28 and the first of the four on 2026-08-31, in a change that had no reason to open this header, with three more by 2026-09-03; none of them came from the three issues named as the reason, because a module does not need a transport to build a refusal out of what it has already decided. What that statement is for survives with the reason that holds: no request is made anywhere in this library, so nothing here has been built out of an answer a server sent. The set of modules that reach the point is derived rather than carried, with `git grep -n 'use crate::failure' -- 'src/**/*.rs'` handed to the reader and its bound stated - it counts a test module's own import too. The second said the retry-after hint is carried as given or absent because #38 is not built. 0038's policy is in the tree: `src/server/retry.rs` holds the attempt ceiling, the interval the first wait is drawn over and the deadline an attempt needs, and its own arm draws an interval where no hint was given, from 2026-08-31. The statement keeps what it is about - this type invents no number - and gives the division of labour as the reason instead. The third statement, that `answer-not-understood` carries an offset and a reading site rather than a field name because nothing here parses a body, was re-read and still holds. It is untouched. No behaviour changes. The edit is doc comments. Closes #447 Signed-off-by: Nils Lehnen <30603423+iderex@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The issue this belongs to
Closes #447
What changed
The section in
src/failure/mod.rsheaded "What is not here, said once so a greenbuild is not read as covering it" carried three statements, and two of them rested
on reasons the tree refutes.
The first said no caller in this tree reaches any of it yet. It now says the thing
that holds - no request is made anywhere in this library, so nothing here has been
built out of an answer a server sent - and records what was wrong, when the four
callers arrived, and that the three issues named as the reason were not what they
came from. The set of modules reaching this point is derived rather than carried,
with the command handed to the reader and its bound stated.
The second said the retry-after hint is carried as given or absent because #38 is
not built. It keeps what it is about, which is that this type invents no number,
and gives the division of labour as the reason: the assumed value belongs to the
retry policy, which is in the tree with its numbers.
The third statement is untouched and is named in the issue as read and still
holding.
No behaviour changes and no signature changes. The whole diff is doc comments.
What failure it prevents
A reader taking that section at its word and concluding that the library's own use
of the one point every failure is meant to pass through is still ahead of the
tree, when four modules already build or match one of its values outside every
test module. The section names itself as the place a green build must not be read
past, so a wrong sentence in it is read as coverage of exactly what it does not
cover.
Evidence
Read at the commit pushed,
4f59fa3, and at its base9fe6420.What the section said:
The four callers, and that every one of them is above its file's test module:
The sentence landed before the callers, and none of the four changes had a reason
to open this header:
0038's policy, which the second statement said was not built:
The statement kept in place of it still holds:
Checks run on this machine over the tree at
4f59fa3, with nothing uncommittedin it but an untracked directory no rule here reads:
What this does not cover
answer-not-understoodcarrying anoffset and a reading site rather than a field name, on the ground that nothing
here parses a body, was re-read while this was found and still holds. It is
named so the next reader knows it was read, and it is not edited.
every failure went through this point, proven over the tree rather than by a
test - is still not built and nothing here builds it.
pub modof this crate, and the tool that would say so is not run on this board:Seven names in the crate's own documentation do not resolve, and the tool that says so is not run here #414 recorded that and is where it stands.
cargo docwas not run here either,so this is a reading of
src/lib.rs,src/playback/mod.rsandsrc/server/mod.rsrather than a measurement.lint,shellcheck,coverage,mutationand the cross-toolchain leg.None of those was run on this machine. No shell file and no dependency is
touched, and the gate runs every one of them on this pull request.
comment's claim against the code around it, and this adds no rule.
Who has read it
Nobody other than the author. There is one account here, which is what
security/statements.jsonsays underscorecard/CodeReviewID, so the evidenceabove stands in place of a review rather than beside one.