Releases: rjmurillo/moq.analyzers
Release list
v0.4.2
Moq.Analyzers 0.4.2 🎉
This is a focused patch release with one mission: squash a false positive that was getting in the way of real-world LINQ-to-Mocks usage. If you've been seeing Moq1302 warnings on perfectly valid code, this one's for you. 🎯
A big thank you to @abatishchev for reporting the issue with a clear, actionable reproduction. Community reports like this make all the difference.
🐛 False Positive Fix for Moq1302
What was happening
If you were using Mock.Of with a comparison expression — something totally normal like this:
Mock.Of<Response>(static r => r.Status == StatusCodes.Status200OK)…you'd get a warning:
⚠️ Moq1302: Invalid member 'StatusCodes.Status200OK' in LINQ to Mocks expression
But there's nothing wrong with that code. It compiles, it runs, and it's how LINQ-to-Mocks expressions are supposed to work. The right-hand side of the comparison (StatusCodes.Status200OK) is just a constant — it's not a mock setup member. The analyzer shouldn't have been looking at it at all. 😬
The same false positive appeared with enum values, static fields, external locals, and other non-mock expressions on the right-hand side of ==, &&, or || comparisons.
How it was fixed
The fix introduces a lambda parameter guard: before the analyzer flags a member access, it now walks the receiver chain to check whether the operation is actually rooted in the lambda parameter (i.e., the r in r => r.Status == ...).
A new IsRootedInLambdaParameter() extension method traces the receiver chain — through property accesses, method calls, and conversions — all the way back to the lambda parameter. If the chain doesn't terminate in the lambda parameter, the member is silently skipped. Static members, constants, and external references pass right through without a warning.
The guard is applied only to leaf member operations (property references, method calls). Composite operations like && and || still get decomposed normally, so chained comparisons like r.Prop == "a" && r.Other == "b" continue to be fully analyzed. No false negatives.
As a bonus, MoqKnownSymbols is now threaded through the entire analysis chain instead of being recreated mid-analysis, and nested Mock.Of calls are excluded early to prevent false positives from inner mock expressions.
🧪 Comprehensive Test Coverage
This release adds 961 new lines of test code covering the full surface area of the fix (#1020):
- ✅ Static members and constants on the right-hand side of comparisons
- ✅ Enum value comparisons
- ✅ Chained
&&/||expressions - ✅ Nested
Mock.Ofcalls - ✅ Deep receiver chain walking edge cases
👥 Contributors
Thank you to everyone who reported bugs and provided reproduction cases:
- @abatishchev — Reported #1010 with a clear reproduction
📋 All Changes
- fix: filter non-lambda-rooted members in Moq1302 to eliminate false positives (#1017)
- test(Moq1302): comprehensive coverage for false positive fix (#1020)
- build: version bump to 0.4.2
🔗 Resources
- Full Changelog: v0.4.1...v0.4.2
- Documentation: https://github.com/rjmurillo/moq.analyzers/tree/main/docs/rules
- Issue Tracker: https://github.com/rjmurillo/moq.analyzers/issues
💬 Feedback
If you encounter any issues or have suggestions:
- Report bugs: https://github.com/rjmurillo/moq.analyzers/issues/new
- Request features: https://github.com/rjmurillo/moq.analyzers/issues/new
Thank you for using Moq.Analyzers!
v0.4.1
Moq.Analyzers 0.4.1
This is a patch release addressing critical bugs reported after v0.4.0.
🐛 Bug Fixes
Moq1203 False Positives
- #849 - Fixed incorrect Moq1203 flagging after upgrading to v0.4.0. The analyzer now correctly resolves delegate-overload resolution for
ReturnsAsync,Callback, and similar chained methods. (#886, #919) - #887 - Fixed Moq1203 false positive when the
Setupcall is wrapped in parentheses. (#895)
Parenthesized Expression Handling
- #896 - Fixed parenthesized expressions breaking syntax chain walking in Moq1100 and Moq1206 analyzers. (#907)
Assembly Loading
- #850 - Resolved
CS8032warning caused bySystem.Collections.Immutableassembly version mismatch. (#888)
🤝 Contributors
Thank you to everyone who reported bugs, provided reproduction cases, and engaged in issue discussions to help make this release possible:
- @AgustinSabalza - Reported #849
- @lkurzyniec - Reported #850
- @DamienCassou - Feedback and upvote on #849
- @Thijs153 - Feedback on #849
- @basvanharten - Feedback on #849
- @bkaidbb - Feedback and upvote on #849
- @pavkam - Feedback on #849
- @abatishchev - Feedback on #850
- @bt-chaz-christie - Feedback on #850
- @Philipp1806 - Upvote on #849
- @philipmat - Upvote on #849
🔗 Resources
- Full Changelog: v0.4.0...v0.4.1
- Documentation: https://github.com/rjmurillo/moq.analyzers/tree/main/docs/rules
- Issue Tracker: https://github.com/rjmurillo/moq.analyzers/issues
💬 Feedback
If you encounter any issues or have suggestions:
- Report bugs: https://github.com/rjmurillo/moq.analyzers/issues/new
- Request features: https://github.com/rjmurillo/moq.analyzers/discussions
- Ask questions: https://github.com/rjmurillo/moq.analyzers/discussions/categories/q-a
Thank you for using Moq.Analyzers!
v0.4.1-alpha
v0.4.1-alpha
Prerelease containing 3 bug fixes since v0.4.0 to rebuild confidence with users.
Bug Fixes
- fix: Moq1203 false positives for ReturnsAsync and Callback chaining (#886)
- fix: resolve CS8032 assembly version mismatch (#850) (#888)
- fix: Moq1203 false positive when Setup call is wrapped in parentheses (#895)
Critical: CS8032 Fix
v0.4.0 shipped DLLs that referenced System.Collections.Immutable versions incompatible with .NET 8 SDK hosts, causing CS8032 warnings on every build. This release downgrades the transitive dependency pins and adds CI load tests to prevent recurrence.
v0.4.0
Moq.Analyzers 0.4.0
Welcome to Moq.Analyzers 0.4.0! This major release brings significant improvements to code quality analysis, introduces new analyzers for better Moq usage patterns, and includes comprehensive updates to our infrastructure and dependencies.
✨ Highlights
New Analyzers
This release introduces three powerful new analyzers to help you write better Moq tests:
- [Moq1207] - SetupSequence validation analyzer ensures sequential setups are used correctly
- [Moq1420] - Times usage validation helps you use verification times specifications properly
- [Moq1500] - Raise method validation catches incorrect event argument patterns
Enhanced Diagnostic Messages
We've improved diagnostic messages across all analyzers to include specific type and member names, making it easier to identify and fix issues. Every analyzer now provides clearer, more actionable feedback.
Symbol-Based Detection
Replaced string-based detection with comprehensive symbol-based analysis for the Raises method, improving accuracy and performance of event-related analyzers.
Infrastructure Modernization
- Migrated to .NET 10 SDK for the latest tooling improvements
- ARM64 runners for faster CI/CD on modern hardware
- Enhanced performance testing with nightly regression detection
- Automated dependency management with Renovate
🎯 Breaking Changes
Minimum SDK Version
Moq.Analyzers now requires minimum .NET SDK 8 for development. This aligns with the long-term support release and enables us to leverage modern C# features.
🔧 Analyzer Improvements
Coverage Expansion
We've significantly expanded test coverage for all Moq patterns:
- Event patterns: Comprehensive coverage for
SetupAdd,SetupRemove,Raises, andRaisesAsync - Async methods: Full support for
Task/ValueTaskpatterns - LINQ to Mocks: Complete validation of query expressions
- MockRepository: Validation for repository-based mock creation
- Argument matching: Coverage for all
It.*and custom matcher patterns - Protected members: Validation for
.Protected().Setup()patterns - Callback signatures: Advanced callback pattern support including generic scenarios
Moq 4.16+ Compatibility
Added comprehensive test suites ensuring compatibility with Moq 4.16 and later versions, including new features like SetupProperty patterns.
Enhanced Validation
- Moq1101: Now covers
SetupPropertypatterns in addition to existing validations - Moq1210: Improved verification pattern detection for non-overridable members
- Moq1100: Validated support for advanced callback patterns
📊 Code Quality Enhancements
Improved Test Coverage
Achieved significant code coverage improvements through:
- Data-driven test pattern adoption across all analyzers
- Doppelganger tests to validate analyzer registration
- Comprehensive edge case testing
- Performance benchmark tests
Reduced Complexity
- Eliminated duplicate code in MockBehavior analyzers
- Reduced CRAP scores in event handling and symbol extensions
- Refactored
NoSealedClassMocksAnalyzerfor better nullable type handling - Optimized
DefaultIfNotSingleloop performance
Better Error Handling
Improved defensive checks and error handling throughout the codebase based on comprehensive code review feedback.
🚀 Performance
Analyzer Optimizations
- Converted
SetupShouldOnlyBeUsedForOverridableMembersAnalyzerto IOperation-based analysis - Converted
NoSealedClassMocksAnalyzerto IOperation-based analysis - Implemented symbol-based detection for improved accuracy and speed
CI/CD Performance
- Nightly performance validation with automated regression detection
- ARM64 runners for faster build times
- Modular performance testing tools
- Comprehensive performance documentation
📚 Documentation
Enhanced Guidelines
- Updated rule documentation with clearer examples and guidance
- Added generic type parameter scenarios for Moq1300
- Documented generic callback limitations in Moq1100
- Comprehensive investigation of symbol detection patterns
AI-Assisted Development
Strengthened GitHub Copilot instructions for better collaboration:
- Enhanced instruction files for different file types
- Better project navigation guidelines
- Improved coding standards documentation
- Task management and completion protocols
🔄 Dependency Updates
This release includes 200+ dependency updates to keep the project secure and up-to-date:
Major Updates
- Verify.Xunit: 28.7.0 → 31.6.1
- Polyfill: 7.8.0 → 9.x
- Meziantou.Analyzer: 2.0.183 → 2.0.252
- SonarAnalyzer.CSharp: 10.4.0 → 10.15.0
- Microsoft.NET.Test.Sdk: 17.12.0 → 18.0.1
- ReportGenerator: 5.4.2 → 5.5.0
- Nerdbank.GitVersioning: 3.7.112 → 3.9.50
- Microsoft.CodeAnalysis.* analyzers: 3.11.0-beta → 4.14.0
Package Management
- All dependencies now managed through Renovate for automated updates
- Security vulnerability scanning on all PRs
- Semantic PR validation
🛠️ Infrastructure
CI/CD Improvements
- Removed CodeQL in favor of comprehensive static analysis suite
- Added BuildCheck integration for MSBuild validation
- Automated performance regression detection
- Semantic PR title validation
- Enhanced dependency review process
Build System
- Ubuntu-based release builds for consistency
- Improved artifact handling
- Better code coverage reporting with qlty.sh
- Enhanced report generation with licensing
Development Tools
- Cross-platform performance testing (Linux and Windows)
- Improved PerfDiff regression detection
- Better baseline comparison tools
- Enhanced debugging capabilities
🐛 Bug Fixes
Code Fixes
- [#701] Fixed exception in explicit mock behavior code fix
- [#714] Improved defensive checks preventing null reference exceptions
- [#456] Fixed duplicate test cases causing xUnit to skip tests
- [#407] Fixed
SetupShouldBeUsedOnlyForOverridableMembersAnalyzerto properly flag field and event setup calls - [#467] Fixed path casing for PerfDiff project in comparison script
Analyzer Corrections
- Fixed method check for callback and returns patterns
- Corrected dictionary creation in multiple analyzers
- Improved null handling in
EnumerableExtensions - Removed unnecessary
IsAnalyzerSuppressedcheck
🤝 Contributors
Huge thanks to all our contributors who made this release possible:
- @rjmurillo - Project maintenance, infrastructure, and core features
- @MattKotsenas - ARM64 pilot, AnalyzerUtilities NuGet packaging
- @Youssef1313 - Code fix improvements and syntax generation cleanup
- @Copilot - Extensive analyzer development and testing
- @dependabot[bot] - Dependency management
Special thanks to our new contributors:
- @Copilot for their first contributions to the project
- @Youssef1313 for excellent code quality improvements
- @renovate[bot] for helping us stay up-to-date
📈 Statistics
- 200+ pull requests merged
- 150+ dependency updates processed
- 3 new analyzers added
- 20+ analyzers with improved diagnostics
- Significant code coverage improvements
- Zero security vulnerabilities at release
🔗 Resources
- Full Changelog: v0.3.1...v0.4.0
- Documentation: https://github.com/rjmurillo/moq.analyzers/tree/main/docs/rules
- Contributing Guide: https://github.com/rjmurillo/moq.analyzers/blob/main/CONTRIBUTING.md
- Issue Tracker: https://github.com/rjmurillo/moq.analyzers/issues
💬 Feedback
We'd love to hear from you! If you encounter any issues or have suggestions for improvements, please:
- Report bugs: https://github.com/rjmurillo/moq.analyzers/issues/new
- Request features: https://github.com/rjmurillo/moq.analyzers/discussions
- Ask questions: https://github.com/rjmurillo/moq.analyzers/discussions/categories/q-a
Thank you for using Moq.Analyzers! 🎉
v0.3.1
Minor Bug Fix
fix: exception in code fix of explicit mock behavior (#701) @Youssef1313 #701
Full Changelog: v0.3.0...v0.3.1
v0.3.0
Moq.Analyzers v0.3.0 🎄
Holidays are coming and it's time for the last release of the year! 🎉
There's a lot that has gone into this release, mostly housekeeping and bug fixes that are transparent to you. However, there are two new diagnostics included in this release.
This will be the last release until we move to v1.0.0
Analyzer Behavior Changes
- Remove false positive for Moq1200 when using parameterized lambda by @rjmurillo in #301
- Add new rule to enforce MockBehavior.Strict (Moq1410) by @rjmurillo in #302
What's Changed
- Bump Nerdbank.GitVersioning from 3.6.143 to 3.6.146 by @dependabot in #232
- Bump Microsoft.Diagnostics.Tracing.TraceEvent from 3.1.15 to 3.1.16 by @dependabot in #228
- Add IOperation to DiagnosticExtensions and clean up overloads by @MattKotsenas in #233
- Bump nbgv from 3.6.143 to 3.6.146 by @dependabot in #230
- Bump Meziantou.Analyzer from 2.0.169 to 2.0.173 by @dependabot in #231
- Create a shared Common .projitems by @MattKotsenas in #235
- Remove ECS0200 suppression and update WellKnownTypes to not trigger ECS0600 by @rjmurillo in #236
- Add BannedApiAnalyzer and ban direct use of Diagnostic.Create by @MattKotsenas in #239
- Add *.props and *.targets to XML section of .editorconfig template by @MattKotsenas in #240
- Bump Meziantou.Analyzer from 2.0.173 to 2.0.175 by @dependabot in #237
- Remove dead suppressions and dead code by @MattKotsenas in #242
- Add rule suppression docs to README and each rule by @MattKotsenas in #241
- Bump Meziantou.Analyzer from 2.0.175 to 2.0.176 by @dependabot in #243
- Disable SquiggleCop for PerfDiff by @MattKotsenas in #244
- Bump Roslynator.Analyzers from 4.12.8 to 4.12.9 by @dependabot in #246
- Bump Verify.Xunit from 27.0.1 to 27.1.0 by @dependabot in #247
- Use WellKnownTypeProvider + KnownSymbols pattern to simplify analyzers by @MattKotsenas in #245
- Bump Polyfill from 7.1.2 to 7.2.0 by @dependabot in #248
- Bump Verify.Xunit from 27.1.0 to 28.0.0 by @dependabot in #251
- Bump Meziantou.Analyzer from 2.0.176 to 2.0.177 by @dependabot in #249
- Bump Verify.Xunit from 28.0.0 to 28.1.3 by @dependabot in #253
- Bump Polyfill from 7.2.0 to 7.4.0 by @dependabot in #256
- Bump EffectiveCSharp.Analyzers from 0.1.0 to 0.2.0 by @dependabot in #250
- Bump Verify.Xunit from 28.1.3 to 28.2.0 by @dependabot in #257
- Update global.json to SDK 9 by @rjmurillo in #263
- Bump Meziantou.Analyzer from 2.0.177 to 2.0.179 by @dependabot in #262
- Bump ReportGenerator from 5.3.11 to 5.4.1 by @dependabot in #264
- Bump Verify.Xunit from 28.2.0 to 28.3.0 by @dependabot in #265
- Remove forced lf in .editorconfig by @MattKotsenas in #271
- Reduce severity of S3267: Loops should be simplified with "LINQ" expressions by @MattKotsenas in #272
- Bump GetPackFromProject to fix race in .NET 9 SDK by @MattKotsenas in #274
- Bump Polyfill from 7.4.0 to 7.5.0 by @dependabot in #270
- Move "upload binlogs" CI step earlier in pipeline and run even if failed by @MattKotsenas in #273
- Bump Verify.Xunit from 28.3.0 to 28.3.2 by @dependabot in #269
- Bump Microsoft.CodeAnalysis.BannedApiAnalyzers from 3.11.0-beta1.24454.1 to 3.11.0-beta1.24508.2 by @dependabot in #268
- Bump Meziantou.Analyzer from 2.0.179 to 2.0.181 by @dependabot in #275
- Bump Microsoft.NET.Test.Sdk from 17.11.1 to 17.12.0 by @dependabot in #277
- Bump Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers from 3.11.0-beta1.24454.1 to 3.11.0-beta1.24508.2 by @dependabot in #276
- Bump Microsoft.VisualStudio.Threading.Analyzers from 17.11.20 to 17.12.19 by @dependabot in #260
- Bump Verify.Xunit from 28.3.2 to 28.4.0 by @dependabot in #280
- Bump Meziantou.Analyzer from 2.0.181 to 2.0.182 by @dependabot in #279
- Bump Nerdbank.GitVersioning from 3.6.146 to 3.7.112 by @dependabot in #285
- Bump Microsoft.CodeAnalysis.BannedApiAnalyzers from 3.11.0-beta1.24508.2 to 3.11.0-beta1.24527.2 by @dependabot in #283
- Bump Polyfill from 7.5.0 to 7.7.1 by @dependabot in #287
- Bump Verify.Xunit from 28.4.0 to 28.6.0 by @dependabot in #286
- Bump nbgv from 3.6.146 to 3.7.112 by @dependabot in #284
- Align .editorconfig with dotnet new template by @MattKotsenas in #289
- Bump Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers from 3.11.0-beta1.24508.2 to 3.11.0-beta1.24527.2 by @dependabot in #282
- Add reference to Microsoft.CodeAnalysis.AnalyzerUtilities and delete forked methods by @MattKotsenas in #290
- Bump Roslynator.Analyzers from 4.12.9 to 4.12.10 by @dependabot in #291
- Bump Polyfill from 7.7.1 to 7.8.0 by @dependabot in #293
- Bump xunit.runner.visualstudio from 2.8.2 to 3.0.0 by @dependabot in #294
- Bump Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers from 3.11.0-beta1.24508.2 to 3.11.0-beta1.24527.2 by @dependabot in #292
- Bump Verify.Xunit from 28.6.0 to 28.6.1 by @dependabot in #297
- Bump SonarAnalyzer.CSharp from 9.32.0.97167 to 10.4.0.108396 by @dependabot in #288
- Refactor SetExplicitMockBehaviorAnalyzer to use KnownSymbols and add CodeFix by @MattKotsenas in #296
- Bump ReportGenerator from 5.4.1 to 5.4.2 by @dependabot in #298
- Bump Verify.Xunit from 28.6.1 to 28.7.0 by @dependabot in #300
- Bump Meziantou.Analyzer from 2.0.182 to 2.0.183 by @dependabot in #299
- Remove false positive for Moq1200 when using parameterized lambda by @rjmurillo in #301
- Add new rule to enforce MockBehavior.Strict (Moq1410) by @rjmurillo in #302
Full Changelog: v0.2.0...v0.3.0
v0.3.0-alpha.1
This is a small update to include a bug fix for code analyzers crashing in the IDE.
Full list of What's Changed
- Add AnalyzerUtilities to NuGet package by @MattKotsenas in #326
Full Changelog: v0.3.0-alpha...v0.3.0-alpha.1
v0.3.0-alpha
Moq.Analyzers v0.3.0 🎄
Holidays are coming and it's time for the last release of the year! 🎉
There's a lot that has gone into this release, mostly housekeeping and bug fixes that are transparent to you. However, there are two new diagnostics included in this release.
This will be the last release until we move to v1.0.0
Analyzer Behavior Changes
- Remove false positive for Moq1200 when using parameterized lambda by @rjmurillo in #301
- Add new rule to enforce MockBehavior.Strict (Moq1410) by @rjmurillo in #302
Full List of What's Changed
- Bump Nerdbank.GitVersioning from 3.6.143 to 3.6.146 by @dependabot in #232
- Bump Microsoft.Diagnostics.Tracing.TraceEvent from 3.1.15 to 3.1.16 by @dependabot in #228
- Add IOperation to DiagnosticExtensions and clean up overloads by @MattKotsenas in #233
- Bump nbgv from 3.6.143 to 3.6.146 by @dependabot in #230
- Bump Meziantou.Analyzer from 2.0.169 to 2.0.173 by @dependabot in #231
- Create a shared Common .projitems by @MattKotsenas in #235
- Remove ECS0200 suppression and update WellKnownTypes to not trigger ECS0600 by @rjmurillo in #236
- Add BannedApiAnalyzer and ban direct use of Diagnostic.Create by @MattKotsenas in #239
- Add *.props and *.targets to XML section of .editorconfig template by @MattKotsenas in #240
- Bump Meziantou.Analyzer from 2.0.173 to 2.0.175 by @dependabot in #237
- Remove dead suppressions and dead code by @MattKotsenas in #242
- Add rule suppression docs to README and each rule by @MattKotsenas in #241
- Bump Meziantou.Analyzer from 2.0.175 to 2.0.176 by @dependabot in #243
- Disable SquiggleCop for PerfDiff by @MattKotsenas in #244
- Bump Roslynator.Analyzers from 4.12.8 to 4.12.9 by @dependabot in #246
- Bump Verify.Xunit from 27.0.1 to 27.1.0 by @dependabot in #247
- Use WellKnownTypeProvider + KnownSymbols pattern to simplify analyzers by @MattKotsenas in #245
- Bump Polyfill from 7.1.2 to 7.2.0 by @dependabot in #248
- Bump Verify.Xunit from 27.1.0 to 28.0.0 by @dependabot in #251
- Bump Meziantou.Analyzer from 2.0.176 to 2.0.177 by @dependabot in #249
- Bump Verify.Xunit from 28.0.0 to 28.1.3 by @dependabot in #253
- Bump Polyfill from 7.2.0 to 7.4.0 by @dependabot in #256
- Bump EffectiveCSharp.Analyzers from 0.1.0 to 0.2.0 by @dependabot in #250
- Bump Verify.Xunit from 28.1.3 to 28.2.0 by @dependabot in #257
- Update global.json to SDK 9 by @rjmurillo in #263
- Bump Meziantou.Analyzer from 2.0.177 to 2.0.179 by @dependabot in #262
- Bump ReportGenerator from 5.3.11 to 5.4.1 by @dependabot in #264
- Bump Verify.Xunit from 28.2.0 to 28.3.0 by @dependabot in #265
- Remove forced lf in .editorconfig by @MattKotsenas in #271
- Reduce severity of S3267: Loops should be simplified with "LINQ" expressions by @MattKotsenas in #272
- Bump GetPackFromProject to fix race in .NET 9 SDK by @MattKotsenas in #274
- Bump Polyfill from 7.4.0 to 7.5.0 by @dependabot in #270
- Move "upload binlogs" CI step earlier in pipeline and run even if failed by @MattKotsenas in #273
- Bump Verify.Xunit from 28.3.0 to 28.3.2 by @dependabot in #269
- Bump Microsoft.CodeAnalysis.BannedApiAnalyzers from 3.11.0-beta1.24454.1 to 3.11.0-beta1.24508.2 by @dependabot in #268
- Bump Meziantou.Analyzer from 2.0.179 to 2.0.181 by @dependabot in #275
- Bump Microsoft.NET.Test.Sdk from 17.11.1 to 17.12.0 by @dependabot in #277
- Bump Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers from 3.11.0-beta1.24454.1 to 3.11.0-beta1.24508.2 by @dependabot in #276
- Bump Microsoft.VisualStudio.Threading.Analyzers from 17.11.20 to 17.12.19 by @dependabot in #260
- Bump Verify.Xunit from 28.3.2 to 28.4.0 by @dependabot in #280
- Bump Meziantou.Analyzer from 2.0.181 to 2.0.182 by @dependabot in #279
- Bump Nerdbank.GitVersioning from 3.6.146 to 3.7.112 by @dependabot in #285
- Bump Microsoft.CodeAnalysis.BannedApiAnalyzers from 3.11.0-beta1.24508.2 to 3.11.0-beta1.24527.2 by @dependabot in #283
- Bump Polyfill from 7.5.0 to 7.7.1 by @dependabot in #287
- Bump Verify.Xunit from 28.4.0 to 28.6.0 by @dependabot in #286
- Bump nbgv from 3.6.146 to 3.7.112 by @dependabot in #284
- Align .editorconfig with dotnet new template by @MattKotsenas in #289
- Bump Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers from 3.11.0-beta1.24508.2 to 3.11.0-beta1.24527.2 by @dependabot in #282
- Add reference to Microsoft.CodeAnalysis.AnalyzerUtilities and delete forked methods by @MattKotsenas in #290
- Bump Roslynator.Analyzers from 4.12.9 to 4.12.10 by @dependabot in #291
- Bump Polyfill from 7.7.1 to 7.8.0 by @dependabot in #293
- Bump xunit.runner.visualstudio from 2.8.2 to 3.0.0 by @dependabot in #294
- Bump Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers from 3.11.0-beta1.24508.2 to 3.11.0-beta1.24527.2 by @dependabot in #292
- Bump Verify.Xunit from 28.6.0 to 28.6.1 by @dependabot in #297
- Bump SonarAnalyzer.CSharp from 9.32.0.97167 to 10.4.0.108396 by @dependabot in #288
- Refactor SetExplicitMockBehaviorAnalyzer to use KnownSymbols and add CodeFix by @MattKotsenas in #296
- Bump ReportGenerator from 5.4.1 to 5.4.2 by @dependabot in #298
- Bump Verify.Xunit from 28.6.1 to 28.7.0 by @dependabot in #300
- Bump Meziantou.Analyzer from 2.0.182 to 2.0.183 by @dependabot in #299
- Remove false positive for Moq1200 when using parameterized lambda by @rjmurillo in #301
- Add new rule to enforce MockBehavior.Strict (Moq1410) by @rjmurillo in #302
Full Changelog: v0.2.0...v0.3.0-alpha
v0.2.0
Changes
- Add rule to explicitly pick MockBehavior by @MattKotsenas in #226
- Fix false detection in Moq1201 in Moq 4.16.0 by @rjmurillo in #224
- Fix false detection in Moq1200 using async tasks by @rjmurillo in #221
Housekeeping
- Add CODEOWNERS by @MattKotsenas in #193
- Bump Verify.Xunit from 26.2.0 to 26.4.0 by @dependabot in #197
- Bump Microsoft.NET.Test.Sdk from 17.11.0 to 17.11.1 by @dependabot in #196
- Bump DotNet.ReproducibleBuilds from 1.2.4 to 1.2.25 by @dependabot in #201
- Bump DotNet.ReproducibleBuilds.Isolated from 1.2.4 to 1.2.25 by @dependabot in #200
- Bump Verify.Xunit from 26.4.0 to 26.4.4 by @dependabot in #199
- Bump ReportGenerator from 5.3.8 to 5.3.9 by @dependabot in #195
- Update SDK to get newer version of Source Link by @MattKotsenas in #202
- Bump Verify.Xunit from 26.4.4 to 26.5.0 by @dependabot in #205
- Bump Roslynator.Analyzers from 4.12.4 to 4.12.5 by @dependabot in #204
- Bump Verify.Xunit from 26.5.0 to 26.6.0 by @dependabot in #207
- Bump Meziantou.Analyzer from 2.0.163 to 2.0.168 by @dependabot in #206
- Bump Roslynator.Analyzers from 4.12.5 to 4.12.6 by @dependabot in #209
- Bump ReportGenerator from 5.3.9 to 5.3.10 by @dependabot in #212
- Bump Roslynator.Analyzers from 4.12.6 to 4.12.7 by @dependabot in #213
- Bump Meziantou.Analyzer from 2.0.168 to 2.0.169 by @dependabot in #211
- Bump xunit from 2.9.0 to 2.9.2 by @dependabot in #210
- Use dotnet template for .gitattributes by @MattKotsenas in #215
Full Changelog: v0.1.2...v0.2.0
v0.1.2
What's Changed
Lots of housekeeping and a couple of fixes and enhancements.
Enhancements and Bug fixes
- Add Mock.Of and MockRepository support to ConstructorArgumentsShouldMatchAnalyzer by @rjmurillo in #140
- Moq1100 incorrectly firing on nullable parameters by @marcovr @rjmurillo in #187
Other Changes
- Update version.json to 0.2.0 by @rjmurillo in #142
- Remove CSharpGuidelinesAnalyzer and associated editorconfig values by @rjmurillo in #145
- Bump ReportGenerator from 5.3.6 to 5.3.7 by @dependabot in #138
- Bump Newtonsoft.Json from 13.0.1 to 13.0.3 by @dependabot in #134
- Bump Microsoft.Extensions.Logging from 6.0.0-preview.5.21301.5 to 8.0.0 by @dependabot in #132
- Bump Microsoft.Diagnostics.Tracing.TraceEvent from 3.0.2 to 3.1.12 by @dependabot in #131
- Bump Meziantou.Analyzer from 2.0.159 to 2.0.160 by @dependabot in #151
- Bump xunit from 2.8.1 to 2.9.0 by @dependabot in #148
- Bump xunit.runner.visualstudio from 2.8.1 to 2.8.2 by @dependabot in #149
- Bump Verify.Xunit from 25.0.4 to 25.3.1 by @dependabot in #152
- Bump SonarAnalyzer.CSharp from 9.28.0.94264 to 9.29.0.95321 by @dependabot in #154
- Bump Verify.Xunit from 25.3.1 to 25.3.2 by @dependabot in #158
- Bump Microsoft.Diagnostics.Tracing.TraceEvent from 3.1.12 to 3.1.13 by @dependabot in #157
- Bump Meziantou.Analyzer from 2.0.160 to 2.0.161 by @dependabot in #156
- Bump ReportGenerator from 5.3.7 to 5.3.8 by @dependabot in #155
- Bump Verify.Xunit from 25.3.2 to 26.1.5 by @dependabot in #164
- Bump Meziantou.Analyzer from 2.0.161 to 2.0.162 by @dependabot in #163
- Bump SonarAnalyzer.CSharp from 9.29.0.95321 to 9.30.0.95878 by @dependabot in #160
- Enable TreatWarningsAsErrors by @MattKotsenas in #165
- Disable rollForward for SDK in global.json by @MattKotsenas in #170
- Add SquiggleCop to baseline analyzer settings by @MattKotsenas in #166
- Bump Verify.Xunit from 26.1.5 to 26.1.6 by @dependabot in #168
- Bump Meziantou.Xunit.ParallelTestFramework from 2.2.0 to 2.3.0 by @dependabot in #169
- Bump Meziantou.Analyzer from 2.0.162 to 2.0.163 by @dependabot in #167
- Update SquiggleCop and remove ErrorLog property by @MattKotsenas in #174
- Bump SonarAnalyzer.CSharp from 9.30.0.95878 to 9.31.0.96804 by @dependabot in #175
- Bump Nerdbank.GitVersioning from 3.6.139 to 3.6.141 by @dependabot in #178
- Bump Verify.Xunit from 26.1.6 to 26.2.0 by @dependabot in #180
- Bump Microsoft.VisualStudio.Threading.Analyzers from 17.10.48 to 17.11.20 by @dependabot in #181
- Bump nbgv from 3.6.139 to 3.6.141 by @dependabot in #179
- Bump SquiggleCop.Tasks from 1.0.13 to 1.0.26 by @dependabot in #185
- Bump squigglecop.tool from 1.0.13 to 1.0.26 by @dependabot in #186
- Bump Microsoft.NET.Test.Sdk from 17.10.0 to 17.11.0 by @dependabot in #184
- Bump SonarAnalyzer.CSharp from 9.31.0.96804 to 9.32.0.97167 by @dependabot in #183
- Add Effective C# analyzers and update SquiggleCop baselines by @rjmurillo in #182
- Bump Nerdbank.GitVersioning from 3.6.141 to 3.6.143 by @dependabot in #189
- Bump Microsoft.Diagnostics.Tracing.TraceEvent from 3.1.13 to 3.1.15 by @dependabot in #190
- Bump nbgv from 3.6.141 to 3.6.143 by @dependabot in #188
- Bump dependabot/fetch-metadata from 1.1.1 to 2.2.0 by @dependabot in #192
Full Changelog: v0.1.1...v0.1.2