Repository navigation
Restore the pre-1.7 IsMatch, Filter and DoesMatchGlob signatures for older callers [patch] - #166
Merged
Merged
Conversation
…older callers [patch] 1.7 added a trailing optional caseSensitivity parameter to Filter, IsMatch, DoesMatchGlob, DoesMatchRegex, AnyTokenMatchesGlobFilter and AllTokensMatchGlobFilter. Optional parameters are filled in at the call site, so the old signatures disappeared from the binary, and an assembly compiled against 1.6 or earlier threw MissingMethodException on its first filter call once 1.7 was the version that loaded. Add the old signatures back as non-optional overloads that forward with CaseSensitive, hidden from IntelliSense. Because their parameters are not optional, existing source still binds without ambiguity: a call that passes every pre-1.7 argument picks the restored overload, which behaves the same, and any call that names caseSensitivity or omits a trailing argument picks the new one. Fixes #155 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017vfJW5Rpzmd2jmRcDCB7Ym
|
This was referenced Oct 30, 2026
This was referenced Nov 4, 2026
matt-edmondson
pushed a commit
that referenced
this pull request
Nov 4, 2026
…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)
matt-edmondson
pushed a commit
that referenced
this pull request
Nov 6, 2026
…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
matt-edmondson
pushed a commit
that referenced
this pull request
Nov 9, 2026
…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)
matt-edmondson
pushed a commit
that referenced
this pull request
Nov 9, 2026
…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)
matt-edmondson
pushed a commit
that referenced
this pull request
Nov 10, 2026
…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)
matt-edmondson
pushed a commit
that referenced
this pull request
Nov 10, 2026
…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)
matt-edmondson
added a commit
that referenced
this pull request
Nov 11, 2026
…patch] (#186) 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 Claude-Session: https://claude.ai/code/session_017vfJW6FzBtSrY5LKUuDYce Co-authored-by: Claude <noreply@anthropic.com>
matt-edmondson
added a commit
that referenced
this pull request
Nov 11, 2026
* Keep a **/ inside a glob class as literal members [patch] ExpandGlobStarSegments dropped every "**/" that followed a separator, including one inside a bracket class, where it is just the members "*" and "/". For a negated class that removed characters from the excluded set, so x[!/**/] matched "x*". A "**/" inside a closed class is now skipped, using the same class boundaries as ExpandGlobClasses. Fixes #201 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017vfJW3RphV1aRzPmhMhf5m * Hold only the visible overloads to the README's documented defaults [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) --------- Co-authored-by: Claude <noreply@anthropic.com>
matt-edmondson
added a commit
that referenced
this pull request
Nov 11, 2026
) * Match a glob ** joined to other characters like a single * [patch] DotNet.Glob only reads ** as a wildcard when it is a whole path segment. Joined to other characters, as in **foo or a**b, it matched nothing, so a doubled star emptied the list where * matches. ResolveGlob now collapses each run of stars that is not a whole segment to a single *, leaving whole-segment ** for ExpandGlobStarSegments and stars inside bracket classes alone. Fixes #135 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017vfJW3RphV1aRzPmhMhf5m * Hold only the visible overloads to the README's documented defaults [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) --------- Co-authored-by: Claude <noreply@anthropic.com>
matt-edmondson
added a commit
that referenced
this pull request
Nov 11, 2026
…patch] (#200) * Let a backslash make a leading +, -, ! or ^ literal in a glob token [patch] A glob token's first character was always read as a prefix, so an item named +page.svelte or !important.txt could not be found by typing its name. A backslash before a leading prefix character now makes it literal, also after a + or - prefix. GetHint and the README list every prefix the parser recognises and the escape. Fixes #198 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017vfJW3WKJyQMZaWCcyzKVK * Hold only the visible overloads to the README's documented defaults [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) --------- Co-authored-by: Claude <noreply@anthropic.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.



Fixes #155
What was wrong
1.7 added a trailing optional
caseSensitivityparameter toFilter(both),IsMatch(both),DoesMatchGlob,DoesMatchRegex,AnyTokenMatchesGlobFilterandAllTokensMatchGlobFilter. The compiler fills in optional parameters at the call site, so the old signatures were no longer in the binary. An assembly compiled against 1.6 or earlier, such as BlastMerge on 1.5.48, threwMissingMethodExceptionthe first time it filtered anything once 1.7 was the version that loaded.Change
TextFilter/TextFilter.BinaryCompatibility.csadds the eight pre-1.7 signatures back as overloads that forward withTextFilterCaseSensitivity.CaseSensitive, the pre-1.7 behaviour. They are[EditorBrowsable(Never)]and inherit their docs from the new overloads.caseSensitivitybinds to the 1.7 overload.Tests
out int scoreand genericFilter<TItem>ones, exists in the built assembly. They also check that invoking one is case-sensitive, and that source calls passing every pre-1.7 argument still compile alongside calls passingcaseSensitivity.Not in this PR
The issue also suggests turning on
EnablePackageValidationwith a 1.6.xPackageValidationBaselineVersion, so CI catches the next break of this kind. I left it out: it makes every pack download the baseline package, and it interacts with the SDK's existingCompatibilitySuppressions.xmlhandling, so it belongs in its own change.Generated by Claude Code