Create a shared Common .projitems#235
Conversation
…analyzers and code fixes
📝 Walkthrough📝 WalkthroughWalkthroughThe pull request modifies the project structure of the Changes
Possibly related PRs
Suggested labels
Suggested reviewers
📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (4)
🧰 Additional context used🔇 Additional comments (9)
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
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)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Actionable comments posted: 4
🧹 Outside diff range comments (2)
src/Common/MoqSetupMethodDescriptor.cs (2)
Line range hint
8-10: Consider making MethodName constant readonly.The
MethodNamefield is effectively constant and used for comparison. Making itprivate constwould better express its intent and potentially allow for compile-time optimizations.- private static readonly string MethodName = "Setup"; + private const string MethodName = "Setup";🧰 Tools
🪛 GitHub Check: Codacy Static Code Analysis
[failure] 1-1: src/Common/MoqSetupMethodDescriptor.cs#L1
Provide an 'AssemblyVersion' attribute for assembly 'srcassembly.dll'.
Line range hint
13-31: Add parameter validation and consider edge cases.The
IsMatchmethod lacks null checks for its parameters and might have edge cases around cancellation.Consider adding these safety checks:
public override bool IsMatch(SemanticModel semanticModel, MemberAccessExpressionSyntax memberAccessSyntax, CancellationToken cancellationToken) { + if (semanticModel is null) + throw new ArgumentNullException(nameof(semanticModel)); + if (memberAccessSyntax is null) + throw new ArgumentNullException(nameof(memberAccessSyntax)); + + // Check for cancellation early + cancellationToken.ThrowIfCancellationRequested(); + if (!IsFastMatch(memberAccessSyntax, MethodName.AsSpan())) { return false; } ISymbol? symbol = semanticModel.GetSymbolInfo(memberAccessSyntax, cancellationToken).Symbol; + + // Check for cancellation after potentially long operation + cancellationToken.ThrowIfCancellationRequested();🧰 Tools
🪛 GitHub Check: Codacy Static Code Analysis
[failure] 1-1: src/Common/MoqSetupMethodDescriptor.cs#L1
Provide an 'AssemblyVersion' attribute for assembly 'srcassembly.dll'.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
📒 Files selected for processing (10)
- Moq.Analyzers.sln (3 hunks)
- src/Analyzers/Moq.Analyzers.csproj (2 hunks)
- src/CodeFixes/Moq.CodeFixes.csproj (1 hunks)
- src/Common/Common.csproj (1 hunks)
- src/Common/Common.projitems (1 hunks)
- src/Common/MoqSetupMethodDescriptor.cs (1 hunks)
- src/Moq.CodeFixes/Moq.CodeFixes.csproj (0 hunks)
- tests/Moq.Analyzers.Benchmarks/Moq.Analyzers.Benchmarks.csproj (1 hunks)
- tests/Moq.Analyzers.Test.Analyzers/Moq.Analyzers.Test.Analyzers.csproj (1 hunks)
- tests/Moq.Analyzers.Test/Moq.Analyzers.Test.csproj (1 hunks)
💤 Files with no reviewable changes (1)
- src/Moq.CodeFixes/Moq.CodeFixes.csproj
🧰 Additional context used
📓 Path-based instructions (1)
src/Common/MoqSetupMethodDescriptor.cs (1)
Pattern
**/*.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:
- Review the code carefully and systematically
- Trace the relevant code paths
- Consider boundary conditions and potential error states
- Look for antipatterns that tend to cause bugs
- Run the code mentally with example inputs
- Think about interactions between components
When you find potential bugs, for each one provide:
- File path and line number(s)
- Description of the issue and why it's a bug
- Example input that would trigger the bug
- 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.
🪛 GitHub Check: Codacy Static Code Analysis
src/Common/MoqSetupMethodDescriptor.cs
[failure] 1-1: src/Common/MoqSetupMethodDescriptor.cs#L1
Provide an 'AssemblyVersion' attribute for assembly 'srcassembly.dll'.
🔇 Additional comments (18)
src/Common/Common.projitems (1)
1-5: Verify the integration with consuming projects.The shared items setup looks correct, but we should verify:
- That consuming projects properly import this .projitems file
- That the ShowCommonFiles property is properly set where needed
Let's check the project references:
✅ Verification successful
Let me gather more information about how these projects are using the Common.projitems file.
Based on the gathered information, I can now provide the final response:
✅ The shared project integration is properly configured
The verification shows that:
- Both Moq.Analyzers.csproj and Moq.CodeFixes.csproj correctly import the Common.projitems file using
<Import Project="$(RepoRoot)/src/Common/Common.projitems" Label="Shared" />- The ShowCommonFiles property is properly set to 'true' in Common.csproj, which serves as a reference implementation
- The RepoRoot property is correctly defined in Directory.Build.props, ensuring the import paths work correctly
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify .projitems integration in other projects # Test 1: Find all project files that might reference this .projitems echo "Checking for .projitems references in project files..." fd -e csproj -e props | xargs grep -l "Common.projitems" # Test 2: Check if ShowCommonFiles property is defined echo "Checking for ShowCommonFiles property definition..." fd -e csproj -e props | xargs grep -l "ShowCommonFiles"Length of output: 464
Script:
#!/bin/bash # Check the actual content of the project files to understand the integration echo "=== Content of Moq.Analyzers.csproj ===" cat "src/Analyzers/Moq.Analyzers.csproj" echo -e "\n=== Content of Moq.CodeFixes.csproj ===" cat "src/CodeFixes/Moq.CodeFixes.csproj" echo -e "\n=== Content of Common.csproj ===" cat "src/Common/Common.csproj" # Also check for Directory.Build.props as it might contain global properties echo -e "\n=== Checking for Directory.Build.props ===" fd "Directory.Build.props" | xargs catLength of output: 5528
tests/Moq.Analyzers.Test.Analyzers/Moq.Analyzers.Test.Analyzers.csproj (2)
14-14: LGTM! Path structure change improves consistency.The updated project reference using $(RepoRoot) and forward slashes is a good change that:
- Provides consistent path resolution across the solution
- Works cross-platform (Windows/Linux/macOS)
- Aligns with the PR's goal of better organization
14-14: Verify $(RepoRoot) property is defined.The project reference now uses $(RepoRoot), which requires this property to be defined in the build environment or a common props file.
✅ Verification successful
Let's try to find XML files first and then search within them.
$(RepoRoot) property is properly defined and used consistently
The
$(RepoRoot)property is correctly defined inDirectory.Build.propsat the solution root as$(MSBuildThisFileDirectory). This property is widely used across multiple projects in the solution, including:
- src/Analyzers/Moq.Analyzers.csproj
- src/CodeFixes/Moq.CodeFixes.csproj
- src/Common/Common.csproj
- tests/Moq.Analyzers.Test.Analyzers/Moq.Analyzers.Test.Analyzers.csproj
- tests/Moq.Analyzers.Test/Moq.Analyzers.Test.csproj
- tests/Moq.Analyzers.Benchmarks/Moq.Analyzers.Benchmarks.csproj
The usage of
$(RepoRoot)in the project reference is safe and follows the solution-wide convention.🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Check if $(RepoRoot) is defined in any .props files or the solution's Directory.Build.props # Test: Search for RepoRoot property definition rg -l "RepoRoot" --type xmlLength of output: 176
Script:
#!/bin/bash # First, find all XML files including props, csproj, etc. echo "=== Finding all XML files ===" fd -e xml -e props -e csproj # Then search for RepoRoot in these files echo -e "\n=== Searching for RepoRoot in XML files ===" fd -e xml -e props -e csproj -x grep -l "RepoRoot" {} \; # Also check the content of Directory.Build.props if it exists echo -e "\n=== Content of Directory.Build.props if exists ===" fd "Directory.Build.props" -x cat {}Length of output: 1951
src/CodeFixes/Moq.CodeFixes.csproj (3)
1-15: LGTM! The project file is well-structured.The project file correctly implements the requirements for a code fix project and aligns with the PR objectives of sharing common files across analyzers and code fixes.
13-13: Verify RepoRoot property definition.The import statement uses
$(RepoRoot)variable. Let's verify its definition to ensure correct path resolution.#!/bin/bash # Description: Check RepoRoot property definition # Expected: Find RepoRoot in Directory.Build.props or similar files # Look for files that might define RepoRoot fd -e props -e targets | xargs rg -l "RepoRoot"
9-11: Verify package version management.The package reference looks correct with appropriate PrivateAssets setting. However, let's verify how the version is managed.
✅ Verification successful
Let's examine the content of Directory.Packages.props to verify the version management.
Package version is properly managed centrally
The package version management is well-implemented:
- Version is centrally managed in Directory.Packages.props
- Microsoft.CodeAnalysis.CSharp.Workspaces is pinned to version 4.3.1
- The version choice is documented with clear rationale regarding SDK compatibility
- Central package version management is enabled with transitive pinning
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Check if package versions are centrally managed # Expected: Find version management in Directory.Build.props or similar files # Look for files that might contain package versions fd -e props -e targets | xargs rg -l "Microsoft.CodeAnalysis.CSharp.Workspaces"Length of output: 381
Script:
#!/bin/bash # Check the content of Directory.Packages.props for version management cat Directory.Packages.propsLength of output: 1946
tests/Moq.Analyzers.Benchmarks/Moq.Analyzers.Benchmarks.csproj (1)
10-10: LGTM! Project reference path updated correctly.The path update aligns with the project restructuring, maintaining consistency across the solution.
Let's verify the project reference path exists:
✅ Verification successful
Since the
fdcommand successfully found the project file atsrc/Analyzers/Moq.Analyzers.csproj, which matches exactly with the path referenced in the project file (when combined with the$(RepoRoot)variable), I can now generate the final response:✅ Project reference path verified and exists
The project reference path
$(RepoRoot)/src/Analyzers/Moq.Analyzers.csprojis valid and points to an existing project file in the repository.🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify the project reference path exists # Expected: The project file should exist at the new location fd -p "src/Analyzers/Moq.Analyzers.csproj$"Length of output: 80
src/Common/MoqSetupMethodDescriptor.cs (1)
1-1: Verify namespace change impact across the solution.The namespace change from
Moq.AnalyzerstoMoq.Analyzers.Commonlooks good and aligns with the shared component structure. However, we should verify that all references to this class have been updated.✅ Verification successful
Let me try a different approach to verify the namespace change impact by searching for any references to the class name and analyzing the using statements more broadly.
Let me check the other file that references this class to ensure the namespace change is properly handled.
Based on the gathered evidence, I can now provide the final response:
Namespace change to
Moq.Analyzers.Commonis correctly implementedThe namespace change has been properly implemented and all references are consistent:
- Both
MoqSetupMethodDescriptor.csandSemanticModelExtensions.csuse the newMoq.Analyzers.Commonnamespace- No references to the old namespace
Moq.Analyzers.MoqSetupMethodDescriptorwere found in the codebase- The class is only used internally within the Common directory, and all usages are properly scoped
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Find any remaining references to the old namespace that might need updating # Search for old namespace usage echo "Searching for old namespace references..." rg "Moq\.Analyzers\.MoqSetupMethodDescriptor" -l # Search for any using statements that might need updating echo "Checking using statements..." rg "using\s+Moq\.Analyzers;" -lLength of output: 244
Script:
#!/bin/bash # Search for any references to MoqSetupMethodDescriptor class echo "Searching for class references..." rg "MoqSetupMethodDescriptor" -l # Search for files that might be using this class echo "Searching for potential usage files..." fd ".*\.cs$" --exec grep -l "using.*Moq\.Analyzers" # Get content of the class file to understand its usage echo "Content of MoqSetupMethodDescriptor.cs:" cat src/Common/MoqSetupMethodDescriptor.csLength of output: 3147
Script:
#!/bin/bash # Check the content of the other file referencing MoqSetupMethodDescriptor echo "Content of SemanticModelExtensions.cs:" cat src/Common/SemanticModelExtensions.cs # Check if there are any references to the old namespace in the test files echo "Checking test files for old namespace references:" rg "Moq\.Analyzers\.MoqSetupMethodDescriptor" ./testsLength of output: 5411
🧰 Tools
🪛 GitHub Check: Codacy Static Code Analysis
[failure] 1-1: src/Common/MoqSetupMethodDescriptor.cs#L1
Provide an 'AssemblyVersion' attribute for assembly 'srcassembly.dll'.tests/Moq.Analyzers.Test/Moq.Analyzers.Test.csproj (1)
28-29: LGTM! Verify the updated project paths.The project reference paths have been updated to use
$(RepoRoot)consistently, which is a good practice for path resolution. The changes align with the project restructuring objectives.Let's verify the existence of the referenced projects:
✅ Verification successful
Project reference paths verified successfully
Both referenced projects exist at their specified locations:
src/Analyzers/Moq.Analyzers.csprojtests/Moq.Analyzers.Test.Analyzers/Moq.Analyzers.Test.Analyzers.csproj🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify that the referenced project files exist at the new locations # Test: Check if the Moq.Analyzers project exists fd --type f "Moq.Analyzers.csproj" src/Analyzers # Test: Check if the test analyzers project exists fd --type f "Moq.Analyzers.Test.Analyzers.csproj" tests/Moq.Analyzers.Test.AnalyzersLength of output: 239
src/Common/Common.csproj (3)
1-14: LGTM! Well-documented design decisions.The documentation clearly explains the trade-offs between different approaches (NoTargets, .shproj, current solution).
Let's verify the maintenance implications of this shared project approach:
#!/bin/bash # Description: Check for potential maintenance issues with the shared project approach # Test 1: Check if any projects are already importing Common.projitems echo "Checking for existing Common.projitems imports..." rg -l "Import.*Common\.projitems" # Test 2: Check for potential file conflicts echo "Checking for potential file conflicts across projects..." fd -e cs -x dirname {} \; | sort | uniq -c | sort -nr
16-22: Verify if netstandard2.0 is the optimal target framework.While netstandard2.0 provides good compatibility, please verify if this aligns with the minimum requirements of your analyzers and code fixes.
Let's check the target frameworks of related projects:
#!/bin/bash # Description: Check target frameworks across the solution # Test: Find target framework specifications in all project files echo "Checking target frameworks across projects..." fd -e csproj -x rg -l "TargetFramework.*" {}
30-34: Verify package version and RepoRoot variable.A few points to verify:
- The Microsoft.CodeAnalysis.CSharp package version should be specified to ensure consistency
- Ensure $(RepoRoot) is properly defined in the build environment
Let's check these aspects:
✅ Verification successful
Let me try another verification approach with different commands:
Let me try one final verification to check the package versions in the central package management files, which is a common practice:
Package version is centrally managed and RepoRoot is properly defined
Based on the verification results:
- The Microsoft.CodeAnalysis.CSharp package version (4.3.1) is centrally managed in Directory.Packages.props, which is the recommended approach for .NET projects
- The
$(RepoRoot) variable is properly defined in Directory.Build.props as $ (MSBuildThisFileDirectory), which is the standard way to reference the repository rootThe original concerns have been addressed:
- Package versioning is handled correctly through central package management
- RepoRoot variable is properly defined at the solution level
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify package versions and RepoRoot usage # Test 1: Check for Microsoft.CodeAnalysis.CSharp versions across projects echo "Checking Microsoft.CodeAnalysis.CSharp versions..." rg -l "PackageReference.*Microsoft\.CodeAnalysis\.CSharp" # Test 2: Check for RepoRoot definition echo "Checking RepoRoot definition..." fd -e props -e targets -x rg -l "RepoRoot" {}Length of output: 573
Script:
#!/bin/bash # Check for Microsoft.CodeAnalysis.CSharp package references with versions echo "Checking Microsoft.CodeAnalysis.CSharp package references:" rg "PackageReference.*Microsoft\.CodeAnalysis\.CSharp.*Version" -A 1 -B 1 # Check for Directory.Build.props which commonly defines global properties echo -e "\nChecking Directory.Build.props files:" fd "Directory.Build.props" --exec cat {} # Check other potential property files that might define RepoRoot echo -e "\nChecking other property files for RepoRoot:" fd -e props -x grep -l "RepoRoot" {}Length of output: 996
Script:
#!/bin/bash # Check for Directory.Packages.props which is commonly used for central package versioning echo "Checking Directory.Packages.props:" fd "Directory.Packages.props" --exec cat {} # Also check build/targets/compiler/Compiler.props as it was imported in Directory.Build.props echo -e "\nChecking Compiler.props:" cat "build/targets/compiler/Compiler.props" 2>/dev/null || echo "File not found" # Check for any global package version definitions echo -e "\nChecking for global package versions:" rg "Microsoft\.CodeAnalysis\.CSharp" --type xmlLength of output: 2831
src/Analyzers/Moq.Analyzers.csproj (2)
30-31: LGTM: Common.projitems import is correctly configured.The import statement is properly configured with the "Shared" label and uses the correct path convention.
44-44: Verify project structure changes.The project reference path update aligns with the new directory structure. However, let's verify the consistency of these changes across the solution.
Moq.Analyzers.sln (4)
6-6: Project path changes look good.The simplified directory structure (moving from
src\Moq.Analyzerstosrc\Analyzersandsrc\Moq.CodeFixestosrc\CodeFixes) makes the codebase more maintainable while preserving the assembly names.Also applies to: 12-12
18-19: Common project addition aligns with objectives.The addition of the Common project with a standard SDK-style project format is a good choice over .shproj, as it provides better IDE support and modern refactoring capabilities.
46-49: Build configurations are properly set up.The Debug and Release configurations for the new Common project are correctly configured with both ActiveCfg and Build.0 settings.
62-66: Verify shared project configuration.The SharedMSBuildProjectFiles section correctly links the Common.projitems to all relevant projects. However, let's verify the existence and content of the Common.projitems file.
✅ Verification successful
Let me verify the project references further by checking the actual projects that are sharing this Common.projitems file.
Let me try a different approach to find and verify the project files.
Let me check the project files that should be sharing the Common code to verify their configuration.
Shared project configuration is correctly set up
The verification shows that:
- The Common.projitems file exists and is properly configured to include all .cs files in its directory
- Both Moq.Analyzers.csproj and Moq.CodeFixes.csproj correctly import the Common.projitems using:
<Import Project="$(RepoRoot)/src/Common/Common.projitems" Label="Shared" />- The Common directory contains multiple shared .cs files that are properly included through the projitems configuration
- The GUIDs in the solution file correctly map to these projects
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify the Common.projitems file exists and check its content # Expected: File exists and contains proper MSBuild item group definitions # Check if the Common.projitems file exists if ! fd -p "src/Common/Common.projitems$"; then echo "Error: Common.projitems file not found" exit 1 fi # Display the content of Common.projitems for review echo "Content of Common.projitems:" cat $(fd -p "src/Common/Common.projitems$")Length of output: 362
Script:
#!/bin/bash # Check the project files referenced in the solution with their GUIDs rg -l "41ecc571-f586-460a-9bed-23528c8210c4|622db72f-5609-4c08-838d-6937a680094a|8e99c15c-e80a-49e5-988c-1b5071ce775f" --type xml # For each found project file, show its content focusing on project references and shared project imports for proj in $(rg -l "41ecc571-f586-460a-9bed-23528c8210c4|622db72f-5609-4c08-838d-6937a680094a|8e99c15c-e80a-49e5-988c-1b5071ce775f" --type xml); do echo "=== Content of $proj ===" cat "$proj" echo doneLength of output: 562
Script:
#!/bin/bash # Find all project files first echo "=== Finding all project files ===" fd -e csproj # Check the content of Common.projitems again and its directory echo -e "\n=== Common.projitems directory content ===" ls -la $(dirname $(fd -p "src/Common/Common.projitems$")) # Show content of any .cs files in the Common directory echo -e "\n=== .cs files in Common directory ===" fd -e cs . $(dirname $(fd -p "src/Common/Common.projitems$"))Length of output: 2571
Script:
#!/bin/bash # Check the content of the main project files that should be sharing Common echo "=== Content of Moq.Analyzers.csproj ===" cat "src/Analyzers/Moq.Analyzers.csproj" echo -e "\n=== Content of Moq.CodeFixes.csproj ===" cat "src/CodeFixes/Moq.CodeFixes.csproj" echo -e "\n=== Content of Moq.Analyzers.Test.csproj ===" cat "tests/Moq.Analyzers.Test/Moq.Analyzers.Test.csproj"Length of output: 4741
|
Code Climate has analyzed commit 6c20348 and detected 162 issues on this pull request. Here's the issue category breakdown:
View more on Code Climate. |
[//]: # (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…
This is another preparatory refactoring change. The intention is to make it easier to share both files and settings across the analyzers and code fixes by using a shared
Common.projitemsfile.To make editing the common files easier, there's also a
Common.csprojproject, however that's marked as not packable / publishable. Visual Studio has its own.shprojformat for these types of projects, but they have several disadvantages:A simple project sidesteps all these issues at the expense of compiling an extra .dll that's unused.