Releases: SonarSource/sonar-dotnet
Releases · SonarSource/sonar-dotnet
10.3
10.2
New Rules
Improvement
- NET-567 - Remove S6605 from SonarWay profile and update the RSPEC to mention that the rule makes sense only for .NET versions <9
- NET-566 - Remove S6603 from SonarWay profile and update the RSPEC to mention that the rule makes sense only for .NET versions <9
- NET-407 - S2551: Improve RSpec recommendation
- NET-226 - S3878: Improve RSPEC to include collection expressions
- NET-528 - MetricAnalyzer: Line numbers does not respect ExcludeFromCodeCoverage for partial properties
- NET-527 - MetricAnalyzer: Function count should not count partial property declaration parts
False Positive
- NET-553 - Fix S4260 FP: Do not raise twice for partial properties
- NET-543 - Fix S4059 FP: Do not raise twice for partial properties
- NET-534 - Fix S3353 FP: Support ref locals
- NET-456 - Fix S2292 FP: Do not raise on partial properties
- NET-389 - Fix S2386 FP: support 'ReadOnlySet'
- NET-388 - Fix S3887 FP: support 'ReadOnlySet'
- NET-356 - Fix S3878 FP: support 'param' with implicit custom methods
- NET-568 - Remove S6602 from SonarWay profile and update the RSPEC to mention that the rule makes sense only for .NET versions <9
- NET-601 - Fix S4275 FP: Support &= assignment
False Negative
10.1
10.0
New rule
False negatives
- NET-497 - Fix S3343 FN: Support primary constructors
- NET-486 - Fix S1125 FN: Null-suppression operator suppresses S1125
- NET-278 - Fix FN S1481: Support linq range variables
- NET-305 - Fix S1481 FN: Support for C# 7 variable declarations
False positives
- NET-402 - Fix S2953 FP: Implement IDisposable.Dispose on extension methods static class
- NET-165 - Fix S4144 FP: Methods with different return types
- NET-108 - Fix S3963 FP: Tuple assignments
- NET-125 - Fix S2933 FP: Assignment to this
- NET-265 - Fix S1144 FP: Public indexer in nested class used in parent class
- NET-265 - Fix S6967 FP: Methods with string, object and dynamic arguments
- NET-278 - Fix S2629 FP: Do not raise on log4net.Error(Exception)
- NET-405 - Fix S3459 FP: Support @ref bindings in razor files / partial Blazor components
Bug
Improvements
9.32
This rule includes the promotion of 4 rules to Sonar-way, the deprecation of 1 rule and 2 FP fixes.
Rule Promotions and Deprecations
- 9644 - Modify S2387: Deprecate rule
- 9643 - Modify S4050: Promote to Sonar-way
- 9642 - Modify S2674: Promote to Sonar-way
- 9641 - Modify S3993: Promote to Sonar-way
- 9640 - Modify S4052: Promote to Sonar-way
False Positive
9.31
This release focuses on improving the SonarQube plugin for the .NET analyzers.
Improvements
- 9558 - SQ Plugin: Load STIG standard after ACOMMONS-11 is done
- 8503 - SQ Plugin: Align logging for not indexed files
- 7798 - SQ Plugin: Remove the sonar runtime checks for versions prior 9.9
- 7115 - SQ Plugin: Replace org.sonar.api.utils.log.Logger
- 4687 - SQ Plugin: Add xunit report paths in products UI
- 4685 - SQ Plugin: Remove deprecated import of integration test coverage from plugins
- 3102 - SQ Plugin: Replace usages of deprecated Build.setProfile in the integration tests
- 8032 - SQ Plugin: Update the plugin to store the hash for the .cshtml files to enable incremental PR analysis
9.30
Hello, everyone. In this release, we worked on hardening our live variable analysis, which improved the analyzer's accuracy.
False Positives
- 9473 - Fix S1854 FP: Raises when a variable is reassigned in a using body after it has been already assigned in using statement
- 9472 - Fix S1854 FP: Raises when a variable is assigned in the switch statement and not used in the first case
- 9471 - Fix S1854 FP: Raises when a variable is assigned in expression that is part of the ternary condition
- 9468 - Fix S1854 FP: Throw should connect to outer catch
- 9466 - Fix S1854 FP: Throw should visit finally
9.29
This release includes a lot of false positive and false negative fixes.
Improvements
- 2120 - [C#] Improve S3247: Rule should recommend pattern matching for new C# instead of
as
- 9465 - Update RSPEC before 9.29 release
False Positive
- 7522 - [C#] Fix S1104 FP: Do not report in Unity3D serializable classes
- 6990 - [C#] Fix S1144 FP: Event with a concrete sender
- 3842 - [C#] Fix S1144 FP: Ignore unused
Deconstruct
methods - 8239 - [C#] Fix S1450 FP: When field is assigned value in event handler
- 9494 - [C#] Fix S1694 FP: Abstract class with field or constructor
- 9421 - [C#] Fix S1694 FP: Protected abstract methods
- 3605 - [C#] Fix S2219 FP: Is operator used for pattern matching
- 8266 - [C#] Fix S2259 FP: SE engine doesn't take into account element existence collection methods
- 9485 - [C#] Fix S3247 FP: Should not report on member access objects
- 6343 - [C#] Fix S3963 FP: Static constructor with conditional and no static field initialization
- 7961 - [C#, VB.NET] Fix S2699 FP: Support Moq
False Negative
9.28
False Positive
- 9432 - [C#] Fix S1144 FP: Unused fields in class with StructLayout when struct is in deep hierarchy class
- 9379 - [C#] Fix S1144 FP: Diagnostic doesn't respect reflection with
DynamicallyAccessedMembers
attribute - 8342 - [C#] Fix S1144 FP: Private Attributes
- 7068 - [C#] Fix S4144 FP: when type constraints are used
- 3050 - [C#] Fix S1479 FP: Single line case clause should be ignored
- 9447 - [C#] Fix S1854 FP: Value used in
catch
orwhen
should LiveIn for all try blocks - 9440 - [C#] Fix S1854 FP: Value used in finally should LiveIn for all try blocks
- 4948 - [C#] Fix S1854 FP: Value used in finally should LiveIn after throw
- 6894 - [C#, VB.NET] Fix S3878 FP: When non-object array is passed to object[] params as first argument
- 6893 - [C#, VB.NET] Fix S3878 FP: when a params argument is named
False Negative
9.27
This release includes a ton of false positive and false negative fixes. We would also like to thank @sagi1623 for his contribution in #8464, which fixed three issues 🚀.
Improvements
- RSPEC change - Rule S1694: Promoted to SonarWay
- 9390 - Rule S6608: Benchmark is benchmarking the wrong things
- 8795 - [C#] Improve S1694: Remove part about protected constructor
- 5417 - Enable multiple project level issues
- 9372 - Update RSPEC before 9.27 release
False Positive
- 9247 - [C#] Fix S2629 FP: Constant fields in interpolated string
- 9241 - [C#, VB.NET] Fix S2094 FP: Allow empty queries
- 9106 - [C#] Fix S3459 FP: Backing field with
ref
property - 8522 - [C#, VB.NET] Fix S3220 FP: Rule does not take into account generics
- 8436 - [C#] Fix S3253 FP: Don't raise for primary constructor in type declarations without parameters when they inherit from types with parameters
- 8199 - [C#, VB.NET] Fix S2737 FP: Raised when exception filter is used
- 8025 - [C#] Fix S2325 FP: Partial method implementations
- 7521 - [C#] Fix S2743 FP: Should not raise when base type is generic
- 7137 - [VB.NET] Fix S1654 FP: Do not report on event handlers, interfaces and overrides
False Negative
- 9002 - [C#, VB.NET] Fix S6931 FN: Route templates starting with
~/
- 6644 - [C#] Fix S2190 FN: No issues raised if recursion is inside an EventDeclaration by @sagi1623
- 6643 - [C#] Fix S2190 FN: No issues raised if recursion is inside a ConversionOperatorDeclaration by @sagi1623
- 6642 - [C#] Fix S2190 FN: No issues raised if recursion is inside an indexer by @sagi1623
- 4081 - [C#] Fix S2743 FN: Static fields of nested class inside generic class