[RLH-12] Fix 12 spelling and word-slip errors in README, NatSpec and two test docstrings - #83
Conversation
README.md, the LibHashNoAlloc NatSpec that soldeer consumers read, and the two HashPattern docstrings that quote the README heading verbatim. The heading and the docstrings now agree with `testHashContiguousWords`, so a grep for either spelling finds all of the references instead of half. Comments and markdown only: deployed bytecode is byte-identical. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V8ViHcKLVk2YoS2joH4HdN
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (2)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. WalkthroughThe change corrects spelling and wording errors in ChangesDocumentation corrections
Priority: ⬇️ Low Estimated code review effort: 1 (Trivial) | ~3 minutes Change: Other · Severity of issue fixed: Low 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V8ViHcKLVk2YoS2joH4HdN
b118313 deleted both docstrings this branch touched. Neither was this branch's to delete: both predate it on main, and the branch only corrected "contigious" to "contiguous" in them. Deleting them took the memory-layout claims with the typo and left two of the twelve corrections with nothing to correct. They come back without the README heading they quoted, because a `///` block does not reference the README. The claims stand on their own: the four words a `Foo` hashes and where the pointer values come from, and that a `bytes32[3]` carries no length prefix. The spelling fix that made those two of the twelve is therefore moot; the README and NatSpec ones are untouched. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V8ViHcKLVk2YoS2joH4HdN
# Conflicts: # README.md # src/lib/LibHashNoAlloc.sol # test/HashPattern.t.sol
|
Merged Why static was redNot a pre-commit reflow. The job runs Which of the twelve survived
Applied —
Applied — Note this pair was deleted by b118313 and restored without the README quote by 293d868 on the reasoning that a Dropped —
Verification on the merged tree
|
Closes #52.
What was wrong
Twelve first-party prose errors, verified against HEAD
1e6e59fby repo-wide grep:determinsticdeterministicunneccessaryunnecessary`keecak256``keccak256`non-contigousnon-contiguous#### Hashing contigious words#### Hashing contiguous wordscontigiouscontiguousresitantresistantambigiousambiguous"Hashing contigious words""Hashing contiguous words""Hashing contigious words""Hashing contiguous words"Two of these are in the NatSpec that soldeer consumers read. Two are the
HashPatterndocstrings that quote the README heading verbatim while thefunction they document is spelled
testHashContiguousWords(L27), so a grepfor either spelling previously found only half the references to that pattern.
Scope
Markdown and comments only. No Solidity statement, expression, constant or
assembly block is touched, so no hash preimage moves and no stored hash
downstream is affected. The README is not
deno fmtclean onmaineither;this PR deliberately does not rewrap it, so the diff stays at the 12 sites.
QA
there is no observable value that differs under "correct" and "wrong"
spelling. Inertness is proved instead: with the CBOR metadata trailer
stripped, the
deployedBytecodeof all seven first-party contracts(
LibHashNoAlloc,LibHashSlow,HashPatternTest,HashPatternFoldTest,LibHashNoAllocTest,LibHashNoAllocCrossTypeTest,MemoryLayoutTest) isbyte-identical before and after — sha256 taken over a clean
forge buildat1e6e59f, then over a cleanforge buildof this commit, anddiffof thetwo hash lists is empty.
forge testis 51 passed / 0 failed / 0 skippedacross 5 suites on both base and branch;
forge fmt --checkis clean.mutate. The equivalent evidence is the inverse check above: perturbing these
characters does not perturb the compiled artifact at all, which is exactly
why no test can or should be asked to kill such a mutant.
the edited text —
testHashContiguousWords(test/HashPattern.t.sol:27), "ascontiguous words" (README.md:515), and
`keccak256`(README.md:205) —plus a repo-wide grep for
determinstic|unneccessary|keecak256|contigous| contigious|resitant|ambigious|data what|or list oroutsidedependencies/,which now returns zero hits and returned all 12 before.
prose (124, 202, 211, 284, 288, 403), word slips in README prose (310, 393),
and the spelling drift between the misspelt README heading, the NatSpec
(src/LibHashNoAlloc.sol:20, 36) and the two docstrings that quote it
(test/HashPattern.t.sol:23, 43). All three are covered: every one of the 12
sites named in the finding is changed to the replacement the finding
specifies, no other line is touched, and the residual grep above proves the
set is exhausted rather than sampled.
🤖 Generated with Claude Code
https://claude.ai/code/session_01V8ViHcKLVk2YoS2joH4HdN
Summary by CodeRabbit