HellBrick.Diagnostics 3.3.0

Diagnostics

Install-Package HellBrick.Diagnostics -Version 3.3.0
dotnet add package HellBrick.Diagnostics --version 3.3.0
<PackageReference Include="HellBrick.Diagnostics" Version="3.3.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add HellBrick.Diagnostics --version 3.3.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Release Notes

v3.3.0:
     - Enabled concurrent analysis for most of analyzers
     - Added an analyzer that reports and removes the code that was commented out
     - Added an analyzer that enforces methods that don't reference any instance members to be static
     - Added an analyzer that reports and converts method groups to lambdas
     - Fixed an issue that caused the unused parameter code fix to simplify unrelated code near the call site
     - Fixed an issue that caused the unused parameter code fix to remove explicitly placed type arguments from the call site
     - Dropped HBMissingAccessModifier (it's been implemented by VS + .editorconfig's dotnet_style_require_accessibility_modifiers)
     - Dropped HBEnforceReadOnly (it's been implemented by VS + .editorconfig's dotnet_style_readonly_field)

     v3.2.0:
     - Changed GetHashCode() and Equals() generators to delegate their logic to tuples of struct fields
     - Changed ConfigureAwait() analyzer to underline only await keyword (instead of whole await expression) when reporting a warning

     v3.1.1:
     - Fixed Equals() generator to support generic structs

     v3.1.0:
     - Removed the unused references analyzer (it has never worked properly anyway)
     - Made generated GetHashCode() and Equals() less verbose
     - Fixed the unused parameter code fix to add the type arguments if they can no longer be inferred after removing the redundant argument
     - Updated GetHashCode() generator to respect var/int code style preference
     - Readonly modifier is now enforced on a non-mutated value type field if the type of the field is a readonly struct

     v3.0.2:
     - Fixed a false positive reported by the unused parameter analyzer for an interface method declaration that has a parameter with a default value

     v3.0.1:
     - Fixed unused parameter analyzer to examine base calls and expression bodies properly
     - Fixed unused parameter analyzer not to suggest removing `this` parameter from extension methods
     - Fixed unused member analyzer to recognize `nameof( Method )` references

     v3.0.0:
     - Added an analyzer that forces immutable structs to have readonly modifier
     - Struct equatability analyzer has been changed to ignore structs that don't have a readonly modifier
     - Fields of non-readonly structs are no longer enforced to be readonly
     - Struct equatability diagnostics have new shared ID that allows suppressing them all with a single #pragma
     - Extended ConfigureAwait() analyzer to support arbitrary awaitable types

     v2.0.0:
     - Migrated to Roslyn 2.0
     - Updated analyzers and code fixes to respect C# 7.1

     v1.7.1:
     - fixed an exception caused by the Roslyn type resolve bug

     v1.7.0:
     - an analyzer that detects struct null comparison

     v1.6.0:
     - an analyzer that detects unused method parameters

     v1.5.1:
     - equality and mutability warnings are no longer reported for the struct enumerators
     - internal members are no longer considered unused if assembly has [InternalsVisibleTo] attribute
     - private members referenced from other partial class definitions are no longer considered unused
     - all analyzers use default heuristics to skip generated files

     v1.5.0:
     - an analyzer that detects unused class members (private and internal only)

     v1.4.5:
     - disabled formatting analyzer until it can be re-implemented properly

     v1.4.4:
     - suppressed another format of auto-generated comments

     v1.4.3:
     - changed diagnsotic IDs to provide compatibility with VS 2015 update 1

     v1.4.2:
     - an attempt to fix the FormattingAnalyzer warning issued on VS loading it from a nuget package

     v1.4.1:
     - merged in the analyzer that enforces ConfigureAwait()
     - fixed a bunch of bugs

     v1.4.0:
     - an analyzer that enforces explicit access modifiers
     - an analyzer that enforces immutability and equatability on structs
     - all analyzers ignore auto-generated code

     v1.3.0:
     - an analyzer that enforces the proper code formatting
     - a refactoring to convert one-line properties to expression-bodied properties

     v1.2.1:
     - fixed Nuget package installation issues
     - readonly modifier can now be enforced on fields of primitive types
     - var can be converted to explicit type inside the using declaration block
     - var can no longer be converted if it's generic type with anonymous arguments
     - conversion to expression-bodied member is no longer suggested for the methods that can't be converted
     - the reference is no longer considered unused if a method that returns a type declared in it is invoked

     v1.2.0:
     - a refactoring to convert String.Format() call to an interpolated string
     - a refactoring to convert var to explicit type name and back

     v1.1.0:
     - unused project references are reported to the error/information list

     v1.0.2:
     - upgraded to VS 2015 RTM

     v1.0.1:
     - readonly modifier is no longer enforced on value type fields (to avoid SpinLock-like issues)

     v1.0.0:
     - enforce readonly modifier on fields
     - convert one-line methods to expression-bodied methods

Version History

Version Downloads Last updated
3.3.0 281 3/24/2019
3.2.0 140 2/18/2019
3.1.1 1,557 6/24/2018
3.1.0 249 6/12/2018
3.0.2 460 4/18/2018
3.0.1 1,978 2/5/2018
3.0.0 1,068 1/8/2018
2.0.0 1,710 8/20/2017
1.7.1 289 1/17/2017
1.7.0 258 12/21/2016
1.6.0 328 7/23/2016
1.5.1 282 7/23/2016
1.5.0 368 3/7/2016
1.4.5 553 1/18/2016
1.4.4 375 12/22/2015
1.4.3 391 12/4/2015
1.4.2 329 10/4/2015
1.4.1 306 10/4/2015
1.4.0 297 9/27/2015
1.3.0 302 9/20/2015
1.2.1 305 9/20/2015
1.2.0 306 7/27/2015
1.1.0 287 7/25/2015
1.0.2 311 7/24/2015
1.0.1 437 7/13/2015
1.0.0 396 7/11/2015