v1.1.0 (2018-05-20)
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)
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)
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)
Implemented enhancements:
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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:
* This Change Log was automatically generated by github_changelog_generator