Skip to content

Releases: SonarSource/sonar-dotnet

6.5

19 Oct 14:19

Choose a tag to compare

6.5

Bug

  • #792 - Fix S3928: Rule throws NullReferenceException

False Positive

  • #708 - Fix S4056: Rule should not recommend to use obsolete methods
  • #761 - Fix S1168: Rule should not report when returning null within a lambda

New Feature

  • #740 - Rule S4225: Extension methods should not extend "object"
  • #741 - Rule S4226: Extensions should be in separate namespaces
  • #742 - Rule S4220: Events should have proper arguments
  • #746 - Rule S4214: "P/Invoke" methods should not be visible
  • #779 - Rule S4260: "ConstructorArgument" parameters should exist

Notes

6.5-RC1

17 Oct 14:05

Choose a tag to compare

6.5-RC1 Pre-release
Pre-release

6.4.1

22 Sep 09:07

Choose a tag to compare

Bug

  • #791 - Fix SonarC#: Parameterized rules are not read properly

Notes

6.4

31 Aug 13:56

Choose a tag to compare

6.4

Bug

  • #631 - Fix S2325: Should raise issues for methods and properties with SuppressMessage attribute
  • #671 - Update of plugin to v6.3(build 2862) doesn't report any issues in code.
  • #690 - Fix S3881: Rule should not fail with 'Syntax node is not within syntax tree'
  • #721 - Fix link to GitHub page on sonarlint-website
  • #725 - Fix S1121: NullReferenceException when while loop with assignment expression is within a for loop with no condition
  • #726 - Fix S2372: do not throw ArgumentNullException on nlog
  • #727 - Fix CognitiveComplexity to not throw an exception on Lucene.Net
  • #728 - Fix S3877: do not throw ArgumentNullException on ravendb

False Positive

  • #538 - Fix S2259: "Null pointer dereference" false positive when fields qualified with 'this' are assigned and then read
  • #596 - Fix S3242: Rule should not trigger on interface methods
  • #655 - Update S3881: Correct documentation and add more unit tests
  • #674 - Rules S3897 and S4035 might be in contradiction
  • #682 - Fix S1751: Rule shouldn't raise on exceptions within while loops
  • #692 - Fix S3263: Rule should not raise when constant field is used in initialization
  • #694 - Fix S2372: Allow some exceptions being raised in properties as per CA1065
  • #701 - Fix S3897: Rule should not suggest to implement IEquatable when Equals is not public

Improvement

  • #601 - Update S110: Update the rule behavior to not count classes defined into another root namespace
  • #623 - Update S2068: Credentials should not be hard-coded
  • #684 - Update SonarLint website to mention GitHub repository as a place to file issues

New Feature

  • #335 - Update plugin to support NUnit 3 test results
  • #581 - Rule S2183: Ints and longs should not be shifted by zero or more than their number of bits-1
  • #582 - Rule S1168: Empty arrays and collections should be returned instead of null
  • #610 - Rule S4144: Methods should not have identical implementations
  • #611 - Rule S4142: Duplicate values should not be passed as arguments
  • #626 - Rule S3433: Test methods should have correct signature
  • #636 - Rule S4158: Empty collections should not be accessed or iterated
  • #662 - Rule S1607: Tests should not be ignored
  • #663 - Rule S3415: Assertion arguments should be passed in the correct order
  • #664 - Rule S2701: Literal boolean values should not be used in assertions
  • #665 - Rule S2699: Tests should include assertions
  • #666 - Rule S3431: 'ExpectedExceptionAttribute' should not be used
  • #667 - Rule S2187: Test class should contain test methods

Notes

6.4-RC1

25 Aug 12:47

Choose a tag to compare

6.4-RC1 Pre-release
Pre-release

6.3

04 Aug 14:02

Choose a tag to compare

6.3

Bug

  • #416 - Fix S3881: Rule should not fail on partial classes
  • #526 - Fix S101: "Class Name" infinite loop when class name contains non-Latin Characters
  • #576 - Fix S100: infinite loop when class name contains non-Latin Characters
  • #587 - Fix S3966: Rule should not throw cast exception
  • #589 - Fix S3925: Call to 'base.GetObjectData' is not properly detected

False Positive

  • #174 - Update S101: A special case should be made for two-letter acronyms in which both letters are capitalized
  • #547 - Fix S3346: Rule raises FP on peach
  • #571 - Fix S2275: Rule should not trigger on space before alignment
  • #590 - Fix S1751: Rule should not raise on "retry on exception" pattern

Improvement

  • #320 - Update S100: Support custom dictionaries for adding names that will not raise issues
  • #565 - POC for analyzer running on Linux
  • #566 - Automate website release process
  • #591 - Update S3966: Rule should detect multiple call of Dispose on this
  • #600 - Update S2275: Rule should detect too big values for ArgumentIndex and Alignment
  • #607 - Update S3962: Ignore public static readonly fields
  • #608 - Update S112: Report if exceptions are actually thrown, not just created

