Skip to content

fix: exception in codefix of explicit mock behavior#701

Merged
rjmurillo merged 2 commits intorjmurillo:mainfrom
Youssef1313:dev/ygerges/fix-exception
Aug 4, 2025
Merged

fix: exception in codefix of explicit mock behavior#701
rjmurillo merged 2 commits intorjmurillo:mainfrom
Youssef1313:dev/ygerges/fix-exception

Conversation

@Youssef1313
Copy link
Copy Markdown
Contributor

@Youssef1313 Youssef1313 commented Aug 2, 2025

Summary by CodeRabbit

  • Bug Fixes
    • Improved handling of object creation expressions for broader compatibility in argument insertion and replacement scenarios.
  • Tests
    • Expanded test coverage to include cases with target-typed new expressions for mock object creation, ensuring correct behavior with various MockBehavior arguments.

Copilot AI review requested due to automatic review settings August 2, 2025 05:31
@Youssef1313 Youssef1313 requested a review from rjmurillo as a code owner August 2, 2025 05:31
@CLAassistant
Copy link
Copy Markdown

CLAassistant commented Aug 2, 2025

CLA assistant check
All committers have signed the CLA.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Aug 2, 2025

📝 Walkthrough

Walkthrough

The updates generalize type checks in internal logic from ObjectCreationExpressionSyntax to its base class and update exception messages accordingly. Additionally, new test data is added to cover scenarios involving target-typed new expressions for mock object creation, enhancing test coverage for these cases.

Changes

Cohort / File(s) Change Summary
Type Generalization in Syntax Handling
src/CodeFixes/SyntaxGeneratorExtensions.cs
Internal logic updated to check for BaseObjectCreationExpressionSyntax instead of ObjectCreationExpressionSyntax in two methods. Exception messages are also updated to reference the new type. No changes to method signatures or public APIs.
Expanded Test Coverage for Target-Typed New
tests/Moq.Analyzers.Test/SetExplicitMockBehaviorCodeFixTests.cs
Additional test data introduced to cover target-typed new expressions for mock creation, including cases with and without explicit MockBehavior arguments. No changes to public entity declarations; only new test cases are added to an existing public method.

Sequence Diagram(s)

sequenceDiagram
    participant TestRunner
    participant CodeFix
    participant SyntaxGeneratorExtensions

    TestRunner->>CodeFix: Run code fix for mock creation
    CodeFix->>SyntaxGeneratorExtensions: InsertArguments/ReplaceArgument with syntax node
    SyntaxGeneratorExtensions->>SyntaxGeneratorExtensions: Check if syntax is BaseObjectCreationExpressionSyntax
    SyntaxGeneratorExtensions-->>CodeFix: Perform argument insertion/replacement or throw exception
    CodeFix-->>TestRunner: Return fixed code
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Suggested labels

feature

Suggested reviewers

  • MattKotsenas

Note

⚡️ Unit Test Generation is now available in beta!

Learn more here, or try it out under "Finishing Touches" below.


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between cc183e3 and 6a333aa.

📒 Files selected for processing (2)
  • src/CodeFixes/SyntaxGeneratorExtensions.cs (2 hunks)
  • tests/Moq.Analyzers.Test/SetExplicitMockBehaviorCodeFixTests.cs (2 hunks)
🧰 Additional context used
📓 Path-based instructions (8)
**/*.cs

📄 CodeRabbit Inference Engine (.github/copilot-instructions.md)

Do not add or duplicate usings covered by src/Common/GlobalUsings.cs

**/*.cs: Add XML documentation for all public APIs.
Use tags for all type references in XML documentation instead of plain text.
Use for C# keywords in XML documentation.
Use for parameter references in XML documentation.
Use .. for inline code snippets in XML documentation.
All public APIs must have complete XML documentation with accurate and up-to-date information.

Files:

  • src/CodeFixes/SyntaxGeneratorExtensions.cs
  • tests/Moq.Analyzers.Test/SetExplicitMockBehaviorCodeFixTests.cs

⚙️ CodeRabbit Configuration File

**/*.cs: I need your help tracking down and fixing some bugs that have been reported in this codebase.

I suspect the bugs are related to:

  • Incorrect handling of edge cases
  • Off-by-one errors in loops or array indexing
  • Unexpected data types
  • Uncaught exceptions
  • Concurrency issues
  • Improper configuration settings

To diagnose:

  1. Review the code carefully and systematically
  2. Trace the relevant code paths
  3. Consider boundary conditions and potential error states
  4. Look for antipatterns that tend to cause bugs
  5. Run the code mentally with example inputs
  6. Think about interactions between components

When you find potential bugs, for each one provide:

  1. File path and line number(s)
  2. Description of the issue and why it's a bug
  3. Example input that would trigger the bug
  4. Suggestions for how to fix it

After analysis, please update the code with your proposed fixes. Try to match the existing code style. Add regression tests if possible to prevent the bugs from recurring.

I appreciate your diligence and attention to detail! Let me know if you need any clarification on the intended behavior of the code.

Files:

  • src/CodeFixes/SyntaxGeneratorExtensions.cs
  • tests/Moq.Analyzers.Test/SetExplicitMockBehaviorCodeFixTests.cs
{src/Analyzers/**/*.cs,src/CodeFixes/**/*.cs,src/Common/**/*.cs}

📄 CodeRabbit Inference Engine (.github/copilot-instructions.md)

Place new analyzers in src/Analyzers/, code fixes in src/CodeFixes/, and shared logic in src/Common/

Files:

  • src/CodeFixes/SyntaxGeneratorExtensions.cs
**/*.{cs,csproj,sln}

📄 CodeRabbit Inference Engine (CONTRIBUTING.md)

Build with 'dotnet build /p:PedanticMode=true'. All warnings must be treated as errors. PRs that do not build cleanly will be closed.

Files:

  • src/CodeFixes/SyntaxGeneratorExtensions.cs
  • tests/Moq.Analyzers.Test/SetExplicitMockBehaviorCodeFixTests.cs
src/**/*.cs

📄 CodeRabbit Inference Engine (CONTRIBUTING.md)

All diagnostic spans in Roslyn analyzers MUST be character-precise. A test failure related to a diagnostic span is a CRITICAL FAILURE and must be addressed immediately.

