Repository navigation
Count only doubled **/ against the zero-segment expansion cap [patch] - #187
matt-edmondson wants to merge 2 commits into
Conversation
Since #171 a "**/" joined to a preceding literal is never expanded into a zero-segment form, but it still incremented the expansion counter. Four of them used up the cap, so "a**/b**/c**/d**/**/x.cs" stopped matching "a/b/c/d/x.cs". The counter now advances only when a "**/" actually added the zero-segment alternative. Fixes #185 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017vfJW6FzBtSrY5LKUuDYce
…patch] The README API test required every overload's same-named parameter to carry the documented default. The binary-compatibility overloads from #166 have no defaults by design, so main has been red since #178. They are marked [EditorBrowsable(Never)] and are not what the README documents, so the default check now skips them. A wrong default on a visible overload still fails. Fixes #183 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017vfJW6FzBtSrY5LKUuDYce (cherry picked from commit 9328e00)
|
Generated by Claude Code |
|
|
The This PR doesn't cause it. It doesn't touch No fix exists yet. Once #186 merges, main gets a fresh analysis, the issue moves into the baseline, and this gate should clear on the next run. If main still flags S3776 after that, the fix is a small separate refactor of Generated by Claude Code |




Fixes #185
What was wrong
ExpandGlobStarSegmentscaps how many**/get the zero-segment alternative (MaxExpandedGlobStarSegments= 4), and it ranexpanded++for every**/it found. Since #171, a**/joined to a literal (foo**/) never gets a zero-segment form, but it still used up a slot. Soa**/b**/c**/d**/**/x.csdidn't matcha/b/c/d/x.cs: its one whole-segment**/came after the cap was already spent.Change
The counter now advances only when the
**/actually added a zero-segment alternative. A whole-segment**/still counts exactly as before, so the cap and its documented behaviour for**/**/**/**/**/…are unchanged. I left the optional "collapse repeated**/**/" idea out to keep this PR small.Tests
GlobStarJoinedToLiteralDoesNotUseUpTheZeroSegmentCap. It covers the issue's two repro rows, plus a five-joined case.a/b/c/d/x.csanda/b/c/d/e/x.cs. With the fix, they pass.EveryMethodInTheReadmeApiReferenceExistsWithItsDocumentedDefaults, which already fails on main (main CI is red since #178: the README API test rejects the #166 binary-compatibility overloads, so none of the fixes in #166–#182 can release #183) and is fixed separately in Hold only the visible overloads to the README's documented defaults [patch] #186. CI on this PR will show that failure until Hold only the visible overloads to the README's documented defaults [patch] #186 merges.Note
#175 edits the lines next to this loop (separate masks for
/and\). Whichever of the two merges second may need a small rebase. Neither change depends on the other.Generated by Claude Code