New Feature

  • #254 - Rule S3985: Unused private classes should be removed
  • #541 - Rule S2114: Collections should not be passed as arguments to their own methods
  • #570 - Symbolic Execution Engine supports multiple constraints per Symbolic Value
  • #583 - Rule S1696: 'NullReferenceException' should not be caught
  • #584 - Rule S3693: Exception constructors should not throw exceptions
  • #585 - Rule S3717: Track use of "NotImplementedException"

6.3-RC1

02 Aug 12:10

Choose a tag to compare

6.3-RC1 Pre-release
Pre-release

6.2

02 Aug 07:51

Choose a tag to compare

6.2

False Positive

  • #504 - Fix S2386: Rule should not report when readonly field is initialized with null
  • #530 - Fix S3881: "Implement IDisposable correctly" should allow calling GC.SuppressFinalize(this) even when there is no destructor
  • #550 - Fix S3908: Rule should not report issues on classes that implement interfaces

Improvement

  • #516 - Update S927: C#: parameter names should match base declaration and other partial definitions
  • #519 - Rule S110: "filteredClasses" documentation should describe which delimiter to use or provide specific examples

New Feature

  • #164 - Rule S3900: Arguments of public methods should be validated against null
  • #209 - Rule S3966: Objects should not be disposed more than once
  • #497 - Rule S4070: Non-flags enums should not be marked with "FlagsAttribute"
  • #498 - Rule S4049: Properties should be preferred
  • #499 - Rule S4050: Operators should be overloaded consistently
  • #500 - Rule S4052: Types should not extend outdated base types
  • #501 - Rule S4060: Non-abstract attributes should be sealed
  • #502 - Rule S4061: "params" should be use instead of "varargs"
  • #503 - Rule S4047: Generics should be used when appropriate
  • #506 - Rule S3956: "Generic.List" instances should not be part of public APIs
  • #507 - Rule S1075: URIs should not be hardcoded
  • #508 - Rule S4069: Operator overloads should have named alternatives
  • #509 - Rule S4058: Overloads with a "StringComparison" parameter should be used
  • #510 - Rule S4059: Property names should not match get methods
  • #511 - Rule S4057: Locales should be set for data types
  • #512 - Rule S4055: Literals should not be passed as localized parameters
  • #513 - Rule S4056: Overloads with a "CultureInfo" or an "IFormatProvider" parameter should be used
  • #514 - Rule S3242: Method parameters should be declared with base types
  • #515 - Rule S1200: Classes should not be coupled to too many other classes (Single Responsibility Principle)
  • #517 - Rule S3649: User-provided values should be sanitized before use in SQL statements

Notes

6.2-RC1

14 Jul 08:52

Choose a tag to compare

6.2-RC1 Pre-release
Pre-release

6.1

05 Jul 12:25

Choose a tag to compare

6.1

Bug

  • #298 - Potential problem in CFG with continue statement in and do-while loop
  • #406 - SonarC# fails when parsing xUnit test results with empty tags
  • #462 - Fix S3897: Classes that provide "Equals()" should implement "IEquatable"
  • #489 - Provide better error message when using old version of Scanner for MSBuild

False Positive

  • #152 - Fix S2583: Rule should consider Nullable values
  • #376 - Fix S3897: Correctly recognize IEquatable implementations from base classes
  • #424 - Update S3427: "Method overloads" should not raise when methods differ by generic type arguments
  • #430 - Update S3237: Add exception for empty properties from interfaces
  • #431 - Fix S1944: don't raise issue on "as"
  • #472 - Fix S2386: Do not raise if the readonly field is initialized with a known immutable collection
  • #473 - Fix S4015: Rule should not raise on 'new' or 'override' members
  • #493 - Fix S2259: "Null pointer dereference" raises FP when a variable is initialized in catch(Exception) block

Improvement

  • #154 - Support many coverage reports
  • #235 - Update S1764: Comparing the same object with Object.Equals() method
  • #322 - Fail fast ITs if not on Windows
  • #380 - [Technical] Improve build scripts to allow building SonarC# on a dev box
  • #388 - Update S1479: "Switch with too many cases" should ignore empty, fall-through cases
  • #420 - S3897 is an unsafe suggestion in my opinion
  • #422 - default() should have a null or not null constraint on it
  • #455 - Add blocks for try-finally statements into CFG, ignoring catch clauses (happy path)
  • #467 - Add blocks in CFG for catch clauses and connect try-finally
  • #468 - Support nested try-catch blocks
  • #486 - Fix spelling errors

New Feature

  • #215 - Rule S3972: Conditionals should start on new lines
  • #433 - Rule S2221: "Exception" should not be caught when not required by called methods
  • #434 - Rule S4039: Interface methods should be callable by derived types
  • #436 - Rule S4041: Type names should not match namespaces
  • #437 - Rule S3927: Serialization event handlers should be implemented correctly
  • #461 - Rule S4035: Classes implementing "IEquatable" should be sealed

Notes