Files:

  • src/CodeFixes/SyntaxGeneratorExtensions.cs
{src/Analyzers/*Analyzer.cs,src/CodeFixes/*Fixer.cs,tests/Moq.Analyzers.Test/*AnalyzerTests.cs,tests/Moq.Analyzers.Test/*CodeFixTests.cs}

📄 CodeRabbit Inference Engine (.github/copilot-instructions.md)

Use [Description]Analyzer.cs, [Description]Fixer.cs, [Description]AnalyzerTests.cs, [Description]CodeFixTests.cs for new components

Files:

  • tests/Moq.Analyzers.Test/SetExplicitMockBehaviorCodeFixTests.cs
tests/Moq.Analyzers.Test/*CodeFixTests.cs

📄 CodeRabbit Inference Engine (.github/copilot-instructions.md)

Use the [MemberData]-annotated [Theory] pattern with a public static IEnumerable<object[]> data source for code fix tests

Files:

  • tests/Moq.Analyzers.Test/SetExplicitMockBehaviorCodeFixTests.cs
tests/Moq.Analyzers.Test/**/*.cs

📄 CodeRabbit Inference Engine (.github/copilot-instructions.md)

Add or update unit tests in tests/Moq.Analyzers.Test/ for every analyzer or code fix change

Files:

  • tests/Moq.Analyzers.Test/SetExplicitMockBehaviorCodeFixTests.cs
tests/**/*.cs

📄 CodeRabbit Inference Engine (CONTRIBUTING.md)

tests/**/*.cs: Run all unit tests using 'dotnet test --settings ./build/targets/tests/test.runsettings'. All tests must pass.
Every analyzer and fixer must have comprehensive unit tests.
Use the project's data-driven test pattern for code fix tests: provide a public static IEnumerable<object[]> data source, use [Theory] and [MemberData], and define a static Template function with placeholders.
In code fix tests, the code that triggers the analyzer MUST be wrapped with the diagnostic marker syntax (e.g., {|Moq1210:...|}).
Use AllAnalyzersVerifier for tests that verify code patterns don't trigger unwanted diagnostics from any Moq analyzer.
Group analyzer tests by Moq version compatibility: place tests for features only available in Moq 4.18.4+ in a 'new' group, and tests for features available in both 4.8.2 and 4.18.4 in a 'both' or 'old' group.
Do not include tests for APIs or patterns that do not exist in the targeted Moq version; such tests will fail at compile time.
Only set up or verify virtual, abstract, or interface members in Moq analyzer tests. Do not attempt to set up or verify non-virtual, static, or sealed members.
Use SetupAdd and SetupRemove only for virtual events, and only in Moq 4.18.4+.
Setups for explicit interface implementations must use the correct cast syntax (e.g., ((IMyInterface)x).Method()).
Use .Protected().Setup(...) only for protected virtual members, and only in Moq 4.18.4+.
Do not add analyzer tests for static, const, or readonly members, as Moq cannot mock or set up these members.
Always include both Task and ValueTask scenarios in analyzer tests for async methods.
If your analyzer or code fix interacts with Callback or SetupSequence, ensure you have tests for both single and sequence setups.
Always specify and test for both MockBehavior.Default and MockBehavior.Strict where relevant in analyzer tests.
If mocking internal members, ensure [assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] is present in the test assembly.

Files:

  • tests/Moq.Analyzers.Test/SetExplicitMockBehaviorCodeFixTests.cs
🧠 Learnings (24)
📓 Common learnings
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: If your PR changes or adds analyzer tests, include a note in the PR description about which Moq versions are targeted and how test data is grouped accordingly.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-27T02:44:39.596Z
Learning: Applies to tests/Moq.Analyzers.Test/**/*.cs : Add or update unit tests in tests/Moq.Analyzers.Test/ for every analyzer or code fix change
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: Applies to tests/**/*.cs : In code fix tests, the code that triggers the analyzer MUST be wrapped with the diagnostic marker syntax (e.g., {|Moq1210:...|}).
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: Applies to tests/Moq.Analyzers.Benchmarks/**/*.cs : Performance-sensitive changes require benchmark validation. Run performance tests locally before submitting PRs and include performance regression analysis in PR description.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-27T02:44:39.596Z
Learning: Applies to {src/Analyzers/*Analyzer.cs,src/CodeFixes/*Fixer.cs,tests/Moq.Analyzers.Test/*AnalyzerTests.cs,tests/Moq.Analyzers.Test/*CodeFixTests.cs} : Use [Description]Analyzer.cs, [Description]Fixer.cs, [Description]AnalyzerTests.cs, [Description]CodeFixTests.cs for new components
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-27T02:44:39.596Z
Learning: Note Moq version compatibility for analyzer/test changes
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: Applies to tests/**/*.cs : Use AllAnalyzersVerifier for tests that verify code patterns don't trigger unwanted diagnostics from any Moq analyzer.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: If a Moq feature has known limitations or edge cases (e.g., explicit interface implementation, event setup), document this in the test or analyzer code.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: Applies to **/*.{cs} : Run Codacy CLI analysis on all changed files and fix all reported issues before submitting the PR.
Learnt from: rjmurillo
PR: rjmurillo/moq.analyzers#0
File: :0-0
Timestamp: 2025-07-22T17:25:24.857Z
Learning: Applies to {src/Analyzers/**/*.cs,tests/**/*.cs}: Moq protected member APIs that need analyzer validation include: Setup, SetupSequence, SetupGet<T>, SetupSet<T>, Verify, VerifyGet<T>, VerifySet<T>, and As<T>() for interface mapping. All protected members must be virtual or abstract to be mockable.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: Applies to tests/**/*.cs : Always specify and test for both MockBehavior.Default and MockBehavior.Strict where relevant in analyzer tests.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: Applies to tests/**/*.cs : Do not include tests for APIs or patterns that do not exist in the targeted Moq version; such tests will fail at compile time.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: Applies to tests/**/*.cs : Setups for explicit interface implementations must use the correct cast syntax (e.g., ((IMyInterface)x).Method()).
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: Setups for explicit interface implementations must use the correct cast syntax (e.g., ((IMyInterface)x).Method()), and only test these scenarios if the Moq version supports them.
Learnt from: rjmurillo
PR: rjmurillo/moq.analyzers#0
File: :0-0
Timestamp: 2025-07-22T17:25:24.857Z
Learning: Applies to {src/Analyzers/**/*.cs,tests/**/*.cs}: For Moq protected member setups using string-based overloads (e.g., `mock.Protected().Setup("MethodName", ...)`), use `ItExpr` matchers instead of `It` matchers. When using `As<T>()` interface mapping, regular `It` matchers are allowed in lambda expressions.
Learnt from: rjmurillo
PR: rjmurillo/moq.analyzers#0
File: :0-0
Timestamp: 2025-07-22T17:25:24.857Z
Learning: Applies to {src/Analyzers/**/*.cs,tests/**/*.cs}: For Moq protected member setups using string-based overloads (e.g., `mock.Protected().Setup("MethodName", ...)`), use `ItExpr` matchers instead of `It` matchers. When using `As<T>()` interface mapping, regular `It` matchers are allowed in lambda expressions.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: When testing code fixes that modify a class member, use a data-driven pattern: a public static IEnumerable<object[]> data source, a [Theory] test method with [MemberData], a static Template function with placeholders, and Verify.VerifyCodeFixAsync.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: Applies to tests/**/*.cs : If mocking internal members, ensure [assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] is present in the test assembly.
📚 Learning: applies to tests/**/*.cs : setups for explicit interface implementations must use the correct cast s...
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: Applies to tests/**/*.cs : Setups for explicit interface implementations must use the correct cast syntax (e.g., ((IMyInterface)x).Method()).

Applied to files:

  • src/CodeFixes/SyntaxGeneratorExtensions.cs
  • tests/Moq.Analyzers.Test/SetExplicitMockBehaviorCodeFixTests.cs
📚 Learning: applies to tests/**/*.cs : in code fix tests, the code that triggers the analyzer must be wrapped wi...
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: Applies to tests/**/*.cs : In code fix tests, the code that triggers the analyzer MUST be wrapped with the diagnostic marker syntax (e.g., {|Moq1210:...|}).

Applied to files:

  • src/CodeFixes/SyntaxGeneratorExtensions.cs
  • tests/Moq.Analyzers.Test/SetExplicitMockBehaviorCodeFixTests.cs
📚 Learning: applies to {src/analyzers/*analyzer.cs,src/codefixes/*fixer.cs,tests/moq.analyzers.test/*analyzertes...
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-27T02:44:39.596Z
Learning: Applies to {src/Analyzers/*Analyzer.cs,src/CodeFixes/*Fixer.cs,tests/Moq.Analyzers.Test/*AnalyzerTests.cs,tests/Moq.Analyzers.Test/*CodeFixTests.cs} : Use [Description]Analyzer.cs, [Description]Fixer.cs, [Description]AnalyzerTests.cs, [Description]CodeFixTests.cs for new components

Applied to files:

  • src/CodeFixes/SyntaxGeneratorExtensions.cs
📚 Learning: applies to tests/**/*.cs : always specify and test for both mockbehavior.default and mockbehavior.st...
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: Applies to tests/**/*.cs : Always specify and test for both MockBehavior.Default and MockBehavior.Strict where relevant in analyzer tests.

Applied to files:

  • tests/Moq.Analyzers.Test/SetExplicitMockBehaviorCodeFixTests.cs
📚 Learning: applies to tests/moq.analyzers.test/*codefixtests.cs : use the [memberdata]-annotated [theory] patte...
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-27T02:44:39.596Z
Learning: Applies to tests/Moq.Analyzers.Test/*CodeFixTests.cs : Use the [MemberData]-annotated [Theory] pattern with a public static IEnumerable<object[]> data source for code fix tests

Applied to files:

  • tests/Moq.Analyzers.Test/SetExplicitMockBehaviorCodeFixTests.cs
📚 Learning: applies to tests/moq.analyzers.test/**/*.cs : add or update unit tests in tests/moq.analyzers.test/ ...
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-27T02:44:39.596Z
Learning: Applies to tests/Moq.Analyzers.Test/**/*.cs : Add or update unit tests in tests/Moq.Analyzers.Test/ for every analyzer or code fix change

Applied to files:

  • tests/Moq.Analyzers.Test/SetExplicitMockBehaviorCodeFixTests.cs
📚 Learning: when testing code fixes that modify a class member, use a data-driven pattern: a public static ienum...
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: When testing code fixes that modify a class member, use a data-driven pattern: a public static IEnumerable<object[]> data source, a [Theory] test method with [MemberData], a static Template function with placeholders, and Verify.VerifyCodeFixAsync.

Applied to files:

  • tests/Moq.Analyzers.Test/SetExplicitMockBehaviorCodeFixTests.cs
📚 Learning: always specify and test for both mockbehavior.default and mockbehavior.strict where relevant....
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: Always specify and test for both MockBehavior.Default and MockBehavior.Strict where relevant.

Applied to files:

  • tests/Moq.Analyzers.Test/SetExplicitMockBehaviorCodeFixTests.cs
📚 Learning: avoid unnecessary complexity in test types and mock setups; each test should demonstrate a single mo...
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: Avoid unnecessary complexity in test types and mock setups; each test should demonstrate a single Moq feature or analyzer rule.

Applied to files:

  • tests/Moq.Analyzers.Test/SetExplicitMockBehaviorCodeFixTests.cs
📚 Learning: if your pr changes or adds analyzer tests, include a note in the pr description about which moq vers...
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: If your PR changes or adds analyzer tests, include a note in the PR description about which Moq versions are targeted and how test data is grouped accordingly.

Applied to files:

  • tests/Moq.Analyzers.Test/SetExplicitMockBehaviorCodeFixTests.cs
📚 Learning: applies to tests/**/*.cs : use setupadd and setupremove only for virtual events, and only in moq 4.1...
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: Applies to tests/**/*.cs : Use SetupAdd and SetupRemove only for virtual events, and only in Moq 4.18.4+.

Applied to files:

  • tests/Moq.Analyzers.Test/SetExplicitMockBehaviorCodeFixTests.cs
📚 Learning: applies to tests/**/*.cs : do not add analyzer tests for static, const, or readonly members, as moq ...
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: Applies to tests/**/*.cs : Do not add analyzer tests for static, const, or readonly members, as Moq cannot mock or set up these members.

Applied to files:

  • tests/Moq.Analyzers.Test/SetExplicitMockBehaviorCodeFixTests.cs
📚 Learning: setups for explicit interface implementations must use the correct cast syntax (e.g., ((imyinterface...
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: Setups for explicit interface implementations must use the correct cast syntax (e.g., ((IMyInterface)x).Method()), and only test these scenarios if the Moq version supports them.

Applied to files:

  • tests/Moq.Analyzers.Test/SetExplicitMockBehaviorCodeFixTests.cs
📚 Learning: applies to {src/analyzers/**/*.cs,tests/**/*.cs}: for moq protected member setups using string-based...
Learnt from: rjmurillo
PR: rjmurillo/moq.analyzers#0
File: :0-0
Timestamp: 2025-07-22T17:25:24.857Z
Learning: Applies to {src/Analyzers/**/*.cs,tests/**/*.cs}: For Moq protected member setups using string-based overloads (e.g., `mock.Protected().Setup("MethodName", ...)`), use `ItExpr` matchers instead of `It` matchers. When using `As<T>()` interface mapping, regular `It` matchers are allowed in lambda expressions.

Applied to files:

  • tests/Moq.Analyzers.Test/SetExplicitMockBehaviorCodeFixTests.cs
📚 Learning: string-based method name detection should be avoided in favor of the moqknownsymbols pattern for con...
Learnt from: rjmurillo
PR: rjmurillo/moq.analyzers#633
File: src/Common/ISymbolExtensions.cs:305-305
Timestamp: 2025-07-26T22:05:51.788Z
Learning: String-based method name detection should be avoided in favor of the MoqKnownSymbols pattern for consistency, type safety, and robustness in the Moq.Analyzers codebase. Methods like IsRaisesMethodByName that use string.Equals for method name checking go against established patterns.

Applied to files:

  • tests/Moq.Analyzers.Test/SetExplicitMockBehaviorCodeFixTests.cs
📚 Learning: if mocking internal members, ensure [assembly: internalsvisibleto("dynamicproxygenassembly2")] is pr...
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: If mocking internal members, ensure [assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] is present in the test assembly.

Applied to files:

  • tests/Moq.Analyzers.Test/SetExplicitMockBehaviorCodeFixTests.cs
📚 Learning: applies to tests/**/*.cs : if mocking internal members, ensure [assembly: internalsvisibleto("dynami...
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: Applies to tests/**/*.cs : If mocking internal members, ensure [assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] is present in the test assembly.

Applied to files:

  • tests/Moq.Analyzers.Test/SetExplicitMockBehaviorCodeFixTests.cs
📚 Learning: the callbacksignatureshouldmatchmockedmethodanalyzer (moq1100) currently has a gap where it does not...
Learnt from: rjmurillo
PR: rjmurillo/moq.analyzers#580
File: tests/Moq.Analyzers.Test/CallbackSignatureShouldMatchMockedMethodAnalyzerTests.cs:116-116
Timestamp: 2025-07-26T15:57:15.819Z
Learning: The CallbackSignatureShouldMatchMockedMethodAnalyzer (Moq1100) currently has a gap where it does not validate generic .Callback<T>() type parameters against the mocked method signature. This can lead to runtime errors when generic callback types don't match the expected method parameters, documented in CallbackSignatureShouldMatchMockedMethodAnalyzerTests.GenericCallbackValidation_CurrentLimitation_IsDocumented(). According to Moq documentation, .Callback<T> should provide compile-time type safety where T must match the argument type of the mocked method.

Applied to files:

  • tests/Moq.Analyzers.Test/SetExplicitMockBehaviorCodeFixTests.cs
📚 Learning: group test data by moq version compatibility: 'new' for moq 4.18.4+, 'both' or 'old' for features av...
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.110Z
Learning: Group test data by Moq version compatibility: 'new' for Moq 4.18.4+, 'both' or 'old' for features available in both 4.8.2 and 4.18.4.

Applied to files:

  • tests/Moq.Analyzers.Test/SetExplicitMockBehaviorCodeFixTests.cs
📚 Learning: for every supported moq feature, write tests that cover both valid and invalid usage; use assert.thr...
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: For every supported Moq feature, write tests that cover both valid and invalid usage; use Assert.Throws in tests to verify that invalid setups fail as expected.

Applied to files:

  • tests/Moq.Analyzers.Test/SetExplicitMockBehaviorCodeFixTests.cs
📚 Learning: always group and annotate tests by moq version compatibility; do not include tests for features/apis...
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: Always group and annotate tests by Moq version compatibility; do not include tests for features/APIs that do not exist in the targeted Moq version.

Applied to files:

  • tests/Moq.Analyzers.Test/SetExplicitMockBehaviorCodeFixTests.cs
📚 Learning: applies to tests/**/*.cs : group analyzer tests by moq version compatibility: place tests for featur...
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: Applies to tests/**/*.cs : Group analyzer tests by Moq version compatibility: place tests for features only available in Moq 4.18.4+ in a 'new' group, and tests for features available in both 4.8.2 and 4.18.4 in a 'both' or 'old' group.

Applied to files:

  • tests/Moq.Analyzers.Test/SetExplicitMockBehaviorCodeFixTests.cs
📚 Learning: applies to {src/analyzers/**/*.cs,tests/**/*.cs}: moq protected member apis that need analyzer valid...
Learnt from: rjmurillo
PR: rjmurillo/moq.analyzers#0
File: :0-0
Timestamp: 2025-07-22T17:25:24.857Z
Learning: Applies to {src/Analyzers/**/*.cs,tests/**/*.cs}: Moq protected member APIs that need analyzer validation include: Setup, SetupSequence, SetupGet<T>, SetupSet<T>, Verify, VerifyGet<T>, VerifySet<T>, and As<T>() for interface mapping. All protected members must be virtual or abstract to be mockable.

Applied to files:

  • tests/Moq.Analyzers.Test/SetExplicitMockBehaviorCodeFixTests.cs
⏰ Context from checks skipped due to timeout of 900000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Codacy Static Code Analysis
🔇 Additional comments (4)
src/CodeFixes/SyntaxGeneratorExtensions.cs (2)

32-39: LGTM! Correctly generalizes object creation handling.

The change from ObjectCreationExpressionSyntax to BaseObjectCreationExpressionSyntax properly supports both traditional new Type() and target-typed new() expressions. This fixes the exception that would occur when the codefix encountered target-typed new expressions. The exception message is also correctly updated.


62-69: LGTM! Consistent with InsertArguments method changes.

The same beneficial generalization is applied here, ensuring both InsertArguments and ReplaceArgument methods handle target-typed new expressions consistently. The exception message accurately reflects the supported types.

tests/Moq.Analyzers.Test/SetExplicitMockBehaviorCodeFixTests.cs (2)

36-54: Excellent test coverage for target-typed new expressions.

The new test data comprehensively covers target-typed new() expressions for Mock instantiation, testing all relevant MockBehavior scenarios. The test cases properly use diagnostic markers and follow the established patterns. This validates that the SyntaxGeneratorExtensions.cs changes correctly handle target-typed new expressions in the codefix.


112-112: LGTM! Properly includes new test data.

The return statement correctly includes the new mockConstructorsWithTargetTypedNew test data in the Union chain, ensuring the target-typed new expression scenarios are executed alongside existing tests.

✨ Finishing Touches
  • 📝 Generate Docstrings
🧪 Generate unit tests

❌ Error creating Unit Test PR.

  • Create PR with unit tests
  • Commit unit tests in branch dev/ygerges/fix-exception
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR fixes an exception in the code fix for explicit mock behavior by updating the code to handle target-typed new() expressions. The fix changes the type checking from ObjectCreationExpressionSyntax to the more general BaseObjectCreationExpressionSyntax to support both traditional object creation (new Mock<ISample>()) and target-typed new expressions (Mock<ISample> mock = new()).

Key changes:

  • Updated SyntaxGeneratorExtensions to use BaseObjectCreationExpressionSyntax instead of ObjectCreationExpressionSyntax
  • Added comprehensive test coverage for target-typed new expressions with various MockBehavior scenarios

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
src/CodeFixes/SyntaxGeneratorExtensions.cs Updated type checking to use BaseObjectCreationExpressionSyntax for broader compatibility with C# syntax patterns
tests/Moq.Analyzers.Test/SetExplicitMockBehaviorCodeFixTests.cs Added test cases for target-typed new expressions and integrated them into the test data

@coderabbitai coderabbitai bot requested a review from MattKotsenas August 2, 2025 05:31
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@coderabbitai coderabbitai bot added the feature label Aug 2, 2025
@rjmurillo
Copy link
Copy Markdown
Owner

@Youssef1313 Thank you for the contribution. I'll review and merge to main for the upcoming 0.4.0 release and back port to 0.3.0 branch

@rjmurillo rjmurillo changed the title Fix exception in codefix of explicit mock behavior bug: Fix exception in codefix of explicit mock behavior Aug 4, 2025
@rjmurillo rjmurillo added bug triage analyzers Change that impacts an analyzer behavior labels Aug 4, 2025
@rjmurillo rjmurillo self-assigned this Aug 4, 2025
@rjmurillo rjmurillo added this to the vNext milestone Aug 4, 2025
@rjmurillo rjmurillo changed the title bug: Fix exception in codefix of explicit mock behavior fix: exception in codefix of explicit mock behavior Aug 4, 2025
@rjmurillo rjmurillo enabled auto-merge (squash) August 4, 2025 08:37
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Aug 4, 2025

Note

Unit test generation is an Early Access feature. Expect some limitations and changes as we gather feedback and continue to improve it.


Generating unit tests... This may take up to 20 minutes.

@rjmurillo rjmurillo merged commit 4c41408 into rjmurillo:main Aug 4, 2025
15 of 19 checks passed
@Youssef1313 Youssef1313 deleted the dev/ygerges/fix-exception branch August 4, 2025 09:57
mcj-coder pushed a commit to mcj-coder-org/claude-auto-resume that referenced this pull request Jan 13, 2026
[//]: # (dependabot-start)
⚠️  **Dependabot is rebasing this PR** ⚠️ 

Rebasing might not happen immediately, so don't worry if this takes some
time.

Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.

---

[//]: # (dependabot-end)

Updated
[Meziantou.Analyzer](https://github.com/meziantou/Meziantou.Analyzer)
from 2.0.182 to 2.0.276.

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

_Sourced from [Meziantou.Analyzer's
releases](https://github.com/meziantou/Meziantou.Analyzer/releases)._

## 2.0.276

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.276>

## What's Changed
* Fix MA0182 false positive on types with DynamicallyAccessedMembers
attribute by @​Copilot in
https://github.com/meziantou/Meziantou.Analyzer/pull/963


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.275...2.0.276

## 2.0.275

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.275>

**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.274...2.0.275

## 2.0.274

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.274>

## What's Changed
* Fix MA0182 to handle COM interop types with CoClass attribute by
@​Copilot in https://github.com/meziantou/Meziantou.Analyzer/pull/959


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.273...2.0.274

## 2.0.273

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.273>

## What's Changed
* Fix MA0182 false positive for pointer type parameters by @​Copilot in
https://github.com/meziantou/Meziantou.Analyzer/pull/961


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.272...2.0.273

## 2.0.272

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.272>

## What's Changed
* Extend MA0182 to all types by @​meziantou in
https://github.com/meziantou/Meziantou.Analyzer/pull/957


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.271...2.0.272

## 2.0.271

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.271>

## What's Changed
* Add MA0182: Detect unused internal classes with correct handling of
generic type arguments and typeof references by @​Copilot in
https://github.com/meziantou/Meziantou.Analyzer/pull/956


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.270...2.0.271

## 2.0.270

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.270>

## What's Changed
* Apply repository configuration by @​meziantou in
https://github.com/meziantou/Meziantou.Analyzer/pull/954


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.269...2.0.270

## 2.0.269

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.269>

## What's Changed
* Apply repository configuration by @​meziantou in
https://github.com/meziantou/Meziantou.Analyzer/pull/953


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.268...2.0.269

## 2.0.268

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.268>

**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.267...2.0.268

## 2.0.267

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.267>

## What's Changed
* Add MA0181 - Report use of explicit casts by @​Copilot in
https://github.com/meziantou/Meziantou.Analyzer/pull/952


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.266...2.0.267

## 2.0.266

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.266>

**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.265...2.0.266

## 2.0.265

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.265>

## What's Changed
* Add refactoring: convert interpolated string to Format call by
@​meziantou in https://github.com/meziantou/Meziantou.Analyzer/pull/948


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.264...2.0.265

## 2.0.264

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.264>

## What's Changed
* Lower global_level from -1 to -100 in editorconfig files by @​Copilot
in https://github.com/meziantou/Meziantou.Analyzer/pull/944


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.263...2.0.264

## 2.0.263

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.263>

## What's Changed
* Add MA0180: Detect ILogger<T> type parameter mismatch with containing
class by @​Copilot in
https://github.com/meziantou/Meziantou.Analyzer/pull/941


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.262...2.0.263

## 2.0.262

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.262>

## What's Changed
* Make DocumentationGenerator ignore trailing whitespace differences by
@​Copilot in https://github.com/meziantou/Meziantou.Analyzer/pull/942


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.261...2.0.262

## 2.0.261

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.261>

## What's Changed
* Add MA0179: Detect inefficient attribute existence checks by @​Copilot
in https://github.com/meziantou/Meziantou.Analyzer/pull/939


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.260...2.0.261

## 2.0.260

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.260>

## What's Changed
* Add concurrency control to serialize CI runs on main branch by
@​Copilot in https://github.com/meziantou/Meziantou.Analyzer/pull/938


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.259...2.0.260

## 2.0.259

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.259>

## What's Changed
* Add opt-in configuration for MA0153 to detect logging of types
containing DataClassification members by @​Copilot in
https://github.com/meziantou/Meziantou.Analyzer/pull/936


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.258...2.0.259

## 2.0.258

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.258>

**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.257...2.0.258

## 2.0.257

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.257>

## What's Changed
* Fix MA0042 to not flag SemaphoreSlim.Wait(0) as blocking by @​Copilot
in https://github.com/meziantou/Meziantou.Analyzer/pull/934


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.256...2.0.257

## 2.0.256

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.256>

## What's Changed
* Clarify MA0093 only applies to event invocations, not regular method
calls by @​Copilot in
https://github.com/meziantou/Meziantou.Analyzer/pull/933


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.255...2.0.256

## 2.0.255

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.255>

## What's Changed
* Use GlobalAnalyzerConfigFiles with global_level=-1 for analyzer
configuration by @​Copilot in
https://github.com/meziantou/Meziantou.Analyzer/pull/932


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.254...2.0.255

## 2.0.254

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.254>

## What's Changed
* Add MA0178: Use TimeSpan.Zero instead of TimeSpan.FromXXX(0) by
@​Copilot in https://github.com/meziantou/Meziantou.Analyzer/pull/929


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.253...2.0.254

## 2.0.253

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.253>

**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.252...2.0.253

## 2.0.252

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.252>

## What's Changed
* Updated `NamedParameterAnalyzer` to handle language version checks for
C# 14 by @​meziantou in
https://github.com/meziantou/Meziantou.Analyzer/pull/925


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.251...2.0.252

## 2.0.251

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.251>

## What's Changed
* Add comprehensive CultureInsensitiveTypeAttribute documentation by
@​Copilot in https://github.com/meziantou/Meziantou.Analyzer/pull/922
* Update to .NET 10 by @​meziantou in
https://github.com/meziantou/Meziantou.Analyzer/pull/924


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.250...2.0.251

## 2.0.250

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.250>

## What's Changed
* MA0011: Skip diagnostic for culture-invariant interpolated strings by
@​Copilot in https://github.com/meziantou/Meziantou.Analyzer/pull/919


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.249...2.0.250

## 2.0.249

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.249>

## What's Changed
* Fix MA0095 to not report for CRTP-inherited IEquatable<T> by @​Copilot
in https://github.com/meziantou/Meziantou.Analyzer/pull/918


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.248...2.0.249

## 2.0.248

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.248>

## What's Changed
* Update MA0053 to mention both class and record types by @​Copilot in
https://github.com/meziantou/Meziantou.Analyzer/pull/915


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.247...2.0.248

## 2.0.247

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.247>

## What's Changed
* Update Roslyn dependencies and clean up PackageReferences by
@​meziantou in https://github.com/meziantou/Meziantou.Analyzer/pull/916


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.246...2.0.247

## 2.0.246

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.246>

**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.245...2.0.246

## 2.0.245

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.245>

## What's Changed
* Fix MA0015 not detecting static ThrowIf methods on ArgumentException
and related types by @​Copilot in
https://github.com/meziantou/Meziantou.Analyzer/pull/912


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.244...2.0.245

## 2.0.244

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.244>

## What's Changed
* Fix MA0011 not reported for types with ToString(IFormatProvider) but
no IFormattable by @​Copilot in
https://github.com/meziantou/Meziantou.Analyzer/pull/910


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.243...2.0.244

## 2.0.243

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.243>

## What's Changed
* Add Roslyn analyzer for multiline XML comments by @​Copilot in
https://github.com/meziantou/Meziantou.Analyzer/pull/908

## New Contributors
* @​Copilot made their first contribution in
https://github.com/meziantou/Meziantou.Analyzer/pull/908

**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.242...2.0.243

## 2.0.242

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.242>

**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.241...2.0.242

## 2.0.241

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.241>

**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.240...2.0.241

## 2.0.240

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.240>

## What's Changed
* Add copilot instructions by @​meziantou in
https://github.com/meziantou/Meziantou.Analyzer/pull/907


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.239...2.0.240

## 2.0.239

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.239>

**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.238...2.0.239

## 2.0.238

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.238>

**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.237...2.0.238

## 2.0.237

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.237>

**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.236...2.0.237

## 2.0.236

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.236>

## What's Changed
* Document members of CultureInsensitiveTypeAttribute. by @​drieseng in
https://github.com/meziantou/Meziantou.Analyzer/pull/902


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.235...2.0.236

## 2.0.235

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.235>

## What's Changed
* Add support for culture-insensitive default formats by @​meziantou in
https://github.com/meziantou/Meziantou.Analyzer/pull/898


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.234...2.0.235

## 2.0.234

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.234>

**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.233...2.0.234

## 2.0.233

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.233>

**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.232...2.0.233

## 2.0.232

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.232>

**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.231...2.0.232

## 2.0.231

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.231>

## What's Changed
* Improve support for culture-sensitive ToString and support null format
by @​meziantou in
https://github.com/meziantou/Meziantou.Analyzer/pull/893


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.230...2.0.231

## 2.0.230

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.230>

## What's Changed
* Apply style suggestion by @​meziantou in
https://github.com/meziantou/Meziantou.Analyzer/pull/892


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.229...2.0.230

## 2.0.229

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.229>

**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.228...2.0.229

## 2.0.228

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.228>

**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.227...2.0.228

## 2.0.227

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.227>

**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.226...2.0.227

## 2.0.226

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.226>

**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.225...2.0.226

## 2.0.225

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.225>

## What's Changed
* Document CA1849 as being similar to MA0042 by @​drieseng in
https://github.com/meziantou/Meziantou.Analyzer/pull/886
* Added support for analyzing methods with LoggerMessage attributes by
@​meziantou in https://github.com/meziantou/Meziantou.Analyzer/pull/888


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.224...2.0.225

## 2.0.224

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.224>

## What's Changed
* New rule: MA0176 - Optimize guid creation by @​meziantou in
https://github.com/meziantou/Meziantou.Analyzer/pull/884


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.223...2.0.224

## 2.0.223

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.223>

## What's Changed
* MA0016 skips conversion methods by @​meziantou in
https://github.com/meziantou/Meziantou.Analyzer/pull/883


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.222...2.0.223

## 2.0.222

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.222>

## What's Changed
* docs: enhance MA0090 and MA0098 rule documentation by @​Meir017 in
https://github.com/meziantou/Meziantou.Analyzer/pull/874
* MA0042 fixer creates generic method call if generic method was called
by @​Griboedoff in
https://github.com/meziantou/Meziantou.Analyzer/pull/881

## New Contributors
* @​Griboedoff made their first contribution in
https://github.com/meziantou/Meziantou.Analyzer/pull/881

**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.221...2.0.222

## 2.0.221

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.221>

## What's Changed
* New rules: MA0174 and MA0175 by @​meziantou in
https://github.com/meziantou/Meziantou.Analyzer/pull/879


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.220...2.0.221

## 2.0.220

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.220>

## What's Changed
* docs: Add multiple CA/MA analyzer rule mappings by @​Meir017 in
https://github.com/meziantou/Meziantou.Analyzer/pull/871
* Enhance MA0048 diagnostic messages with type information by @​Meir017
in https://github.com/meziantou/Meziantou.Analyzer/pull/873


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.219...2.0.220

## 2.0.219

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.219>

## What's Changed
* Fix code block formatting in README.md by @​Meir017 in
https://github.com/meziantou/Meziantou.Analyzer/pull/865

## New Contributors
* @​Meir017 made their first contribution in
https://github.com/meziantou/Meziantou.Analyzer/pull/865

**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.218...2.0.219

## 2.0.218

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.218>

**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.217...2.0.218

## 2.0.217

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.217>

**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.216...2.0.217

## 2.0.216

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.216>

## What's Changed
* Make expression parsing more robust by @​meziantou in
https://github.com/meziantou/Meziantou.Analyzer/pull/830


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.215...2.0.216

## 2.0.215

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.215>

**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.214...2.0.215

## 2.0.214

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.214>

## What's Changed
* Suggest using LazyInitializer instead of CompareExchange by
@​meziantou in https://github.com/meziantou/Meziantou.Analyzer/pull/828


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.213...2.0.214

## 2.0.213

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.213>

## What's Changed
* Use Meziantou SDK by @​meziantou in
https://github.com/meziantou/Meziantou.Analyzer/pull/826


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.212...2.0.213

## 2.0.212

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.212>

## What's Changed
* Add new rule to detect similar code in both side of a logical
operation by @​meziantou in
https://github.com/meziantou/Meziantou.Analyzer/pull/825


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.211...2.0.212

## 2.0.211

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.211>

## What's Changed
* Fix for MA0077 for `ref struct` and improve MA0066 to detect
`WithComparers` by @​meziantou in
https://github.com/meziantou/Meziantou.Analyzer/pull/824


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.210...2.0.211

## 2.0.210

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.210>

## What's Changed
* Use additional locations to report diagnostic on symbols with multiple
locations by @​meziantou in
https://github.com/meziantou/Meziantou.Analyzer/pull/821


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.209...2.0.210

## 2.0.209

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.209>

## What's Changed
* Add MA0171: Replace HasValue with pattern matching by @​meziantou in
https://github.com/meziantou/Meziantou.Analyzer/pull/819


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.208...2.0.209

## 2.0.208

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.208>

**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.207...2.0.208

## 2.0.207

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.207>

## What's Changed
* Apply repository configuration by @​meziantou in
https://github.com/meziantou/Meziantou.Analyzer/pull/817


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.206...2.0.207

## 2.0.206

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.206>

## What's Changed
* Simplify msbuild properties by @​meziantou in
https://github.com/meziantou/Meziantou.Analyzer/pull/816


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.205...2.0.206

## 2.0.205

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.205>

## What's Changed
* MA0053 takes ctor visibility into account to determine if a class
should be sealed by @​meziantou in
https://github.com/meziantou/Meziantou.Analyzer/pull/815


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.204...2.0.205

## 2.0.204

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.204>

## What's Changed
* Convert sln to slnx by @​meziantou in
https://github.com/meziantou/Meziantou.Analyzer/pull/814


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.203...2.0.204

## 2.0.203

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.203>

**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.202...2.0.203

## 2.0.202

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.202>

## What's Changed
* Add a rule to check parameters in attributes are valid by @​meziantou
in https://github.com/meziantou/Meziantou.Analyzer/pull/809


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.201...2.0.202

## 2.0.201

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.201>

**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.200...2.0.201

## 2.0.200

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.200>

## What's Changed
* MA0169 - Detect equality operators that should be replaced with Equals
method by @​meziantou in
https://github.com/meziantou/Meziantou.Analyzer/pull/805


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.199...2.0.200

## 2.0.199

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.199>

**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.198...2.0.199

## 2.0.198

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.198>

## What's Changed
* Add CODEOWNERS file by @​meziantou in
https://github.com/meziantou/Meziantou.Analyzer/pull/802


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.197...2.0.198

## 2.0.197

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.197>

## What's Changed
* Add rule to detect non-readonly struct used for in or ref readonly
parameters by @​meziantou in
https://github.com/meziantou/Meziantou.Analyzer/pull/801


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.196...2.0.197

## 2.0.196

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.196>

## What's Changed
* Add attribute to indicate a type is culture insensitive by @​meziantou
in https://github.com/meziantou/Meziantou.Analyzer/pull/799


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.195...2.0.196

## 2.0.195

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.195>

**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.194...2.0.195

## 2.0.194

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.194>

## What's Changed
* Remove inaccessible local symbols by @​meziantou in
https://github.com/meziantou/Meziantou.Analyzer/pull/797


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.193...2.0.194

## 2.0.193

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.193>

## What's Changed
* Fix OverloadFinder by @​meziantou in
https://github.com/meziantou/Meziantou.Analyzer/pull/795


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.192...2.0.193

## 2.0.192

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.192>

## What's Changed
* Fix ArgumentOutOfRange in OverloadFinder by @​meziantou in
https://github.com/meziantou/Meziantou.Analyzer/pull/794


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.191...2.0.192

## 2.0.191

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.191>

## What's Changed
* Add new rules to suggest using TimeProvider by @​meziantou in
https://github.com/meziantou/Meziantou.Analyzer/pull/792


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.190...2.0.191

## 2.0.190

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.190>

**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.189...2.0.190

## 2.0.189

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.189>

## What's Changed
* Update the report location to be on method name and arguments instead
of the InvocationExpression by @​meziantou in
https://github.com/meziantou/Meziantou.Analyzer/pull/790


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.188...2.0.189

## 2.0.188

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.188>

## What's Changed
* MA0002 skips IImmutableSet<string> by @​meziantou in
https://github.com/meziantou/Meziantou.Analyzer/pull/787


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.187...2.0.188

## 2.0.187

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.187>

## What's Changed
* Fix MA0048 in case when first type is not first node by @​FrediKats in
https://github.com/meziantou/Meziantou.Analyzer/pull/785

## New Contributors
* @​FrediKats made their first contribution in
https://github.com/meziantou/Meziantou.Analyzer/pull/785

**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.186...2.0.187

## 2.0.186

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.186>

## What's Changed
* Align message to behavior for MA0157 by @​martindisch in
https://github.com/meziantou/Meziantou.Analyzer/pull/783

## New Contributors
* @​martindisch made their first contribution in
https://github.com/meziantou/Meziantou.Analyzer/pull/783

**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.185...2.0.186

## 2.0.185

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.185>

## What's Changed
* Allow to disable all rules using a property by @​meziantou in
https://github.com/meziantou/Meziantou.Analyzer/pull/781


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.184...2.0.185

## 2.0.184

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.184>

## What's Changed
* Update global.json by @​meziantou in
https://github.com/meziantou/Meziantou.Analyzer/pull/778


**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.183...2.0.184

## 2.0.183

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/2.0.183>

**Full Changelog**:
https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.182...2.0.183

Commits viewable in [compare
view](https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.182...2.0.276).
</details>

Updated [Moq.Analyzers](https://github.com/rjmurillo/moq.analyzers) from
0.0.9 to 0.4.0.

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

_Sourced from [Moq.Analyzers's
releases](https://github.com/rjmurillo/moq.analyzers/releases)._

## 0.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`, and `RaisesAsync`
- **Async methods**: Full support for `Task`/`ValueTask` patterns
- **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
 ... (truncated)

## 0.3.1

## Minor Bug Fix

fix: exception in code fix of explicit mock behavior
(https://github.com/rjmurillo/moq.analyzers/pull/701) @​Youssef1313
#​701

**Full Changelog**:
https://github.com/rjmurillo/moq.analyzers/compare/v0.3.0...v0.3.1

## 0.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 https://github.com/rjmurillo/moq.analyzers/pull/301
* Add new rule to enforce MockBehavior.Strict (Moq1410) by @​rjmurillo
in https://github.com/rjmurillo/moq.analyzers/pull/302

## What's Changed
* Bump Nerdbank.GitVersioning from 3.6.143 to 3.6.146 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/232
* Bump Microsoft.Diagnostics.Tracing.TraceEvent from 3.1.15 to 3.1.16 by
@​dependabot in https://github.com/rjmurillo/moq.analyzers/pull/228
* Add IOperation to DiagnosticExtensions and clean up overloads by
@​MattKotsenas in https://github.com/rjmurillo/moq.analyzers/pull/233
* Bump nbgv from 3.6.143 to 3.6.146 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/230
* Bump Meziantou.Analyzer from 2.0.169 to 2.0.173 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/231
* Create a shared Common .projitems by @​MattKotsenas in
https://github.com/rjmurillo/moq.analyzers/pull/235
* Remove ECS0200 suppression and update WellKnownTypes to not trigger
ECS0600 by @​rjmurillo in
https://github.com/rjmurillo/moq.analyzers/pull/236
* Add BannedApiAnalyzer and ban direct use of Diagnostic.Create by
@​MattKotsenas in https://github.com/rjmurillo/moq.analyzers/pull/239
* Add *.props and *.targets to XML section of .editorconfig template by
@​MattKotsenas in https://github.com/rjmurillo/moq.analyzers/pull/240
* Bump Meziantou.Analyzer from 2.0.173 to 2.0.175 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/237
* Remove dead suppressions and dead code by @​MattKotsenas in
https://github.com/rjmurillo/moq.analyzers/pull/242
* Add rule suppression docs to README and each rule by @​MattKotsenas in
https://github.com/rjmurillo/moq.analyzers/pull/241
* Bump Meziantou.Analyzer from 2.0.175 to 2.0.176 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/243
* Disable SquiggleCop for PerfDiff by @​MattKotsenas in
https://github.com/rjmurillo/moq.analyzers/pull/244
* Bump Roslynator.Analyzers from 4.12.8 to 4.12.9 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/246
* Bump Verify.Xunit from 27.0.1 to 27.1.0 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/247
* Use WellKnownTypeProvider + KnownSymbols pattern to simplify analyzers
by @​MattKotsenas in https://github.com/rjmurillo/moq.analyzers/pull/245
* Bump Polyfill from 7.1.2 to 7.2.0 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/248
* Bump Verify.Xunit from 27.1.0 to 28.0.0 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/251
* Bump Meziantou.Analyzer from 2.0.176 to 2.0.177 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/249
* Bump Verify.Xunit from 28.0.0 to 28.1.3 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/253
* Bump Polyfill from 7.2.0 to 7.4.0 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/256
* Bump EffectiveCSharp.Analyzers from 0.1.0 to 0.2.0 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/250
* Bump Verify.Xunit from 28.1.3 to 28.2.0 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/257
* Update global.json to SDK 9 by @​rjmurillo in
https://github.com/rjmurillo/moq.analyzers/pull/263
* Bump Meziantou.Analyzer from 2.0.177 to 2.0.179 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/262
* Bump ReportGenerator from 5.3.11 to 5.4.1 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/264
* Bump Verify.Xunit from 28.2.0 to 28.3.0 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/265
* Remove forced lf in .editorconfig by @​MattKotsenas in
https://github.com/rjmurillo/moq.analyzers/pull/271
* Reduce severity of S3267: Loops should be simplified with "LINQ"
expressions by @​MattKotsenas in
https://github.com/rjmurillo/moq.analyzers/pull/272
* Bump GetPackFromProject to fix race in .NET 9 SDK by @​MattKotsenas in
https://github.com/rjmurillo/moq.analyzers/pull/274
* Bump Polyfill from 7.4.0 to 7.5.0 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/270
* Move "upload binlogs" CI step earlier in pipeline and run even if
failed by @​MattKotsenas in
https://github.com/rjmurillo/moq.analyzers/pull/273
* Bump Verify.Xunit from 28.3.0 to 28.3.2 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/269
* Bump Microsoft.CodeAnalysis.BannedApiAnalyzers from
3.11.0-beta1.24454.1 to 3.11.0-beta1.24508.2 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/268
* Bump Meziantou.Analyzer from 2.0.179 to 2.0.181 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/275
 ... (truncated)

## 0.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
https://github.com/rjmurillo/moq.analyzers/pull/326

**Full Changelog**:
https://github.com/rjmurillo/moq.analyzers/compare/v0.3.0-alpha...v0.3.0-alpha.1

## 0.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 https://github.com/rjmurillo/moq.analyzers/pull/301
* Add new rule to enforce MockBehavior.Strict (Moq1410) by @​rjmurillo
in https://github.com/rjmurillo/moq.analyzers/pull/302

## Full List of What's Changed
* Bump Nerdbank.GitVersioning from 3.6.143 to 3.6.146 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/232
* Bump Microsoft.Diagnostics.Tracing.TraceEvent from 3.1.15 to 3.1.16 by
@​dependabot in https://github.com/rjmurillo/moq.analyzers/pull/228
* Add IOperation to DiagnosticExtensions and clean up overloads by
@​MattKotsenas in https://github.com/rjmurillo/moq.analyzers/pull/233
* Bump nbgv from 3.6.143 to 3.6.146 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/230
* Bump Meziantou.Analyzer from 2.0.169 to 2.0.173 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/231
* Create a shared Common .projitems by @​MattKotsenas in
https://github.com/rjmurillo/moq.analyzers/pull/235
* Remove ECS0200 suppression and update WellKnownTypes to not trigger
ECS0600 by @​rjmurillo in
https://github.com/rjmurillo/moq.analyzers/pull/236
* Add BannedApiAnalyzer and ban direct use of Diagnostic.Create by
@​MattKotsenas in https://github.com/rjmurillo/moq.analyzers/pull/239
* Add *.props and *.targets to XML section of .editorconfig template by
@​MattKotsenas in https://github.com/rjmurillo/moq.analyzers/pull/240
* Bump Meziantou.Analyzer from 2.0.173 to 2.0.175 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/237
* Remove dead suppressions and dead code by @​MattKotsenas in
https://github.com/rjmurillo/moq.analyzers/pull/242
* Add rule suppression docs to README and each rule by @​MattKotsenas in
https://github.com/rjmurillo/moq.analyzers/pull/241
* Bump Meziantou.Analyzer from 2.0.175 to 2.0.176 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/243
* Disable SquiggleCop for PerfDiff by @​MattKotsenas in
https://github.com/rjmurillo/moq.analyzers/pull/244
* Bump Roslynator.Analyzers from 4.12.8 to 4.12.9 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/246
* Bump Verify.Xunit from 27.0.1 to 27.1.0 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/247
* Use WellKnownTypeProvider + KnownSymbols pattern to simplify analyzers
by @​MattKotsenas in https://github.com/rjmurillo/moq.analyzers/pull/245
* Bump Polyfill from 7.1.2 to 7.2.0 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/248
* Bump Verify.Xunit from 27.1.0 to 28.0.0 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/251
* Bump Meziantou.Analyzer from 2.0.176 to 2.0.177 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/249
* Bump Verify.Xunit from 28.0.0 to 28.1.3 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/253
* Bump Polyfill from 7.2.0 to 7.4.0 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/256
* Bump EffectiveCSharp.Analyzers from 0.1.0 to 0.2.0 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/250
* Bump Verify.Xunit from 28.1.3 to 28.2.0 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/257
* Update global.json to SDK 9 by @​rjmurillo in
https://github.com/rjmurillo/moq.analyzers/pull/263
* Bump Meziantou.Analyzer from 2.0.177 to 2.0.179 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/262
* Bump ReportGenerator from 5.3.11 to 5.4.1 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/264
* Bump Verify.Xunit from 28.2.0 to 28.3.0 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/265
* Remove forced lf in .editorconfig by @​MattKotsenas in
https://github.com/rjmurillo/moq.analyzers/pull/271
* Reduce severity of S3267: Loops should be simplified with "LINQ"
expressions by @​MattKotsenas in
https://github.com/rjmurillo/moq.analyzers/pull/272
* Bump GetPackFromProject to fix race in .NET 9 SDK by @​MattKotsenas in
https://github.com/rjmurillo/moq.analyzers/pull/274
* Bump Polyfill from 7.4.0 to 7.5.0 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/270
* Move "upload binlogs" CI step earlier in pipeline and run even if
failed by @​MattKotsenas in
https://github.com/rjmurillo/moq.analyzers/pull/273
* Bump Verify.Xunit from 28.3.0 to 28.3.2 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/269
* Bump Microsoft.CodeAnalysis.BannedApiAnalyzers from
3.11.0-beta1.24454.1 to 3.11.0-beta1.24508.2 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/268
* Bump Meziantou.Analyzer from 2.0.179 to 2.0.181 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/275
 ... (truncated)

## 0.2.0

## Changes
* Add rule to explicitly pick MockBehavior by @​MattKotsenas in
https://github.com/rjmurillo/moq.analyzers/pull/226
* Fix false detection in Moq1201 in Moq 4.16.0 by @​rjmurillo in
https://github.com/rjmurillo/moq.analyzers/pull/224
* Fix false detection in Moq1200 using async tasks by @​rjmurillo in
https://github.com/rjmurillo/moq.analyzers/pull/221

## Housekeeping
* Add CODEOWNERS by @​MattKotsenas in
https://github.com/rjmurillo/moq.analyzers/pull/193
* Bump Verify.Xunit from 26.2.0 to 26.4.0 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/197
* Bump Microsoft.NET.Test.Sdk from 17.11.0 to 17.11.1 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/196
* Bump DotNet.ReproducibleBuilds from 1.2.4 to 1.2.25 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/201
* Bump DotNet.ReproducibleBuilds.Isolated from 1.2.4 to 1.2.25 by
@​dependabot in https://github.com/rjmurillo/moq.analyzers/pull/200
* Bump Verify.Xunit from 26.4.0 to 26.4.4 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/199
* Bump ReportGenerator from 5.3.8 to 5.3.9 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/195
* Update SDK to get newer version of Source Link by @​MattKotsenas in
https://github.com/rjmurillo/moq.analyzers/pull/202
* Bump Verify.Xunit from 26.4.4 to 26.5.0 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/205
* Bump Roslynator.Analyzers from 4.12.4 to 4.12.5 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/204
* Bump Verify.Xunit from 26.5.0 to 26.6.0 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/207
* Bump Meziantou.Analyzer from 2.0.163 to 2.0.168 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/206
* Bump Roslynator.Analyzers from 4.12.5 to 4.12.6 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/209
* Bump ReportGenerator from 5.3.9 to 5.3.10 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/212
* Bump Roslynator.Analyzers from 4.12.6 to 4.12.7 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/213
* Bump Meziantou.Analyzer from 2.0.168 to 2.0.169 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/211
* Bump xunit from 2.9.0 to 2.9.2 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/210
* Use dotnet template for .gitattributes by @​MattKotsenas in
https://github.com/rjmurillo/moq.analyzers/pull/215


**Full Changelog**:
https://github.com/rjmurillo/moq.analyzers/compare/v0.1.2...v0.2.0

## 0.1.2

## What's Changed

Lots of housekeeping and a couple of fixes and enhancements.

### Enhancements and Bug fixes

* Add Mock.Of<T> and MockRepository support to
ConstructorArgumentsShouldMatchAnalyzer by @​rjmurillo in
https://github.com/rjmurillo/moq.analyzers/pull/140
* Moq1100 incorrectly firing on nullable parameters by @​marcovr
@​rjmurillo in https://github.com/rjmurillo/moq.analyzers/pull/187

### Other Changes

* Update version.json to 0.2.0 by @​rjmurillo in
https://github.com/rjmurillo/moq.analyzers/pull/142
* Remove CSharpGuidelinesAnalyzer and associated editorconfig values by
@​rjmurillo in https://github.com/rjmurillo/moq.analyzers/pull/145
* Bump ReportGenerator from 5.3.6 to 5.3.7 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/138
* Bump Newtonsoft.Json from 13.0.1 to 13.0.3 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/134
* Bump Microsoft.Extensions.Logging from 6.0.0-preview.5.21301.5 to
8.0.0 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/132
* Bump Microsoft.Diagnostics.Tracing.TraceEvent from 3.0.2 to 3.1.12 by
@​dependabot in https://github.com/rjmurillo/moq.analyzers/pull/131
* Bump Meziantou.Analyzer from 2.0.159 to 2.0.160 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/151
* Bump xunit from 2.8.1 to 2.9.0 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/148
* Bump xunit.runner.visualstudio from 2.8.1 to 2.8.2 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/149
* Bump Verify.Xunit from 25.0.4 to 25.3.1 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/152
* Bump SonarAnalyzer.CSharp from 9.28.0.94264 to 9.29.0.95321 by
@​dependabot in https://github.com/rjmurillo/moq.analyzers/pull/154
* Bump Verify.Xunit from 25.3.1 to 25.3.2 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/158
* Bump Microsoft.Diagnostics.Tracing.TraceEvent from 3.1.12 to 3.1.13 by
@​dependabot in https://github.com/rjmurillo/moq.analyzers/pull/157
* Bump Meziantou.Analyzer from 2.0.160 to 2.0.161 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/156
* Bump ReportGenerator from 5.3.7 to 5.3.8 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/155
* Bump Verify.Xunit from 25.3.2 to 26.1.5 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/164
* Bump Meziantou.Analyzer from 2.0.161 to 2.0.162 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/163
* Bump SonarAnalyzer.CSharp from 9.29.0.95321 to 9.30.0.95878 by
@​dependabot in https://github.com/rjmurillo/moq.analyzers/pull/160
* Enable TreatWarningsAsErrors by @​MattKotsenas in
https://github.com/rjmurillo/moq.analyzers/pull/165
* Disable rollForward for SDK in global.json by @​MattKotsenas in
https://github.com/rjmurillo/moq.analyzers/pull/170
* Add SquiggleCop to baseline analyzer settings by @​MattKotsenas in
https://github.com/rjmurillo/moq.analyzers/pull/166
* Bump Verify.Xunit from 26.1.5 to 26.1.6 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/168
* Bump Meziantou.Xunit.ParallelTestFramework from 2.2.0 to 2.3.0 by
@​dependabot in https://github.com/rjmurillo/moq.analyzers/pull/169
* Bump Meziantou.Analyzer from 2.0.162 to 2.0.163 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/167
* Update SquiggleCop and remove ErrorLog property by @​MattKotsenas in
https://github.com/rjmurillo/moq.analyzers/pull/174
* Bump SonarAnalyzer.CSharp from 9.30.0.95878 to 9.31.0.96804 by
@​dependabot in https://github.com/rjmurillo/moq.analyzers/pull/175
* Bump Nerdbank.GitVersioning from 3.6.139 to 3.6.141 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/178
* Bump Verify.Xunit from 26.1.6 to 26.2.0 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/180
* Bump Microsoft.VisualStudio.Threading.Analyzers from 17.10.48 to
17.11.20 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/181
* Bump nbgv from 3.6.139 to 3.6.141 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/179
* Bump SquiggleCop.Tasks from 1.0.13 to 1.0.26 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/185
* Bump squigglecop.tool from 1.0.13 to 1.0.26 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/186
* Bump Microsoft.NET.Test.Sdk from 17.10.0 to 17.11.0 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/184
* Bump SonarAnalyzer.CSharp from 9.31.0.96804 to 9.32.0.97167 by
@​dependabot in https://github.com/rjmurillo/moq.analyzers/pull/183
* Add Effective C# analyzers and update SquiggleCop baselines by
@​rjmurillo in https://github.com/rjmurillo/moq.analyzers/pull/182
* Bump Nerdbank.GitVersioning from 3.6.141 to 3.6.143 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/189
* Bump Microsoft.Diagnostics.Tracing.TraceEvent from 3.1.13 to 3.1.15 by
@​dependabot in https://github.com/rjmurillo/moq.analyzers/pull/190
* Bump nbgv from 3.6.141 to 3.6.143 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/188
* Bump dependabot/fetch-metadata from 1.1.1 to 2.2.0 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/192
 ... (truncated)

## 0.1.1

Lots of "housekeeping" this release, and a few bug fixes. We also now
have rule documentation! Special thanks to @​MattKotsenas for his
contributions to make working on the analyzers easier and improving our
confidence and productivity.

**Full Changelog**:
https://github.com/rjmurillo/moq.analyzers/compare/v0.1.0...v0.1.1

## What's Changed

Ownership of the `Moq.Analyzers` and `Moq.Autocomplete` has been
transferred from @​Litee to @​rjmurillo.

### Bug fixes
* Moq1002: Update constructor checks by @​rjmurillo in
https://github.com/rjmurillo/moq.analyzers/pull/115. This resolves #​55
by @​MattKotsenas
* Refactor Moq1300 to use IOperation-based analysis by @​MattKotsenas in
https://github.com/rjmurillo/moq.analyzers/pull/125

### Changes to rules
There _should_ be no behavioral differences with these changes to the
rule code. If you find any, please [submit a new
issue](https://github.com/rjmurillo/moq.analyzers/issues/new).

* Clean up README and add docs for each analyzer rule by @​MattKotsenas
in https://github.com/rjmurillo/moq.analyzers/pull/77
* Add analyzer release tracking by @​MattKotsenas in
https://github.com/rjmurillo/moq.analyzers/pull/84
* Add cancellation tokens to methods that have a parameter but we don't
pass by @​rjmurillo in
https://github.com/rjmurillo/moq.analyzers/pull/52
* Enable ConcurrentExecution and disable generated code analysis by
@​MattKotsenas in https://github.com/rjmurillo/moq.analyzers/pull/70
* Update code to remove warnings from backlog by @​rjmurillo in
https://github.com/rjmurillo/moq.analyzers/pull/73
* Remove RegEx from analyzers by @​MattKotsenas in
https://github.com/rjmurillo/moq.analyzers/pull/81
* Remove period from analyzer messages and inline in the analyzer
classes by @​MattKotsenas in
https://github.com/rjmurillo/moq.analyzers/pull/86


### Updates to test and infrastructure
* Refactor tests to simplify and inline test cases by @​MattKotsenas in
https://github.com/rjmurillo/moq.analyzers/pull/57
* Update analysis mode and warning level to preview and 9999 by
@​rjmurillo in https://github.com/rjmurillo/moq.analyzers/pull/59
* Extract code analysis to its own build slice and update analyzers to
latest versions by @​MattKotsenas in
https://github.com/rjmurillo/moq.analyzers/pull/60
* Move test packages to build slice, update to latest version, and
enable parallel tests by @​MattKotsenas in
https://github.com/rjmurillo/moq.analyzers/pull/61
* Replace our custom test harness with `Microsoft.CodeAnalysis` testing
harness by @​MattKotsenas in
https://github.com/rjmurillo/moq.analyzers/pull/65
* Clean up of using statements by @​rjmurillo in
https://github.com/rjmurillo/moq.analyzers/pull/66
* Rename `master` to `main` by @​MattKotsenas in
https://github.com/rjmurillo/moq.analyzers/pull/69
* Cache reference assemblies between tests to improve performance by
@​MattKotsenas in https://github.com/rjmurillo/moq.analyzers/pull/71
* Convert from var to explicit type by @​rjmurillo in
https://github.com/rjmurillo/moq.analyzers/pull/74
* Refactor unit tests: data driven tests and leverage
`Microsoft.CodeAnalysis.Testing` patterns by @​MattKotsenas in
https://github.com/rjmurillo/moq.analyzers/pull/76
* Add Code coverage report by @​MattKotsenas in
https://github.com/rjmurillo/moq.analyzers/pull/79
* Fix `dotnet test` when not generating code coverage reports by
@​MattKotsenas in https://github.com/rjmurillo/moq.analyzers/pull/80
* Refactor test cases to matrix on `Moq` version by @​MattKotsenas in
https://github.com/rjmurillo/moq.analyzers/pull/82
* Fix SA0001: XML comment analysis is disabled due to project
configuration by @​MattKotsenas in
https://github.com/rjmurillo/moq.analyzers/pull/87
* Fix trivial warnings by @​MattKotsenas in
https://github.com/rjmurillo/moq.analyzers/pull/88
* Update README.md to add leading and trailing pipes in table by
@​rjmurillo in https://github.com/rjmurillo/moq.analyzers/pull/94
* Create dependabot.yml by @​rjmurillo in
https://github.com/rjmurillo/moq.analyzers/pull/93
* Update main.yml to add codacy test coverage by @​rjmurillo in
https://github.com/rjmurillo/moq.analyzers/pull/92
* Add more analyzers and bump `Meziantou.Analzer` to latest version by
@​rjmurillo in https://github.com/rjmurillo/moq.analyzers/pull/89
* Bump `Verify.Xunit` from 25.0.1 to 25.0.3 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/100
* Remove `Microsoft.CodeAnalysis.CSharp.Analyzer.Testing` by
@​MattKotsenas in https://github.com/rjmurillo/moq.analyzers/pull/102
* Dependabot ignore packages that impact customer compatibility by
@​MattKotsenas in https://github.com/rjmurillo/moq.analyzers/pull/101
* Bump `Microsoft.CodeAnalysis.CSharp.CodeFix.Testing` from
1.1.2-beta1.24273.1 to 1.1.2-beta1.24314.1 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/103
* Bump `Nerdbank.GitVersioning` from 3.6.133 to 3.6.139 by @​dependabot
in https://github.com/rjmurillo/moq.analyzers/pull/99
* Bump `Meziantou.Analyzer` from 2.0.155 to 2.0.158 by @​dependabot in
https://github.com/rjmurillo/moq.analyzers/pull/96
 ... (truncated)

## 0.1.0

## What's Changed
* Remove the Visual Studio Extension VSIX by @​rjmurillo in
https://github.com/Litee/moq.analyzers/pull/16
* Update TargetFramework to NET Standard 2.0 by @​rjmurillo in
https://github.com/Litee/moq.analyzers/pull/17
* Update constructor analyzer (Moq1002) to validate parameters of
abstract classes by @​rjmurillo in
https://github.com/Litee/moq.analyzers/pull/20, fixes #​1

### Non-functional Changes
* Create codeql.yml to analyze C# code by @​rjmurillo in
https://github.com/Litee/moq.analyzers/pull/9
* Create a basic GitHub Actions pipeline by @​MattKotsenas in
https://github.com/Litee/moq.analyzers/pull/18
* Fix GitHub actions branch 'main' -> 'master' by @​MattKotsenas in
https://github.com/Litee/moq.analyzers/pull/21
* Use .NET 8 SDK's artifacts output and enable test reports in CI by
@​MattKotsenas in https://github.com/Litee/moq.analyzers/pull/23
* Update Moq.Analyzers.Test.csproj to NET 8 by @​rjmurillo in
https://github.com/Litee/moq.analyzers/pull/24
* Migrate from ApprovalTests to Verify by @​MattKotsenas in
https://github.com/Litee/moq.analyzers/pull/25
* Update main.yml to upload .received on failure by @​rjmurillo in
https://github.com/Litee/moq.analyzers/pull/34
* Add .nupkg baseline with Verify by @​MattKotsenas in
https://github.com/Litee/moq.analyzers/pull/30
* Add nbgv tool to automate versioning by @​MattKotsenas in
https://github.com/Litee/moq.analyzers/pull/35
* Add .gitattributes file and normalize line endings by @​rjmurillo in
https://github.com/Litee/moq.analyzers/pull/33
* Add .editorconfig and enable code analysis by @​MattKotsenas in
https://github.com/Litee/moq.analyzers/pull/37
* Convert to Central Package Management with transitive pinning enabled
by @​MattKotsenas in https://github.com/Litee/moq.analyzers/pull/39
* Set package README, license expression, and development dependency by
@​MattKotsenas in https://github.com/Litee/moq.analyzers/pull/41
* Move usings to top of file and using file-scoped namespaces by
@​MattKotsenas in https://github.com/Litee/moq.analyzers/pull/40
* Follow reproducible builds best practices for package by
@​MattKotsenas in https://github.com/Litee/moq.analyzers/pull/44
* Remove package dependencies and don't publish analyzer as a lib by
@​MattKotsenas in https://github.com/Litee/moq.analyzers/pull/49
* Update Moq.Analyzers.csproj NuGet package metadata by @​rjmurillo in
https://github.com/Litee/moq.analyzers/pull/50

## New Contributors
* @​MattKotsenas made their first contribution in
https://github.com/Litee/moq.analyzers/pull/18

**Full Changelog**:
https://github.com/Litee/moq.analyzers/compare/v0.0.9...v0.1.0

Commits viewable in [compare
view](https://github.com/rjmurillo/moq.analyzers/compare/v0.0.9...v0.4.0).
</details>

Updated [Roslynator.Analyzers](https://github.com/dotnet/roslynator)
from 4.12.9 to 4.15.0.

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

_Sourced from [Roslynator.Analyzers's
releases](https://github.com/dotnet/roslynator/releases)._

## 4.15.0

### Added

- Add option
`roslynator_null_conditional_operator.avoid_negative_boolean_comparison`
([PR](https://github.com/dotnet/roslynator/pull/1688))
- Do not suggest to use null-conditional operator when result would be
`... != true/false`
- Applicable for
[RCS1146](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1146)

### Fixed

- Fix analyzer
[RCS1172](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1172)
([PR](https://github.com/dotnet/roslynator/pull/1710))
- [CLI] Fix `loc` command
([PR](https://github.com/dotnet/roslynator/pull/1711))
- Exclude ref-field backed properties from
[RCS1085](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1085)
([PR](https://github.com/dotnet/roslynator/pull/1718) by @​ovska)
- [CLI] Fix `rename-symbol` scope option not being applied correctly
([PR](https://github.com/dotnet/roslynator/pull/1720) by @​andrtmschkw)
- [CLI] Fix `rename-symbol` support for top-level statement
([PR](https://github.com/dotnet/roslynator/pull/1721) by @​andrtmschkw)

### Changed

- Migrate to .NET 10 (including command-line tool)
([PR](https://github.com/dotnet/roslynator/pull/1727))


## 4.14.1

### Added

- [CLI] Add support for `slnx` files
([PR](https://github.com/dotnet/roslynator/pull/1662) by @​darthtrevino)
  - Bump Roslyn to 4.14.0
  - Drop support for .NET 7 SDK

### Fixed

- Fix analyzer
[RCS1246](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1246)
([PR](https://github.com/dotnet/roslynator/pull/1676))
- Fix analyzer
[RCS1248](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1248)
([PR](https://github.com/dotnet/roslynator/pull/1677))
- Fix analyzer
[RCS1203](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1203)
([PR](https://github.com/dotnet/roslynator/pull/1683))
- Fix analyzer
[RCS1043](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1043)
([PR](https://github.com/dotnet/roslynator/pull/1684))
- Fix analyzer
[RCS1213](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1213)
([PR](https://github.com/dotnet/roslynator/pull/1686))
  - Add unity method `OnRectTransformDimensionsChange` 
- Fix analyzer
[RCS1253](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1253)
([PR](https://github.com/dotnet/roslynator/pull/1687))
- Fix refactoring [Check expression for
null](https://josefpihrt.github.io/docs/roslynator/refactorings/RR0024)
([PR](https://github.com/dotnet/roslynator/pull/1682))

### Changed

- Change behavior of analyzer
[RCS1206](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1206)
([PR](https://github.com/dotnet/roslynator/pull/1685))
- The condition for option `omit_when_single_line` will be that the
braces/brackets are on the same line, not just the expression in the
braces/brackets


## 4.14.0

### Added

- [CLI] Add support for GitLab analyzer reports
([PR](https://github.com/dotnet/roslynator/pull/1633))

### Fixed

- Fix analyzer
[RCS1264](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1264)
([PR](https://github.com/dotnet/roslynator/pull/1666))
- Fix analyzer
[RCS1229](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1229)
([PR](https://github.com/dotnet/roslynator/pull/1667))
- Fix analyzer
[RCS1250](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1250)
([PR](https://github.com/dotnet/roslynator/pull/1652) by @​aihnatiuk)
- Fix analyzer
[RCS1260](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1260)
([PR](https://github.com/dotnet/roslynator/pull/1668))
- Fix analyzer
[RCS1105](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1105)
([PR](https://github.com/dotnet/roslynator/pull/1669))
- Fix analyzer
[RCS1260](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1260)
([PR](https://github.com/dotnet/roslynator/pull/1672))

### Changed

- Disable analyzer
[RCS1036](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1036)
by default ([PR](https://github.com/dotnet/roslynator/pull/1671))
- Use analyzer
[RCS0063](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS0063)
instead

### Removed

- Remove legacy config options
([PR](https://github.com/dotnet/roslynator/pull/1304))


## 4.13.1

### Added

- Support custom path of a test file
([PR](https://github.com/dotnet/roslynator/pull/1609))
- It's possible to specify a directory path and/or a file name of a test
file.
  - Applies to testing library (Roslynator.Testing.*).

## 4.13.0

### Fixed

- Fix analyzer
[RCS1229](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1229)
([PR](https://github.com/dotnet/roslynator/pull/1618))
- Fix analyzer
[RCS1174](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1174)
([PR](https://github.com/dotnet/roslynator/pull/1619))
- Fix analyzer
[RCS0010](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS0010)
([PR](https://github.com/dotnet/roslynator/pull/1620))
- Fix analyzer
[RCS0005](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS0005)
([PR](https://github.com/dotnet/roslynator/pull/1621))

### Added

- Add analyzer "Put expression body on its own line"
[RCS0062](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS0062)
([PR](https://github.com/dotnet/roslynator/pull/1593) by @​cbersch)
- Affects analyzer
[RCS1016](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1016)
- Affects refactoring
[RR0169](https://josefpihrt.github.io/docs/roslynator/refactorings/RR0169)

### Changed

- Move analyzer
[RCS1036](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1036)
to Formatting.Analyzers as
[RCS0063](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS0063)
([PR](https://github.com/dotnet/roslynator/pull/1600))
  - Old analyzer still works but is marked as obsolete.
- Bump Roslyn to 4.12.0
([PR](https://github.com/dotnet/roslynator/pull/1623))
    - Applies to CLI and testing library.
- Bump `Microsoft.Build.Locator` to 1.7.8
([PR](https://github.com/dotnet/roslynator/pull/1622))

## 4.12.11

### Added

- [CLI] Add support for .NET 9
([PR](https://github.com/dotnet/roslynator/pull/1605))

### Fixed

- Fix refactoring 'Change accessibility'
([RR0186](https://josefpihrt.github.io/docs/roslynator/refactorings/RR0186))
([PR](https://github.com/dotnet/roslynator/pull/1599))
- Fix analyzer
[RCS1264](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1264)
([PR](https://github.com/dotnet/roslynator/pull/1604))

### Changed

- Move `DiagnosticRules` and `DiagnosticIdentifiers` to
`Roslynator.Common`
([PR](https://github.com/dotnet/roslynator/pull/1597))


## 4.12.10

### Fixed

- Fix analyzer
[RCS1213](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1213)
([PR](https://github.com/dotnet/roslynator/pull/1586))
- Improve code fixe…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

analyzers Change that impacts an analyzer behavior bug releasable

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants