docs(javadoc): document the last 167 public members, closing the gap to 2 of 1614 - #200
Merged
Conversation
…to 2 of 1614 Completes the javadoc work #199 started. Every public member the javadoc tool checks now carries a comment, bar two multi-line field declarations noted below. The generated text is derived from each member's own name and signature, not templated: analyze*/record*/reset*/register* get a description matching what they do in this codebase (record, then analyse at the end of the run, then reset between runs), no-argument accessors get {@return ...}, and every parameter gets an @param, with booleans phrased as "the {@code name} flag" so the sentence is grammatical rather than "the succeeded". This is the fourth attempt at this tail, and the first that passes. The previous three each broke something the Java compiler could not see, because a javadoc comment is syntactically legal almost anywhere: - a pattern that matched method calls and control flow as well as declarations, inserting 6,034 blocks inside method bodies across 176 files; - comments placed between an annotation and its field, which PMD's DanglingJavadoc caught; - a rebuild that replaced existing prose with a generated stub, turning ConcurrencyRunner's detailed execute() javadoc into "Execute.". Each was reverted rather than pushed. What fixed it was the backward scan: it now skips blank lines, // comments and single-line annotations, and walks over the body of a multi-line annotation whose last line is a bare ')' rather than an '@' line. Skipping // comments is what stopped duplicate blocks being added to members that were already documented; walking multi-line annotations is what stopped the javadoc landing between the annotation and the method. Verification is three gates rather than compilation alone, since compilation was the tool that kept saying yes: javadoc:jar reports 0 errors, PMD reports 0 violations, and mvn verify is green across all four modules. Left undone deliberately: two multi-line field declarations in PipelineMonitor and VisibilityMonitor, DetectorType's 127 enum constants (the file is @AILocked), and the 49 default-constructor warnings, whose fix would add 49 public constructors to satisfy a style rule. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AENSLJhmSuFzLhXDv4QKUA
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
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.
Completes the javadoc work #199 started. Every public member javadoc checks now carries a comment,
with none left.
Correction to an earlier figure in this PR: it first claimed 2 members remained. That was a bug
in my measurement, not a real gap: the counter did not walk multi-line annotations, so
ConcurrencyRunner.executeandAsyncTestInvocationInterceptor.interceptTestTemplateMethodlookedundocumented when both carry detailed javadoc above their
@AILoadBearingblocks. Counted with thesame scan the generator uses, the figure is 0 of 1613.
The text is derived, not templated
analyze*/record*/reset*/register*get descriptions matching what they actually do here(record, analyse at the end of the run, reset between runs). No-argument accessors get
{@return ...}. Every parameter gets an@param, with booleans phrased as "thesucceededflag"rather than "the succeeded", so the sentence is grammatical.
This is the fourth attempt, and the first that passes
The previous three each broke something the Java compiler could not see, because a javadoc
comment is syntactically legal almost anywhere:
inserted inside method bodies across 176 files, 40,860 lines. Compiled cleanly; the diff size
gave it away.
DanglingJavadoc, notby javac.
ConcurrencyRunner'sdetailed
execute()javadoc into"Execute.".Each was reverted rather than pushed.
What actually fixed it was the backward scan. It now skips blank lines,
//comments andsingle-line annotations, and walks over the body of a multi-line annotation whose last line is a
bare
)rather than an@…line://comments stopped duplicate blocks being added to members that were alreadydocumented (that was 4 of the "171" — the real count was 167);
Verified on three gates, not one
Compilation was the tool that kept saying yes, so it is not the evidence here:
Left undone, deliberately
DetectorType's 127 enum constants — the file is@AILocked. Adding comments cannot trip thefive-place sync hazard the lock exists for, so this is a one-word waiver if you want it.
Real API surface for a doclint nicety; your call, not mine to make quietly.
🤖 Generated with Claude Code
https://claude.ai/code/session_01AENSLJhmSuFzLhXDv4QKUA