Skip to content

#853 Fix matching with multiple generic arguments of the same type#858

Merged
dtchepak merged 1 commit into
nsubstitute:mainfrom
rholek:main
Jan 26, 2025
Merged

#853 Fix matching with multiple generic arguments of the same type#858
dtchepak merged 1 commit into
nsubstitute:mainfrom
rholek:main

Conversation

@rholek

@rholek rholek commented Jan 6, 2025

Copy link
Copy Markdown

Fixes #853

@dtchepak dtchepak left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, thanks!

@dtchepak
dtchepak merged commit 4122187 into nsubstitute:main Jan 26, 2025
This was referenced Jul 12, 2026
mpcs2013 added a commit to mpcs2013/currency-tracker that referenced this pull request Jul 17, 2026
Updated [NSubstitute](https://github.com/nsubstitute/NSubstitute) from
5.3.0 to 6.0.0.

<details>
<summary>Release notes</summary>

_Sourced from [NSubstitute's
releases](https://github.com/nsubstitute/NSubstitute/releases)._

## 6.0.0

:information_source: No changes from [Release Candidate
1](https://github.com/nsubstitute/NSubstitute/releases/tag/v6.0.0-rc.1).

# NSubstitute v6.0.0 

From
[RC1](https://github.com/nsubstitute/NSubstitute/releases/tag/v6.0.0-rc.1)
notes:

* [NEW] `ArgMatchers.Matching` predicate matcher as an alternative to
`Is(Expression<Predicate<T>>`. (.NET6 and above.)
* [UPDATE] Improved support for custom argument matchers. `Arg.Is` now
accepts arg matchers.
* [UPDATE][BREAKING] Update target frameworks: .NET8, .NET Standard 2.0
* [UPDATE][BREAKING] Remove legacy obsolete API
* [UPDATE][BREAKING] Mark as obsolete api CompatArg with pre c# 7.0
support
* [UPDATE][BREAKING] Nullability is enabled for public api for .NET 8+
TFMs
* [UPDATE] Migrate documentation to [docfx
platform](https://github.com/dotnet/docfx) and update samples to NUnit 4
* [NEW] Added NuGet Package README file.


## Full change list

* Update target frameworks and other infrastructure changes by @​Romfos
in nsubstitute/NSubstitute#831
* Remove Google Groups hyperlinks by @​304NotModified in
nsubstitute/NSubstitute#804
* Improve output for expected argument matchers in
nsubstitute/NSubstitute#806
* Mark Substitute.For<T> method as Pure by @​Dzliera in
nsubstitute/NSubstitute#844
* Move package creating from build.fsproj to github actions by @​Romfos
in nsubstitute/NSubstitute#838
* Added .NET 9 to test matrix by @​Romfos in
nsubstitute/NSubstitute#848
* Update dependencies by @​Saibamen in
nsubstitute/NSubstitute#843
* Migrate documentation to docfx by @​Romfos in
nsubstitute/NSubstitute#850
* Added test for issue #​716 by @​rbeurskens in
nsubstitute/NSubstitute#846
* feat: add dependabot for this project for minor and patch updates for
nuget packages and github actions by @​wmundev in
nsubstitute/NSubstitute#792
* #​853 Fix matching with multiple generic arguments of the same type by
@​rholek in nsubstitute/NSubstitute#858
* Ability to mock protected methods with and without return value by
@​Jason31569 in nsubstitute/NSubstitute#845
* Enable nullability for public api by @​Romfos in
nsubstitute/NSubstitute#856
* Bugfix/async event handlers return instantly by @​jmartschinke in
nsubstitute/NSubstitute#808
* Fix matching generic calls with AnyType when the generic argument is
also a generic argument in return type, out or ref parameter by
@​JMolenkamp in nsubstitute/NSubstitute#862
* Feature: allow interception of any generic method call when using
Arg.AnyType by @​JMolenkamp in
nsubstitute/NSubstitute#855
* Params arg unit test by @​Jason31569 in
nsubstitute/NSubstitute#874
* Added exception extensions for ValueTask without return type (rebase)
in nsubstitute/NSubstitute#873
* Migrate to slnx by @​Romfos in
nsubstitute/NSubstitute#882
* Migrate documentation validation from build.fsproj to Roslyn code
generator by @​Romfos in
nsubstitute/NSubstitute#883
* Fix doc links (#​884) in
nsubstitute/NSubstitute#886
* Add PackageReadmeFile. by @​peymanr34 in
nsubstitute/NSubstitute#888
* Make public api and tests the same for all TFMs by @​Romfos in
nsubstitute/NSubstitute#885
* Migrate documentation samples to NUnit4 by @​Romfos in
nsubstitute/NSubstitute#889
* Run unit tests in Microsoft.Testing.Platform mode by @​Romfos in
nsubstitute/NSubstitute#896
* Bump actions/checkout from 4 to 5 by @​dependabot[bot] in
nsubstitute/NSubstitute#902
* Fix typo in return value documentation by @​ericmutta in
nsubstitute/NSubstitute#903
* Bump actions/setup-dotnet from 4 to 5 by @​dependabot[bot] in
nsubstitute/NSubstitute#907
* Fix typo in received calls documentation by @​ericmutta in
nsubstitute/NSubstitute#904
* Simplify github actions to use less jobs by @​Romfos in
nsubstitute/NSubstitute#911
* Bump actions/upload-artifact from 4 to 5 by @​dependabot[bot] in
nsubstitute/NSubstitute#916
* Bump NUnit3TestAdapter from 5.0.0 to 5.2.0 by @​dependabot[bot] in
nsubstitute/NSubstitute#922
 ... (truncated)

## 6.0.0-rc.1

# NSubstitute v6.0.0 Release Candidate 1

Due to the large number of changes in this release, we wanted to start
with a release candidate to ensure we've correctly captured breaking
changes.

* [NEW] `ArgMatchers.Matching` predicate matcher as an alternative to
`Is(Expression<Predicate<T>>`. (.NET6 and above.)
* [UPDATE] Improved support for custom argument matchers. `Arg.Is` now
accepts arg matchers.
* [UPDATE][BREAKING] Update target frameworks: .NET8, .NET Standard 2.0
* [UPDATE][BREAKING] Remove legacy obsolete API
* [UPDATE][BREAKING] Mark as obsolete api CompatArg with pre c# 7.0
support
* [UPDATE][BREAKING] Nullability is enabled for public api for .NET 8+
TFMs
* [UPDATE] Migrate documentation to [docfx
platform](https://github.com/dotnet/docfx) and update samples to NUnit 4
* [NEW] Added NuGet Package README file.


## Full change list

* Update target frameworks and other infrastructure changes by @​Romfos
in nsubstitute/NSubstitute#831
* Remove Google Groups hyperlinks by @​304NotModified in
nsubstitute/NSubstitute#804
* Improve output for expected argument matchers in
nsubstitute/NSubstitute#806
* Mark Substitute.For<T> method as Pure by @​Dzliera in
nsubstitute/NSubstitute#844
* Move package creating from build.fsproj to github actions by @​Romfos
in nsubstitute/NSubstitute#838
* Added .NET 9 to test matrix by @​Romfos in
nsubstitute/NSubstitute#848
* Update dependencies by @​Saibamen in
nsubstitute/NSubstitute#843
* Migrate documentation to docfx by @​Romfos in
nsubstitute/NSubstitute#850
* Added test for issue #​716 by @​rbeurskens in
nsubstitute/NSubstitute#846
* feat: add dependabot for this project for minor and patch updates for
nuget packages and github actions by @​wmundev in
nsubstitute/NSubstitute#792
* #​853 Fix matching with multiple generic arguments of the same type by
@​rholek in nsubstitute/NSubstitute#858
* Ability to mock protected methods with and without return value by
@​Jason31569 in nsubstitute/NSubstitute#845
* Enable nullability for public api by @​Romfos in
nsubstitute/NSubstitute#856
* Bugfix/async event handlers return instantly by @​jmartschinke in
nsubstitute/NSubstitute#808
* Fix matching generic calls with AnyType when the generic argument is
also a generic argument in return type, out or ref parameter by
@​JMolenkamp in nsubstitute/NSubstitute#862
* Feature: allow interception of any generic method call when using
Arg.AnyType by @​JMolenkamp in
nsubstitute/NSubstitute#855
* Params arg unit test by @​Jason31569 in
nsubstitute/NSubstitute#874
* Added exception extensions for ValueTask without return type (rebase)
in nsubstitute/NSubstitute#873
* Migrate to slnx by @​Romfos in
nsubstitute/NSubstitute#882
* Migrate documentation validation from build.fsproj to Roslyn code
generator by @​Romfos in
nsubstitute/NSubstitute#883
* Fix doc links (#​884) in
nsubstitute/NSubstitute#886
* Add PackageReadmeFile. by @​peymanr34 in
nsubstitute/NSubstitute#888
* Make public api and tests the same for all TFMs by @​Romfos in
nsubstitute/NSubstitute#885
* Migrate documentation samples to NUnit4 by @​Romfos in
nsubstitute/NSubstitute#889
* Run unit tests in Microsoft.Testing.Platform mode by @​Romfos in
nsubstitute/NSubstitute#896
* Bump actions/checkout from 4 to 5 by @​dependabot[bot] in
nsubstitute/NSubstitute#902
* Fix typo in return value documentation by @​ericmutta in
nsubstitute/NSubstitute#903
* Bump actions/setup-dotnet from 4 to 5 by @​dependabot[bot] in
nsubstitute/NSubstitute#907
* Fix typo in received calls documentation by @​ericmutta in
nsubstitute/NSubstitute#904
* Simplify github actions to use less jobs by @​Romfos in
nsubstitute/NSubstitute#911
* Bump actions/upload-artifact from 4 to 5 by @​dependabot[bot] in
nsubstitute/NSubstitute#916
* Bump NUnit3TestAdapter from 5.0.0 to 5.2.0 by @​dependabot[bot] in
nsubstitute/NSubstitute#922
* Bump BenchmarkDotNet from 0.15.2 to 0.15.5 by @​dependabot[bot] in
nsubstitute/NSubstitute#921
* Add .NET 10 to test matrix by @​Romfos in
nsubstitute/NSubstitute#913
 ... (truncated)

Commits viewable in [compare
view](nsubstitute/NSubstitute@v5.3.0...v6.0.0).
</details>

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=NSubstitute&package-manager=nuget&previous-version=5.3.0&new-version=6.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Marco Silva <11881334+mpcs2013@users.noreply.github.com>
Co-authored-by: Marco Silva <marco.p.c.silva@gmail.com>
tetsuo13 pushed a commit to tetsuo13/TeamsStatusPub that referenced this pull request Jul 18, 2026
Updated [NSubstitute](https://github.com/nsubstitute/NSubstitute) from
5.3.0 to 6.0.0.

<details>
<summary>Release notes</summary>

_Sourced from [NSubstitute's
releases](https://github.com/nsubstitute/NSubstitute/releases)._

## 6.0.0

:information_source: No changes from [Release Candidate
1](https://github.com/nsubstitute/NSubstitute/releases/tag/v6.0.0-rc.1).

# NSubstitute v6.0.0 

From
[RC1](https://github.com/nsubstitute/NSubstitute/releases/tag/v6.0.0-rc.1)
notes:

* [NEW] `ArgMatchers.Matching` predicate matcher as an alternative to
`Is(Expression<Predicate<T>>`. (.NET6 and above.)
* [UPDATE] Improved support for custom argument matchers. `Arg.Is` now
accepts arg matchers.
* [UPDATE][BREAKING] Update target frameworks: .NET8, .NET Standard 2.0
* [UPDATE][BREAKING] Remove legacy obsolete API
* [UPDATE][BREAKING] Mark as obsolete api CompatArg with pre c# 7.0
support
* [UPDATE][BREAKING] Nullability is enabled for public api for .NET 8+
TFMs
* [UPDATE] Migrate documentation to [docfx
platform](https://github.com/dotnet/docfx) and update samples to NUnit 4
* [NEW] Added NuGet Package README file.


## Full change list

* Update target frameworks and other infrastructure changes by @​Romfos
in nsubstitute/NSubstitute#831
* Remove Google Groups hyperlinks by @​304NotModified in
nsubstitute/NSubstitute#804
* Improve output for expected argument matchers in
nsubstitute/NSubstitute#806
* Mark Substitute.For<T> method as Pure by @​Dzliera in
nsubstitute/NSubstitute#844
* Move package creating from build.fsproj to github actions by @​Romfos
in nsubstitute/NSubstitute#838
* Added .NET 9 to test matrix by @​Romfos in
nsubstitute/NSubstitute#848
* Update dependencies by @​Saibamen in
nsubstitute/NSubstitute#843
* Migrate documentation to docfx by @​Romfos in
nsubstitute/NSubstitute#850
* Added test for issue #​716 by @​rbeurskens in
nsubstitute/NSubstitute#846
* feat: add dependabot for this project for minor and patch updates for
nuget packages and github actions by @​wmundev in
nsubstitute/NSubstitute#792
* #​853 Fix matching with multiple generic arguments of the same type by
@​rholek in nsubstitute/NSubstitute#858
* Ability to mock protected methods with and without return value by
@​Jason31569 in nsubstitute/NSubstitute#845
* Enable nullability for public api by @​Romfos in
nsubstitute/NSubstitute#856
* Bugfix/async event handlers return instantly by @​jmartschinke in
nsubstitute/NSubstitute#808
* Fix matching generic calls with AnyType when the generic argument is
also a generic argument in return type, out or ref parameter by
@​JMolenkamp in nsubstitute/NSubstitute#862
* Feature: allow interception of any generic method call when using
Arg.AnyType by @​JMolenkamp in
nsubstitute/NSubstitute#855
* Params arg unit test by @​Jason31569 in
nsubstitute/NSubstitute#874
* Added exception extensions for ValueTask without return type (rebase)
in nsubstitute/NSubstitute#873
* Migrate to slnx by @​Romfos in
nsubstitute/NSubstitute#882
* Migrate documentation validation from build.fsproj to Roslyn code
generator by @​Romfos in
nsubstitute/NSubstitute#883
* Fix doc links (#​884) in
nsubstitute/NSubstitute#886
* Add PackageReadmeFile. by @​peymanr34 in
nsubstitute/NSubstitute#888
* Make public api and tests the same for all TFMs by @​Romfos in
nsubstitute/NSubstitute#885
* Migrate documentation samples to NUnit4 by @​Romfos in
nsubstitute/NSubstitute#889
* Run unit tests in Microsoft.Testing.Platform mode by @​Romfos in
nsubstitute/NSubstitute#896
* Bump actions/checkout from 4 to 5 by @​dependabot[bot] in
nsubstitute/NSubstitute#902
* Fix typo in return value documentation by @​ericmutta in
nsubstitute/NSubstitute#903
* Bump actions/setup-dotnet from 4 to 5 by @​dependabot[bot] in
nsubstitute/NSubstitute#907
* Fix typo in received calls documentation by @​ericmutta in
nsubstitute/NSubstitute#904
* Simplify github actions to use less jobs by @​Romfos in
nsubstitute/NSubstitute#911
* Bump actions/upload-artifact from 4 to 5 by @​dependabot[bot] in
nsubstitute/NSubstitute#916
* Bump NUnit3TestAdapter from 5.0.0 to 5.2.0 by @​dependabot[bot] in
nsubstitute/NSubstitute#922
 ... (truncated)

## 6.0.0-rc.1

# NSubstitute v6.0.0 Release Candidate 1

Due to the large number of changes in this release, we wanted to start
with a release candidate to ensure we've correctly captured breaking
changes.

* [NEW] `ArgMatchers.Matching` predicate matcher as an alternative to
`Is(Expression<Predicate<T>>`. (.NET6 and above.)
* [UPDATE] Improved support for custom argument matchers. `Arg.Is` now
accepts arg matchers.
* [UPDATE][BREAKING] Update target frameworks: .NET8, .NET Standard 2.0
* [UPDATE][BREAKING] Remove legacy obsolete API
* [UPDATE][BREAKING] Mark as obsolete api CompatArg with pre c# 7.0
support
* [UPDATE][BREAKING] Nullability is enabled for public api for .NET 8+
TFMs
* [UPDATE] Migrate documentation to [docfx
platform](https://github.com/dotnet/docfx) and update samples to NUnit 4
* [NEW] Added NuGet Package README file.


## Full change list

* Update target frameworks and other infrastructure changes by @​Romfos
in nsubstitute/NSubstitute#831
* Remove Google Groups hyperlinks by @​304NotModified in
nsubstitute/NSubstitute#804
* Improve output for expected argument matchers in
nsubstitute/NSubstitute#806
* Mark Substitute.For<T> method as Pure by @​Dzliera in
nsubstitute/NSubstitute#844
* Move package creating from build.fsproj to github actions by @​Romfos
in nsubstitute/NSubstitute#838
* Added .NET 9 to test matrix by @​Romfos in
nsubstitute/NSubstitute#848
* Update dependencies by @​Saibamen in
nsubstitute/NSubstitute#843
* Migrate documentation to docfx by @​Romfos in
nsubstitute/NSubstitute#850
* Added test for issue #​716 by @​rbeurskens in
nsubstitute/NSubstitute#846
* feat: add dependabot for this project for minor and patch updates for
nuget packages and github actions by @​wmundev in
nsubstitute/NSubstitute#792
* #​853 Fix matching with multiple generic arguments of the same type by
@​rholek in nsubstitute/NSubstitute#858
* Ability to mock protected methods with and without return value by
@​Jason31569 in nsubstitute/NSubstitute#845
* Enable nullability for public api by @​Romfos in
nsubstitute/NSubstitute#856
* Bugfix/async event handlers return instantly by @​jmartschinke in
nsubstitute/NSubstitute#808
* Fix matching generic calls with AnyType when the generic argument is
also a generic argument in return type, out or ref parameter by
@​JMolenkamp in nsubstitute/NSubstitute#862
* Feature: allow interception of any generic method call when using
Arg.AnyType by @​JMolenkamp in
nsubstitute/NSubstitute#855
* Params arg unit test by @​Jason31569 in
nsubstitute/NSubstitute#874
* Added exception extensions for ValueTask without return type (rebase)
in nsubstitute/NSubstitute#873
* Migrate to slnx by @​Romfos in
nsubstitute/NSubstitute#882
* Migrate documentation validation from build.fsproj to Roslyn code
generator by @​Romfos in
nsubstitute/NSubstitute#883
* Fix doc links (#​884) in
nsubstitute/NSubstitute#886
* Add PackageReadmeFile. by @​peymanr34 in
nsubstitute/NSubstitute#888
* Make public api and tests the same for all TFMs by @​Romfos in
nsubstitute/NSubstitute#885
* Migrate documentation samples to NUnit4 by @​Romfos in
nsubstitute/NSubstitute#889
* Run unit tests in Microsoft.Testing.Platform mode by @​Romfos in
nsubstitute/NSubstitute#896
* Bump actions/checkout from 4 to 5 by @​dependabot[bot] in
nsubstitute/NSubstitute#902
* Fix typo in return value documentation by @​ericmutta in
nsubstitute/NSubstitute#903
* Bump actions/setup-dotnet from 4 to 5 by @​dependabot[bot] in
nsubstitute/NSubstitute#907
* Fix typo in received calls documentation by @​ericmutta in
nsubstitute/NSubstitute#904
* Simplify github actions to use less jobs by @​Romfos in
nsubstitute/NSubstitute#911
* Bump actions/upload-artifact from 4 to 5 by @​dependabot[bot] in
nsubstitute/NSubstitute#916
* Bump NUnit3TestAdapter from 5.0.0 to 5.2.0 by @​dependabot[bot] in
nsubstitute/NSubstitute#922
* Bump BenchmarkDotNet from 0.15.2 to 0.15.5 by @​dependabot[bot] in
nsubstitute/NSubstitute#921
* Add .NET 10 to test matrix by @​Romfos in
nsubstitute/NSubstitute#913
 ... (truncated)

Commits viewable in [compare
view](nsubstitute/NSubstitute@v5.3.0...v6.0.0).
</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

3 participants