Skip to content

Latest commit

 

History

History
506 lines (413 loc) · 46.1 KB

CHANGELOG.md

File metadata and controls

506 lines (413 loc) · 46.1 KB

Change Log

v1.1.0 (2018-05-20)

Full Changelog

Implemented enhancements:

  • Create a reusable FixAllProvider based on IntroduceFieldFromConstructorCodeFixProviderAll #910

  • Enable CodeCracker to work with .NET Core #871

  • CC0068 (Remove private method): ShouldSerializeXXX() and ResetXXX() should not trigger the message #762

  • Create PropertyChangedEventArgs statically #42

  • CC0013 Check for applicability as argument #522

  • Make readonly (for complex value types) #808

  • CC0120: Suggest default for switch statements (C#) #780

  • Remove Unnecessary ToString in String Concatenation #753

  • Check consistency of optional parameter default value #575

  • Make accessibility consistent (code fix for CS0050 to CS0061) #381

  • Prefer "Any" to "Count() > 0" #490

  • Prefer "Count" to "Count()" #489

  • Extract Class to a New File #382

  • Seal member if possible #372

  • Remove virtual modifier if possible #371

  • Remove async and return task directly #151

  • Change from as operator to direct cast or the opposite #65

  • Convert loop to linq expression #22

Fixed bugs:

  • CC0061 shouldn't pop for async Main #958
  • Bug: CC0061: Implementing interface using async keyword should not raise a diagnostic #936
  • Bug CC0031 UseInvokeMethodToFireEventAnalyzer false positive in constructor #926
  • BUG: CC0014 Casting to interface or implicit casts for the ternary operator are fixed wrong #911
  • TernaryOperatorWithReturnCodeFixProvider NullReferenceException #906
  • BUG: CC0022 failed to show fix with null coalesce operator #870
  • BUG: CC0118 - Unnecessary '.ToString()' call in string concatenation #866

Closed issues:

  • Support Hacktoberfest event adding hacktoberfest tag. #949
  • Using Extension & NuGet package together causes VS2017 to crash #944
  • False postives and NullReferenceException when using eventhandler in code behind for UWP apps. #916
  • Replace getter only properties with backing readonly field with getter-only auto-property #881

v1.0.3 (2017-03-20)

Full Changelog

Fixed bugs:

  • BUG: CC0022 DisposableVariableNotDisposedAnalyzer: False positive for expression bodied members #880
  • BUG: CC0022 DisposableVariableNotDisposedAnalyzer: False positive in iterator methods #877

v1.0.2 (2017-03-12)

Full Changelog

Implemented enhancements:

  • VS 2017RC Support #856

Fixed bugs:

  • CC0057 UnusedParametersAnalyzer should not be triggered on virtual methods #872
  • BUG: CC0060 - detected for nested struct in abstract class #867
  • Bug on CC0120 for the fix when there is a conversion #859
  • BUG: CC0052 (Make readonly) sometimes detects complex value types #854
  • BUG: CC0052 (Make readonly) does not work with lambda expressions and initialized variables #853
  • "Disposable Field Not Disposed" rule does not recognize null propagation #848
  • CC0082: ComputeExpressionCodeFixProvider crashs #841
  • CC0030: Bad grammar in message #838
  • CC0008: Don't suggest for dynamic objects #837
  • Bug: Should not use Async methods in analyzers (CC0029) #821
  • BUG: CC0014 converts if y then x += 1 else x =1 to x +=(if(y, 1, 1) #798

v1.0.1 (2016-09-06)

Full Changelog

Implemented enhancements:

  • developmentDependency not added when used with SonarLint #829
  • Auto generated files detection #773

Fixed bugs:

  • Bug: "UseStaticRegexIsMatchAnalyzer" causes an exception (CC0081) #822
  • CC0006 could break code when changing to foreach #814
  • BUG: Make readonly (CC0052) is incorrectly raised if constructor shows up after member that uses the field #812
  • Bug: ArgumentNullException on CallExtensionMethodAsExtensionAnalyzer (CC0026) #810
  • BUG: GC.SuppressFinalize with arrow methods (CC0029) #809
  • Bug: CC0039 False positive when concatenating to loop variable propery/field (StringBuilderInLoop) #797
  • Bug: CC0033 appears again after adding 'this' keyword #795
  • CC0061: Implementing interface using async pattern #793
  • CC0052 Make field readonly does not take ref out into consideration. #788
  • BUG: CallExtensionMethodAsExtensionAnalyzer threw exception when project language was C# 5.0 #781
  • Bug: UseInvokeMethodToFireEventAnalyzer (CC0031) should not raise a diagnostic when already checked for null with a ternary #779
  • BUG: GC.SuppressFinalize within any block (CC0029) #776
  • BUG: CC0052 (Make readonly) should not be applied to complex value types #775
  • BUG: CC0030 should not try to make a pointer const #774

Closed issues:

  • Verify impact of upgrading to Roslyn 1.1 #770

v1.0.0 (2016-04-03)

Full Changelog

Implemented enhancements:

  • CC0016 and CC0031 are doing similar work #662
  • Update XmlDocumentation to raise 2 different diagnostic ids #488

Fixed bugs:

  • BUG: using null propagation foils the analysis for dispose object (CC0022) #761
  • CC0011 incorrect when Where predicate uses index parameter #752
  • BUG: Change to ternary fails with primitive numeric types (CC0013 and CC0014) #748
  • CC0014 Use ternary tries to DirectCast integer to double #745
  • BUG: CC0068 'Method is not used' should not apply to methods that have the ContractInvariantMethod attribute #744
  • BUG: CC0057 UnusedParametersAnalyzer should not be triggered with verbatim identifier (prefixed with @) #741
  • Code fix for CC0075 could break the logic of the code #740
  • BUG: CC0016 "CopyEventToVariableBeforeFireCodeFixProvider" crashes #735
  • CC0057 UnusedParametersAnalyzer should not be triggered by DllImport #733
  • BUG: CC0013 (Make Ternary) doesn't handle comments correctly #725
  • BUG: CC0014: You can use a ternary operator turns a+=b into a=a+b #724
  • Bug in introduce field from constructor #721
  • BUG: CC0090 (xmldoc) is raised on generated files #720
  • BUG: CC0008 code fix removes too many lines when constructor already has initializer #717
  • BUG: CC0067 must not fire when parameter Func<T> is called in constructor. #712
  • BUG: CC0033 (DisposableFieldNotDisposed) Should ignore static field #710
  • CC0017 virtual props can create infinite loops #702
  • CC0057: extern method parameter unused #701
  • BUG: CC0052 (readonly) flags field that is used in variable initializer, which then gives compile error #700
  • BUG: CC0017 (create auto property) removing modifiers (static, virtual, etc) #699
  • BUG: CC0006 (foreach) edge case for non-writable struct field #698
  • BUG: CC00091 Method GetEnumerator should never be made static #696
  • Bug: CC0048 nested interpolations doesn't fix in one iteration #690
  • BUG: CC0091 WPF event cannot be static #639
  • DisposableVariableNotDisposedAnalyzer (CC0022) should not raise a diagnostic when returning a type that contains the disposable #465

v1.0.0-rc6 (2016-02-01)

Full Changelog

Implemented enhancements:

  • CC0031 must not fire when Null-check is outside of a try block #672
  • Add exceptions to CC0068 depending on the method attribute #526

Fixed bugs:

  • BUG: CC0048 (string interpolation) when string is split into multiple lines #689
  • CC0017 wrong change with explicitly implemented properties, but can be fixed #687
  • CC0006 should be checking if for-looped array is enumerable by foreach #684
  • BUG: CC0006 wrongly tries to convert for into foreach when there would be an assignment to the iteration variable #683
  • CC0091 MakeMethodStaticCodeFixProvider crashing #682
  • CC0091 wrongly tries to make static methods in structs #681
  • BUG: CC0091 (make static) changes references incorrectly when used as a method group and in conjunction with another method invocation #680
  • CC0091 on method Foo does not replace occurences like this.Foo used in delegates #677
  • ObjectInitializerCodeFixProvider crashes #676
  • Bug CC0084 should not generate string empty in parameter list in constructor or method #669
  • CC0022 when theer is ternary operator in using #665
  • CC0031 should not copy the variable with readonly members #663
  • BUG on CC0047 (PropertyPrivateSet) suggests to make a property set private when the property is already private #658
  • With more than one constructor, IntroduceFieldFromConstructorCodeFixProvider can replace wrong constructor #650
  • BUG on CC0057 (unused parameter) with named parameters #649
  • CC0057: Should not try to remove parameters meant to fulfill a delegate contract #646
  • CC0016 should not copy the variable with readonly members #645
  • BUG on CC0091 (MakeMethodStatic) when a reference to method is used as a method group #644
  • BUG on CC0043 and CC0092 (ChangeAnyToAll) when invocation is negated #642
  • BUG on CC0043 and CC0092 (ChangeAnyToAll) when invocation is in an expression bodied member #641
  • AD0001 Crash #638
  • BUG on CC0022 (disposable not disposed) fix when there is method chaining #630
  • New word 'Foramt' in NameOfSymbolDisplayForamt #627
  • CC0003 is shown even for catches which end with throw #626
  • CC0001 is shown for variables with type dynamic and object #625
  • CC0090 when using /// <inheritdoc/> #624
  • Bug: CC0017 not raised when using this #623
  • CC0052 false positives #621
  • Bug on CC0029 (Call GC.SuppressFinalize on dispose) with expression based methods #618
  • Removing Option Parameter causes crash #617
  • BUG on CC0043 and CC0092 (ChangeAnyToAll) when invocation has elvis operator #613
  • When the dispose pattern is used do not raise CC0033 #603
  • Suggested Nameof fix incorrectly suggests wrong type #594

v1.0.0-rc5 (2015-12-03)

Full Changelog

Implemented enhancements:

  • CC0091 Know APIs #451
  • Change CC0001 so that it does not apply to primitives #407
  • Update all existing code fixes that are doing too much work on RegisterCodeFixesAsync (VB) #348

Fixed bugs:

  • BUG: UseInvokeMethodToFireEventAnalyzer throwing when method body is null #611
  • BUG: ReadonlyFieldAnalyzer is crashing Visual Studio 2015 Update 1 because of reporting diagnostic at unexpected locations #610
  • NoPrivateReadonlyFieldAnalyzer (0074) is missing the Generated file check #609
  • BUG on CC0049 #597
  • BUG: DisposablesShouldCallSuppressFinalize should use full name when System is not imported #590
  • Remove empty Catch Block too aggressive #587
  • BUG: CC0056 (StringFormatAnalyzer) raised incorrectly #585
  • BUG on CC0022 (disposable not disposed) when a comment is present #577
  • BUG on CC0057 (unused parameter) with extension methods #576
  • IP Parsing fails for variables #571
  • CC0057 mistaken 'Parameter is not used' warning #562
  • Code fix error in CC0013 TernaryOperatorAnalyzer (return) #552
  • Code fix in CC0014 TernaryOperatorAnalyzer remove comments #551
  • Code fix error in CC0014 TernaryOperatorAnalyzer (assignment) #550
  • Bug with CC0009 when using the created object in the initialization #525
  • CC0013 Should check for a common type and cast is necessary. #521

v1.0.0-rc4 (2015-11-02)

Full Changelog

Implemented enhancements:

  • NameOf Analyzer is too noisy #518

Fixed bugs:

  • SwitchToAutoPropCodeFixProvider (CC0017) does not keep XML comment trivia #548
  • CallExtensionMethodAsExtension (CC0026) throws NullReferenceException on expression bodied method statement #547
  • CC0022 DI container delegate causes error #545
  • BUG on ReadonlyFieldAnalyzer (CC0052) with assignment in Func<T> in constructor #544
  • UnusedParametersCodeFixProvider crashing when removing params #539
  • CC0001 Is raised on multiple variable declarations. #537
  • Bug: Use ?.Invoke operator and method to fire 'configuration' event, though configuration can't be null #536
  • UnusedParametersCodeFixProvider fix all not working (CC0057) #534
  • UnusedParametersCodeFixProvider will crash when it is trying to remove ParamArray #533
  • CC0017 Change to auto property fix all not working #514
  • BUG on CC0008 and CC0009 (ObjectInitializer) when used with collection #501
  • 'TernaryOperatorWithAddignmentCodeFixProvider' encountered and error #496
  • CC0009 eats pragmas and trivia #493
  • CC0013 (user ternary) rule should be more careful with nullable types. (VB) #468

v1.0.0-rc3 (2015-10-03)

Full Changelog

Implemented enhancements:

  • CC0013 Should be Information instead of Warning #520

Fixed bugs:

  • CC0017 Change to auto property codefix removes multiple variable declaration. #512
  • CC0017 Change to auto property ignores field assignment. #500
  • CC047 eats property trivia #492
  • CC0091 makes static keyword come before trivia #486
  • Useles suggestion of CC0039 rule #485
  • CC0013 (user ternary) rule should be more careful with nullable types (C#) #480
  • CC0091 (make method static) Reported Incorrectly for explicitly implemented interface #479
  • CC0068 (method not used) Reported Incorrectly for explicitly implemented interface #478
  • Add additional checks for determining if generated code #476
  • CC0013 & CC0014 for VB is reported in generated code #472
  • CC0068 Reported Incorrectly for VB Event Handlers #469
  • Bug on DisposableVariableNotDisposedAnalyzer (CC0022) when returning a disposable #466
  • Bug on analyzer CC0031 (UseInvokeMethodToFireEvent) on parameterized functor #397
  • BUG: Create code fix for update ReadonlyFieldCodeFixProvider so that the code does not break on public fields #293

v1.0.0-rc2 (2015-08-19)

Full Changelog

Implemented enhancements:

  • Update VB Allow Members Ordering to work with Modules #440
  • Provide an equivalence key on all code fix providers #417
  • Unit test methods raises CC0091 - "Make <xxxx> method static" #404
  • Validate color from System.Drawing.ColorTranslator.FromHtml #1

Fixed bugs:

  • Erroneous CC0039 message #461
  • CC0029 DisposablesShouldCallSuppressFinalizeAnalyzer throws InvalidCastException #452
  • Doc comments for parameters in wrong order (XmlDocumentationCreateMissingParametersCodeFixProvider) #437
  • CC0022 disposable intantiation on constructor call #432
  • CC0017 Change to auto property has Incorrect description #429
  • BUG in CC0061 when the method is a override from a base class #424
  • CC0021: nameof(x) suggested before x is declared (VB) #420
  • Bug: RemoveUnusedVariablesCodeFixProvider is throwing on CatchDeclarations #419
  • CC064 invalid error #418
  • BUG: XmlDocumentationCreateMissingParametersCodeFixProvider throws when there are only remarks #412
  • Bug: DisposableVariableNotDisposedCodeFixProvider throws when object creation is being passed as an argument (CC0022) #409
  • CC0021: nameof(x) suggested before x is declared #408

v1.0.0-rc1 (2015-07-23)

Full Changelog

Implemented enhancements:

  • Verify if xml docs have the correct parameters #357

Fixed bugs:

  • BUG: CopyEventToVariableBeforeFireCodeFixProvider throwing #411
  • Incorrect spacing in string interpolation (CC0048) #410

v1.0.0-beta1 (2015-07-04)

Full Changelog

Implemented enhancements:

  • Make method non async (fix for CS1998) #393
  • Using the refactoring for CC0008 will result in a warning CC0015 #383
  • Add string interpolation to Console.WriteLine #380
  • Make method static if possible #364
  • Update all existing code fixes that are doing too much work on RegisterCodeFixesAsync (C#) #347
  • Make accessibility consistent (code fix for CS0051) #321
  • Expand CC0006 (change for into a foreach) #318
  • Convert a "Not Any" query for a condition to a "All" query for the inverted condition #31

Fixed bugs:

  • Ignore Disposables created on return statements #399
  • Null Reference Exception on CodeCracker.CSharp.Usage.VirtualMethodOnConstructorAnalyzer #398
  • Bug on ObjectInitializerCodeFixProvider when constructor already has initialization #396
  • Async method can't be used with RegisterXXXXAction. #375
  • Bug on CC0068 (RemovePrivateMethodNeverUsed) with Main #368
  • Bug in CC0008 when used together with null coalescing operator ?? #366
  • Bug: nameof analyzer (CC0021) being raised on self referencing initialization statement #359

v1.0.0-alpha6 (2015-06-01)

Full Changelog

Implemented enhancements:

  • Remove redundant else #355
  • Use "" instead of String.Empty #354
  • Port changes from CC0021 (nameof) to VB #341
  • Incorrect string.Format usage #335
  • Expand NameOf Analyzer to work with any identifier in scope #263
  • Test NameOfCodeFixProvider with keyword #198
  • Use String.Empty instead "" #120
  • Use auto property when possible #12
  • Supress assignment of default value to field/property declarations #9

Fixed bugs:

  • Bug on CallExtensionMethodAsExtensionAnalyzer (CC0026) throwing InvalidOperationException #345
  • Bug on CC0068 (RemovePrivateMethodNeverUsed) with generic methods #343
  • BUG: CC0056 Incorrectly classifying format strings #333
  • CC0056 Incorrectly classifying format strings. #330

v1.0.0-alpha5 (2015-04-26)

Full Changelog

Implemented enhancements:

  • Create infrastructure for testing multi culture values #313
  • View lines covered by tests in coverwalls #304
  • Regex performance: use static Regex.IsMatch #297
  • Don't run CodeCracker on generated code #260
  • Virtual method call in constructor #203
  • Merge nested if statements #131
  • Split 'if' with '&&' condition into nested 'if'-statements #130
  • Convert numeric literal from decimal to hex and hex to decimal #119
  • Compute value of an expression and replaces it whenever it's possible #117
  • Check arguments in String.Format #116
  • ArgumentExceptionAnalyzer ignores several code constructs #112
  • Remove unused variables #23

Fixed bugs:

  • Bug in CC0008 analyser for variable access. #324
  • Bug: CC0022 being raised on using when not assigned #319
  • Visual studio crash on initializer refactoring (CC0009) #315
  • NameOf produces wrong results/ #309
  • Bug on Unused parameter (CC0057) not checking for assignment #291
  • BUG: Method not used (CC0068) fails to check partial classes #290
  • Bug on CC0026 (use extension method) where selected overload would change #262
  • Null Reference BUG on ConvertToExpressionBodiedMemberAnalyzer (CC0038) #192
  • CC0029 should not be reported for some types with private constructors #110
  • CC0029 should not be reported for some sealed types #109
  • CC0029 should not be reported for structs #108
  • CC0029 should not be reported for Dispose(bool) #107
  • Fix analysis for CC0029 (DisposablesShouldCallSuppressFinalizeAnalyzer) #95

v1.0.0-alpha4 (2015-03-04)

Full Changelog

Implemented enhancements:

  • Update to Roslyn RC1 and VS 2015 CTP 6 #288
  • Review AllowMembersOrderingCodeFixProvider.Base to avoid running analyzis on ComputeFixesAsync method #273
  • Add braces to switch case #252
  • Unify DiagnosticId class on a separate assembly #248
  • If method does not return a Task it shouldn't end with "Async" #245
  • Use enum for diagnostic ids (VB) #244
  • Introduce field from constructor #241
  • Remove private method is never used in a class #204
  • Detect read-only not private fields and fix adding the "readonly" modifier #177
  • Convert Lambda to Method Group whenever it's possible #49
  • Review Rules ID and Descriptions #41
  • Remove unreachable code #21

Fixed bugs:

  • RemovePrivateMethodNeverUsedAnalyzer (CC0068) throwing cast exception #276
  • Bug on CC0071 (introduce field) for fix all #267
  • BUG on CC0071 (introduce field), name clash #266
  • BUG on CC0021 (NameOf) when using attribute #258
  • CC0031 Formatting bug on comments #257
  • Bug on CC0065, entire summary removed. #256
  • CC0022 Batch Fixer does not work in edge cases #253
  • BUG on CC0057 (UnusedParameter) on constructor that passes argument to base #251
  • Bug in string interpolation (CC0048) when Insert uses a ternary operator #249

v1.0.0-alpha3 (2015-02-01)

Full Changelog

Implemented enhancements:

  • Use ConfigureAwait(false) on awaited task #235
  • CTP5 nuget "The assembly <...> does not contain any analyzers" #229
  • Use enum for diagnostic ids #228
  • Change verbatim string.format to use string interpolation #220
  • Update CC to use VS 2015 CTP 5 #219
  • Build with PSake and kill (almost) all scripts #215
  • Remove trailling whitespace #201
  • Validate IPAddress.Parse from System.Net #188
  • Validade Uri from System.Uri #182
  • Interfaces should start with an "I" #179
  • If method returns a Task it should have the postfix "Async" #178
  • Offer a fix for ordering members inside classes and structs following StyleCop patterns #172
  • Abstract class ctors should not have public constructors #164
  • Update string interpolation to use new version #146
  • Allow formating on string interpolation substitutions of string.format #145
  • Run Analysis on a large OSS project and make sure it does not throw #100
  • Add code coverage metrics #99
  • Update all analyzers to use the supported categories #97
  • Detect read-only private fields and fix adding the "readonly" modifier #86
  • Offer diagnostic to allow for ordering members inside classes and structs #76
  • Excess parameters in methods #44
  • Suggest use of stringbuilder when you have a while loop #34
  • Private set by default for automatic properties #32
  • Class that has IDisposable fields should implement IDisposable and dispose those fields #30
  • IDisposable not assigned to a field is not being disposed #28
  • Remove unused parameters #24
  • Validate Json when used with Json.NET #2

Fixed bugs:

  • BUG on string interpolation when indexes are inverted #246
  • BUG on CC0049, simplify boolean comparison, not simmetric #238
  • False positive on CC0049 ("You can remove this comparison") #236
  • BUG on CC0032/3: DisposableFieldNotDisposedAnalyzer throwing when Dispose is abstract #227
  • BUG on CC0012: RethrowExceptionAnalyzer throwing "Sequence contains no elements" #226
  • BUG on CC0026: When there is a dynamic don't raise a diagnostic #225
  • CC0029 should be reported for explicit IDisposable.Dispose implementation #222
  • BUG on PrivateSetAnalyzer when there are no accessors #217
  • BUG on UriAnalyzer when analyzing an expression #209
  • BUG on ReadonlyFieldAnalyzer (CC0052) when analyzing partial classes #194
  • Null Reference BUG on ForInArrayAnalyzer (CC0006) #193
  • InvalidCastException in CC0016 and CC0031 #175
  • Bug: CC0030 changes nullable type to const #167
  • BUG: CC0009 (from ObjectInitializerAnalyzer) not being generated #165
  • BUG on CC0047 (private set) should not report diagnostic when the property is being referenced outside the class #159

v1.0.0-alpha2 (2014-12-15)

Full Changelog

Implemented enhancements:

  • Change verbatim string from refactoring to Hidden diagnostic + code fix #161
  • Modify CC0037 to make set accessor private when that have code #150
  • Change from string.Format to string interpolation #133
  • Simplify redundant Boolean comparisons #124
  • Convert method body to expression bodied member when applicable #101
  • Remove commented code #98
  • Invert loop for 0..n and n..0 #87
  • Make a variable const whenever it's possible #79
  • Check null on event to avoid race condition when invoking it #61
  • Struct vs. Keyword #59
  • Detect direct event invocation #55
  • Create a build server and build every push and pull request #53
  • Suggest nameof when encounter a string with the same name of a parameter #40
  • Suggest switch if you have 3 or more nested if / else statements #39
  • Call extension method as an extension #27
  • Empty Catch block not allowed #15
  • Remove empty object initializers #14
  • Use existence ?. operator when possible in expressions #13
  • Remove unnecessary parenthesis from class initialization #11
  • Use class initializer where it makes sense #10
  • Replace if check followed by return true or false #8
  • On Linq clauses move predicate from Where to First, Single, etc when applicable #6
  • Always use var #4

Fixed bugs:

  • BUG when using "use string interpolation" code fix with string that contains line breaks #162
  • Bug when running codefix for CC0031 (UseInvokeMethodToFireEvent) on statement without block #160
  • Bug: Private set on props being suggested when there are inheritted members referencing #153
  • Bug when running codefix for CC0031 (UseInvokeMethodToFireEvent) on parameters #152
  • BUG when make const sees an string interpolation (CC0030) #140
  • NullReferenceException in ArgumentExceptionAnalyzer #111
  • When changing ifs to switch comments are lost #74
  • TernaryOperatorAnalyzer throwing NullReferenceException #70
  • Regex Analyzer/CodeFix tests ignores local culture #69

v1.0.0-alpha1 (2014-11-12)

Implemented enhancements:

  • Change if to ternary operator #7
  • Transform for into a foreach #3

* This Change Log was automatically generated by github_changelog_generator