diff --git a/ChangeLog.md b/ChangeLog.md
index 7afddddfaa..ddd2e64c34 100644
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,10 @@
+### 2.0.1 (2018-11-26)
+
+#### Analyzers
+
+* Add analyzer [UnnecessaryUsageOfEnumerator](http://github.com/JosefPihrt/Roslynator/blob/master/docs/analyzers/RCS1230.md) (RCS1230)
+* Add analyzer [MakeParameterRefReadOnly](http://github.com/JosefPihrt/Roslynator/blob/master/docs/analyzers/RCS1231.md) (RCS1231)
+
### 2.0.0 (2018-10-14)
#### New Features
diff --git a/docs/analyzers/RCS1230.md b/docs/analyzers/RCS1230.md
new file mode 100644
index 0000000000..a75f57715f
--- /dev/null
+++ b/docs/analyzers/RCS1230.md
@@ -0,0 +1,37 @@
+# RCS1230: Unnecessary usage of enumerator
+
+| Property | Value |
+| -------- | ----------- |
+| Id | RCS1230 |
+| Category | Readability |
+| Severity | Info |
+
+## Example
+
+### Code with Diagnostic
+
+```csharp
+using (var en = items.GetEnumerator()) // RCS1230
+{
+ while (en.MoveNext())
+ {
+ yield return en.Current;
+ }
+}
+```
+
+### Code with Fix
+
+```csharp
+foreach (var item in items)
+{
+ yield return en.Current;
+}
+```
+
+## See Also
+
+* [How to Suppress a Diagnostic](../HowToConfigureAnalyzers.md#how-to-suppress-a-diagnostic)
+
+
+*\(Generated with [DotMarkdown](http://github.com/JosefPihrt/DotMarkdown)\)*
\ No newline at end of file
diff --git a/docs/analyzers/RCS1231.md b/docs/analyzers/RCS1231.md
new file mode 100644
index 0000000000..6bdcb32a62
--- /dev/null
+++ b/docs/analyzers/RCS1231.md
@@ -0,0 +1,38 @@
+# RCS1231: Make parameter ref read\-only
+
+| Property | Value |
+| -------- | ----------- |
+| Id | RCS1231 |
+| Category | Performance |
+| Severity | Info |
+
+## Example
+
+### Code with Diagnostic
+
+```csharp
+readonly struct C
+{
+ void M(C c) // RCS1231
+ {
+ }
+}
+```
+
+### Code with Fix
+
+```csharp
+readonly struct C
+{
+ void M(in C c)
+ {
+ }
+}
+```
+
+## See Also
+
+* [How to Suppress a Diagnostic](../HowToConfigureAnalyzers.md#how-to-suppress-a-diagnostic)
+
+
+*\(Generated with [DotMarkdown](http://github.com/JosefPihrt/DotMarkdown)\)*
\ No newline at end of file
diff --git a/src/Analyzers.CodeFixes/Analyzers.CodeFixes.csproj b/src/Analyzers.CodeFixes/Analyzers.CodeFixes.csproj
index b3af301d03..d29f2f8921 100644
--- a/src/Analyzers.CodeFixes/Analyzers.CodeFixes.csproj
+++ b/src/Analyzers.CodeFixes/Analyzers.CodeFixes.csproj
@@ -5,7 +5,7 @@
- 2.0.0.1
+ 2.0.1.0
Roslynator.CSharp.Analyzers.CodeFixes
Roslynator.CSharp
..\global.ruleset
diff --git a/src/Analyzers/Analyzers.csproj b/src/Analyzers/Analyzers.csproj
index 78d36b42da..90545f9105 100644
--- a/src/Analyzers/Analyzers.csproj
+++ b/src/Analyzers/Analyzers.csproj
@@ -5,7 +5,7 @@
- 2.0.0.1
+ 2.0.1.0
Roslynator.CSharp.Analyzers
Roslynator.CSharp
..\global.ruleset
diff --git a/src/Analyzers/AnalyzersByCategory.md b/src/Analyzers/AnalyzersByCategory.md
index c4537295b1..ebfbc82aff 100644
--- a/src/Analyzers/AnalyzersByCategory.md
+++ b/src/Analyzers/AnalyzersByCategory.md
@@ -59,6 +59,7 @@
| Naming | [Rename private field according to camel case with underscore](../../docs/analyzers/RCS1045.md) | RCS1045 | None |
| Performance | [Avoid unnecessary boxing of value type](../../docs/analyzers/RCS1198.md) | RCS1198 | None |
| Performance | [Call 'Enumerable.Skip' and 'Enumerable.Any' instead of 'Enumerable.Count'](../../docs/analyzers/RCS1219.md) | RCS1219 | None |
+| Performance | [Make parameter ref read-only](../../docs/analyzers/RCS1231.md) | RCS1231 | Info |
| Performance | [Optimize LINQ method call](../../docs/analyzers/RCS1077.md) | RCS1077 | Info |
| Performance | [Optimize StringBuilder.Append/AppendLine call](../../docs/analyzers/RCS1197.md) | RCS1197 | Info |
| Performance | [Use bitwise operation instead of calling 'HasFlag'](../../docs/analyzers/RCS1096.md) | RCS1096 | Info |
@@ -84,6 +85,7 @@
| Readability | [Simplify code branching](../../docs/analyzers/RCS1218.md) | RCS1218 | Info |
| Readability | [Sort enum members](../../docs/analyzers/RCS1154.md) | RCS1154 | Info |
| Readability | [Split variable declaration](../../docs/analyzers/RCS1081.md) | RCS1081 | None |
+| Readability | [Unnecessary usage of enumerator](../../docs/analyzers/RCS1230.md) | RCS1230 | Info |
| Readability | [Unused element in documentation comment](../../docs/analyzers/RCS1228.md) | RCS1228 | Hidden |
| Readability | [Use explicit type instead of 'var' (foreach variable)](../../docs/analyzers/RCS1009.md) | RCS1009 | None |
| Readability | [Use explicit type instead of 'var' (when the type is not obvious)](../../docs/analyzers/RCS1008.md) | RCS1008 | None |
diff --git a/src/Analyzers/README.md b/src/Analyzers/README.md
index 0772cdb639..ea737361f9 100644
--- a/src/Analyzers/README.md
+++ b/src/Analyzers/README.md
@@ -208,6 +208,8 @@
| RCS1227 | [Validate arguments correctly](../../docs/analyzers/RCS1227.md) | Design | Info |
| RCS1228 | [Unused element in documentation comment](../../docs/analyzers/RCS1228.md) | Readability | Hidden |
| RCS1229 | [Use async/await when necessary](../../docs/analyzers/RCS1229.md) | Usage | Info |
+| RCS1230 | [Unnecessary usage of enumerator](../../docs/analyzers/RCS1230.md) | Readability | Info |
+| RCS1231 | [Make parameter ref read-only](../../docs/analyzers/RCS1231.md) | Performance | Info |
*\(Generated with [DotMarkdown](http://github.com/JosefPihrt/DotMarkdown)\)*
\ No newline at end of file
diff --git a/src/CSharp.Workspaces/CSharp.Workspaces.csproj b/src/CSharp.Workspaces/CSharp.Workspaces.csproj
index 2ce18d8b6e..2d0080bb50 100644
--- a/src/CSharp.Workspaces/CSharp.Workspaces.csproj
+++ b/src/CSharp.Workspaces/CSharp.Workspaces.csproj
@@ -5,7 +5,7 @@
- 1.0.0.8
+ 1.0.0.9
Roslynator.CSharp.Workspaces
Roslynator
..\global.ruleset
@@ -20,7 +20,7 @@
Roslynator.CSharp.Workspaces
- 1.0.0-rc4
+ 1.0.0-rc5
Josef Pihrt
This library extends functionality of package Microsoft.CodeAnalysis.CSharp.Workspaces
@@ -32,12 +32,12 @@ Roslynator.CSharp.SyntaxInfo
Roslynator.NameGenerator
Copyright (c) 2017-2018 Josef Pihrt
false
- http://github.com/JosefPihrt/Roslynator/blob/master/LICENSE.txt
- http://github.com/JosefPihrt/Roslynator
+ https://github.com/JosefPihrt/Roslynator/blob/master/LICENSE.txt
+ https://github.com/JosefPihrt/Roslynator
http://pihrt.net/images/Roslynator.ico
Roslyn;Analyzer;Refactoring;Productivity;CodeAnalysis;C#;CSharp
- http://github.com/JosefPihrt/Roslynator.git
+ https://github.com/JosefPihrt/Roslynator.git
git
diff --git a/src/CSharp/CSharp.csproj b/src/CSharp/CSharp.csproj
index 244d961da9..4e402865a6 100644
--- a/src/CSharp/CSharp.csproj
+++ b/src/CSharp/CSharp.csproj
@@ -5,7 +5,7 @@
- 1.0.0.8
+ 1.0.0.9
Roslynator.CSharp
Roslynator
..\global.ruleset
@@ -20,7 +20,7 @@
Roslynator.CSharp
- 1.0.0-rc4
+ 1.0.0-rc5
Josef Pihrt
This library extends functionality of package Microsoft.CodeAnalysis.CSharp
@@ -32,12 +32,12 @@ Roslynator.CSharp.SyntaxInfo
Roslynator.NameGenerator
Copyright (c) 2017-2018 Josef Pihrt
false
- http://github.com/JosefPihrt/Roslynator/blob/master/LICENSE.txt
- http://github.com/JosefPihrt/Roslynator
+ https://github.com/JosefPihrt/Roslynator/blob/master/LICENSE.txt
+ https://github.com/JosefPihrt/Roslynator
http://pihrt.net/images/Roslynator.ico
Roslyn;Analyzer;Refactoring;Productivity;CodeAnalysis;C#;CSharp
- http://github.com/JosefPihrt/Roslynator.git
+ https://github.com/JosefPihrt/Roslynator.git
git
diff --git a/src/CodeFixes/CodeFixes.csproj b/src/CodeFixes/CodeFixes.csproj
index 7aefd79d38..d39fe6ce7b 100644
--- a/src/CodeFixes/CodeFixes.csproj
+++ b/src/CodeFixes/CodeFixes.csproj
@@ -5,7 +5,7 @@
- 2.0.0.1
+ 2.0.1.0
Roslynator.CSharp.CodeFixes
Roslynator.CSharp.CodeFixes
..\global.ruleset
diff --git a/src/Common.Workspaces/Common.Workspaces.csproj b/src/Common.Workspaces/Common.Workspaces.csproj
index 0e28f8783c..3179f7f542 100644
--- a/src/Common.Workspaces/Common.Workspaces.csproj
+++ b/src/Common.Workspaces/Common.Workspaces.csproj
@@ -5,7 +5,7 @@
- 2.0.0.1
+ 2.0.1.0
Roslynator.Common.Workspaces
Roslynator
..\global.ruleset
diff --git a/src/Common/Common.csproj b/src/Common/Common.csproj
index 401d67de80..4f71cd7a8c 100644
--- a/src/Common/Common.csproj
+++ b/src/Common/Common.csproj
@@ -5,7 +5,7 @@
- 2.0.0.1
+ 2.0.1.0
Roslynator.Common
Roslynator
..\global.ruleset
diff --git a/src/Core/Core.csproj b/src/Core/Core.csproj
index c31d625fbb..9d5991f0d0 100644
--- a/src/Core/Core.csproj
+++ b/src/Core/Core.csproj
@@ -5,7 +5,7 @@
- 1.0.0.8
+ 1.0.0.9
Roslynator.Core
Roslynator
..\global.ruleset
@@ -20,18 +20,18 @@
Roslynator.Core
- 1.0.0-rc4
+ 1.0.0-rc5
Josef Pihrt
This library extends functionality of package Microsoft.CodeAnalysis.Common.
Copyright (c) 2017-2018 Josef Pihrt
false
- http://github.com/JosefPihrt/Roslynator/blob/master/LICENSE.txt
- http://github.com/JosefPihrt/Roslynator
+ https://github.com/JosefPihrt/Roslynator/blob/master/LICENSE.txt
+ https://github.com/JosefPihrt/Roslynator
http://pihrt.net/images/Roslynator.ico
Roslyn;CodeAnalysis
- http://github.com/JosefPihrt/Roslynator.git
+ https://github.com/JosefPihrt/Roslynator.git
git
diff --git a/src/DefaultRuleSet.ruleset b/src/DefaultRuleSet.ruleset
index cab78b014b..02486c5145 100644
--- a/src/DefaultRuleSet.ruleset
+++ b/src/DefaultRuleSet.ruleset
@@ -229,5 +229,7 @@
+
+
\ No newline at end of file
diff --git a/src/Refactorings/Refactorings.csproj b/src/Refactorings/Refactorings.csproj
index 9a45b9aa0b..1c3412a600 100644
--- a/src/Refactorings/Refactorings.csproj
+++ b/src/Refactorings/Refactorings.csproj
@@ -5,7 +5,7 @@
- 2.0.0.1
+ 2.0.1.0
Roslynator.CSharp.Refactorings
Roslynator.CSharp.Refactorings
..\global.ruleset
diff --git a/src/VisualBasic/VisualBasic.csproj b/src/VisualBasic/VisualBasic.csproj
index b4a8c35079..7c592f231b 100644
--- a/src/VisualBasic/VisualBasic.csproj
+++ b/src/VisualBasic/VisualBasic.csproj
@@ -5,7 +5,7 @@
- 1.0.0.8
+ 1.0.0.9
Roslynator.VisualBasic
Roslynator
..\global.ruleset
@@ -14,25 +14,12 @@
7.2
-
- bin\Release\netstandard1.3\Roslynator.VisualBasic.xml
-
-
- Roslynator.VisualBasic
- 1.0.0-rc4
+ false
Josef Pihrt
- This library extends functionality of Microsoft.CodeAnalysis.VisualBasic
+ This library extends functionality of package Microsoft.CodeAnalysis.VisualBasic
Copyright (c) 2017-2018 Josef Pihrt
- false
- http://github.com/JosefPihrt/Roslynator/blob/master/LICENSE.txt
- http://github.com/JosefPihrt/Roslynator
- http://pihrt.net/images/Roslynator.ico
-
- Roslyn;Analyzer;Refactoring;Productivity;CodeAnalysis;VB;VisualBasic
- http://github.com/JosefPihrt/Roslynator.git
- git
diff --git a/src/VisualStudio.Common/Properties/AssemblyInfo.cs b/src/VisualStudio.Common/Properties/AssemblyInfo.cs
index 6f7b691216..78bd845296 100644
--- a/src/VisualStudio.Common/Properties/AssemblyInfo.cs
+++ b/src/VisualStudio.Common/Properties/AssemblyInfo.cs
@@ -34,5 +34,5 @@
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
-[assembly: AssemblyVersion("2.0.0.0")]
+[assembly: AssemblyVersion("2.0.1.0")]
//[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/src/VisualStudio.Refactorings/Properties/AssemblyInfo.cs b/src/VisualStudio.Refactorings/Properties/AssemblyInfo.cs
index e84e762c1c..24635018cd 100644
--- a/src/VisualStudio.Refactorings/Properties/AssemblyInfo.cs
+++ b/src/VisualStudio.Refactorings/Properties/AssemblyInfo.cs
@@ -31,6 +31,6 @@
// Build Number
// Revision
//
-[assembly: AssemblyVersion("2.0.0.0")]
+[assembly: AssemblyVersion("2.0.1.0")]
//[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: NeutralResourcesLanguage("en-US")]
diff --git a/src/VisualStudio.Refactorings/source.extension.vsixmanifest b/src/VisualStudio.Refactorings/source.extension.vsixmanifest
index d5a71796cc..f01f9e7803 100644
--- a/src/VisualStudio.Refactorings/source.extension.vsixmanifest
+++ b/src/VisualStudio.Refactorings/source.extension.vsixmanifest
@@ -1,7 +1,7 @@
-
+
Roslynator Refactorings 2017
A collection of 300+ refactorings and fixes for C#, powered by Roslyn.
http://github.com/JosefPihrt/Roslynator
diff --git a/src/VisualStudio/Properties/AssemblyInfo.cs b/src/VisualStudio/Properties/AssemblyInfo.cs
index 90223ad55b..c71ccb4516 100644
--- a/src/VisualStudio/Properties/AssemblyInfo.cs
+++ b/src/VisualStudio/Properties/AssemblyInfo.cs
@@ -31,6 +31,6 @@
// Build Number
// Revision
//
-[assembly: AssemblyVersion("2.0.0.0")]
+[assembly: AssemblyVersion("2.0.1.0")]
//[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: NeutralResourcesLanguage("en-US")]
diff --git a/src/VisualStudio/source.extension.vsixmanifest b/src/VisualStudio/source.extension.vsixmanifest
index 1691a58e30..ceb6979fd9 100644
--- a/src/VisualStudio/source.extension.vsixmanifest
+++ b/src/VisualStudio/source.extension.vsixmanifest
@@ -1,7 +1,7 @@
-
+
Roslynator 2017
A collection of 500+ analyzers, refactorings and fixes for C#, powered by Roslyn.
http://github.com/JosefPihrt/Roslynator
diff --git a/src/Workspaces.Core/Workspaces.Core.csproj b/src/Workspaces.Core/Workspaces.Core.csproj
index 25782f5aad..df7cb7facf 100644
--- a/src/Workspaces.Core/Workspaces.Core.csproj
+++ b/src/Workspaces.Core/Workspaces.Core.csproj
@@ -5,14 +5,21 @@
- 1.0.0.8
+ 1.0.0.9
Roslynator.Workspaces.Core
Roslynator
true
Workspaces.Core.snk
..\global.ruleset
latest
+
+
+
false
+ Josef Pihrt
+
+ This library extends functionality of package Microsoft.CodeAnalysis.Workspaces.Common
+ Copyright (c) 2017-2018 Josef Pihrt
diff --git a/tools/PushPackages.cmd b/tools/PushPackages.cmd
index f853eb1c01..6574de3235 100644
--- a/tools/PushPackages.cmd
+++ b/tools/PushPackages.cmd
@@ -11,7 +11,7 @@ rem dotnet nuget push "%_filePath%" -k %_apiKey% -s %_source%
set _filePath=..\src\CodeFixes\bin\Release\Roslynator.CodeFixes.%_version%.nupkg
rem dotnet nuget push "%_filePath%" -k %_apiKey% -s %_source%
-set _version=1.0.0-rc4
+set _version=1.0.0-rc5
set _filePath=..\src\Core\bin\Release\Roslynator.Core.%_version%.nupkg
rem dotnet nuget push "%_filePath%" -k %_apiKey% -s %_source%
diff --git a/tools/build.cmd b/tools/build.cmd
index 1e66d8e91f..80f47fa7c5 100644
--- a/tools/build.cmd
+++ b/tools/build.cmd
@@ -18,7 +18,7 @@ if errorlevel 1 (
"..\src\Tools\MetadataGenerator\bin\Release\net461\Roslynator.MetadataGenerator.exe" "..\src"
dotnet "..\src\Tools\CodeGenerator\bin\Release\netcoreapp2.0\CodeGenerator.dll" "..\src"
-dotnet "..\src\Tools\VersionUpdater\bin\Release\netcoreapp2.0\VersionUpdater.dll" "2.0.0.1"
+dotnet "..\src\Tools\VersionUpdater\bin\Release\netcoreapp2.0\VersionUpdater.dll" "2.0.1.0"
%_msbuildPath% "..\src\Roslynator.sln" ^
/t:Clean ^