33c2d8d4b8d1e6489f5f8f4c050a551b81d6316b
The branch review approved with notes but overturned two universal claims I had already committed to the spec. Both overturns were independently reproduced before acting on them, and both were correct. FR-1 (important): assertion 5's source scan required a NAMED receiver, but Go permits omitting an unused one, and a shadowing body is exactly the case that often needs none. Under func (*ContentService) CoverURL(...) the old pattern matched nothing, so build, vet and all seven assertions stayed green while the shadow was effective. The regex literal in §5-T1.5 is corrected to the optional group now in the code, and the claim that assertion 5 is the only mechanical way to catch shadowing is scoped: it was false before the fix, and after it the assertion's reach is wider than the original text said, because NumMethod() exposes only exported names — so an unexported root method is also caught by the source scan alone. FR-5: my adjudication of F4 said the two layers 'cover completely'. That is a universal claim and an orphan private helper on the wrong line is its counterexample (assertion 2 filters on IsExported, and Go does not report unused methods). The wording is narrowed to what the layers actually cover, with the reason the verdict still holds: the third layer can only ever produce dead code. Both are recorded as instances of the same defect I keep committing — stating a conclusion before establishing its range. §8 rule 5 already required universal claims to have universal-range evidence; these were two places I did not follow my own rule. The lesson is written into the spec rather than only the ledger: when claiming a guard is the only thing that catches a failure mode, enumerate the forms first (named/unnamed receiver, value/pointer, exported/unexported), or the claim becomes the next reviewer's counterexample.
Description
No description provided
1.2 MiB
Languages
Shell
100%