diff --git a/src/Features/CSharp/Portable/AddBraces/CSharpAddBracesDiagnosticAnalyzer.cs b/src/Features/CSharp/Portable/AddBraces/CSharpAddBracesDiagnosticAnalyzer.cs index 36d1d78e8a48ab737cfa4cd70b167762e5ad5608..3eeb236e73e6dd5efa9499ce4e7d042e5f9af6dc 100644 --- a/src/Features/CSharp/Portable/AddBraces/CSharpAddBracesDiagnosticAnalyzer.cs +++ b/src/Features/CSharp/Portable/AddBraces/CSharpAddBracesDiagnosticAnalyzer.cs @@ -40,10 +40,7 @@ internal sealed class CSharpAddBracesDiagnosticAnalyzer : DiagnosticAnalyzer, IB SyntaxKind.LockStatement); public override void Initialize(AnalysisContext context) - { - context.EnableConcurrentExecution(); - context.RegisterSyntaxNodeAction(AnalyzeNode, s_syntaxKindsOfInterest); - } + => context.RegisterSyntaxNodeAction(AnalyzeNode, s_syntaxKindsOfInterest); public DiagnosticAnalyzerCategory GetAnalyzerCategory() => DiagnosticAnalyzerCategory.SemanticSpanAnalysis; diff --git a/src/Features/CSharp/Portable/InlineDeclaration/CSharpInlineDeclarationDiagnosticAnalyzer.cs b/src/Features/CSharp/Portable/InlineDeclaration/CSharpInlineDeclarationDiagnosticAnalyzer.cs index a65fb9a0884abea55d4e32fc35ece54080ca50ba..a0fde4b7baf32f2eb0e56edfad9d513d9caf4f5b 100644 --- a/src/Features/CSharp/Portable/InlineDeclaration/CSharpInlineDeclarationDiagnosticAnalyzer.cs +++ b/src/Features/CSharp/Portable/InlineDeclaration/CSharpInlineDeclarationDiagnosticAnalyzer.cs @@ -37,10 +37,7 @@ public DiagnosticAnalyzerCategory GetAnalyzerCategory() public bool OpenFileOnly(Workspace workspace) => false; protected override void InitializeWorker(AnalysisContext context) - { - context.EnableConcurrentExecution(); - context.RegisterSyntaxNodeAction(AnalyzeSyntaxNode, SyntaxKind.Argument); - } + => context.RegisterSyntaxNodeAction(AnalyzeSyntaxNode, SyntaxKind.Argument); private void AnalyzeSyntaxNode(SyntaxNodeAnalysisContext context) { diff --git a/src/Features/CSharp/Portable/InvokeDelegateWithConditionalAccess/InvokeDelegateWithConditionalAccessAnalyzer.cs b/src/Features/CSharp/Portable/InvokeDelegateWithConditionalAccess/InvokeDelegateWithConditionalAccessAnalyzer.cs index dc644e839ccc3b3908ceb071186be827fa5a6167..c2ce87034b192b092adb8f70ea20f1d2aafc3bcc 100644 --- a/src/Features/CSharp/Portable/InvokeDelegateWithConditionalAccess/InvokeDelegateWithConditionalAccessAnalyzer.cs +++ b/src/Features/CSharp/Portable/InvokeDelegateWithConditionalAccess/InvokeDelegateWithConditionalAccessAnalyzer.cs @@ -29,10 +29,7 @@ public InvokeDelegateWithConditionalAccessAnalyzer() public bool OpenFileOnly(Workspace workspace) => false; protected override void InitializeWorker(AnalysisContext context) - { - context.EnableConcurrentExecution(); - context.RegisterSyntaxNodeAction(SyntaxNodeAction, SyntaxKind.IfStatement); - } + => context.RegisterSyntaxNodeAction(SyntaxNodeAction, SyntaxKind.IfStatement); private void SyntaxNodeAction(SyntaxNodeAnalysisContext syntaxContext) { diff --git a/src/Features/CSharp/Portable/UseExpressionBody/AbstractUseExpressionBodyDiagnosticAnalyzer.cs b/src/Features/CSharp/Portable/UseExpressionBody/AbstractUseExpressionBodyDiagnosticAnalyzer.cs index a34364e9b2fcefaecc74e35a61a4d742f1c2b3a8..0e6c5fddcc3774e872c37e5cbe22264f5ddb10b1 100644 --- a/src/Features/CSharp/Portable/UseExpressionBody/AbstractUseExpressionBodyDiagnosticAnalyzer.cs +++ b/src/Features/CSharp/Portable/UseExpressionBody/AbstractUseExpressionBodyDiagnosticAnalyzer.cs @@ -37,10 +37,7 @@ internal abstract class AbstractUseExpressionBodyDiagnosticAnalyzer DiagnosticAnalyzerCategory.SemanticDocumentAnalysis; protected override void InitializeWorker(AnalysisContext context) - { - context.EnableConcurrentExecution(); - context.RegisterSyntaxNodeAction(AnalyzeSyntax, _syntaxKinds); - } + => context.RegisterSyntaxNodeAction(AnalyzeSyntax, _syntaxKinds); private void AnalyzeSyntax(SyntaxNodeAnalysisContext context) { diff --git a/src/Features/CSharp/Portable/UsePatternMatching/CSharpAsAndNullCheckDiagnosticAnalyzer.cs b/src/Features/CSharp/Portable/UsePatternMatching/CSharpAsAndNullCheckDiagnosticAnalyzer.cs index 9f1214ed3dbbe1faf49e9df66177292b0ba0536c..852fba7030918f154e1cb732f7e21b5fb01620cf 100644 --- a/src/Features/CSharp/Portable/UsePatternMatching/CSharpAsAndNullCheckDiagnosticAnalyzer.cs +++ b/src/Features/CSharp/Portable/UsePatternMatching/CSharpAsAndNullCheckDiagnosticAnalyzer.cs @@ -32,10 +32,7 @@ public CSharpAsAndNullCheckDiagnosticAnalyzer() } protected override void InitializeWorker(AnalysisContext context) - { - context.EnableConcurrentExecution(); - context.RegisterSyntaxNodeAction(SyntaxNodeAction, SyntaxKind.IfStatement); - } + => context.RegisterSyntaxNodeAction(SyntaxNodeAction, SyntaxKind.IfStatement); private void SyntaxNodeAction(SyntaxNodeAnalysisContext syntaxContext) { diff --git a/src/Features/CSharp/Portable/UsePatternMatching/CSharpIsAndCastCheckDiagnosticAnalyzer.cs b/src/Features/CSharp/Portable/UsePatternMatching/CSharpIsAndCastCheckDiagnosticAnalyzer.cs index 176138ddb8d47763519a07036f2e127670712904..270a5d5ed5937e811e0340578ba0fc9202441e1c 100644 --- a/src/Features/CSharp/Portable/UsePatternMatching/CSharpIsAndCastCheckDiagnosticAnalyzer.cs +++ b/src/Features/CSharp/Portable/UsePatternMatching/CSharpIsAndCastCheckDiagnosticAnalyzer.cs @@ -38,10 +38,7 @@ public CSharpIsAndCastCheckDiagnosticAnalyzer() } protected override void InitializeWorker(AnalysisContext context) - { - context.EnableConcurrentExecution(); - context.RegisterSyntaxNodeAction(SyntaxNodeAction, SyntaxKind.IsExpression); - } + => context.RegisterSyntaxNodeAction(SyntaxNodeAction, SyntaxKind.IsExpression); private void SyntaxNodeAction(SyntaxNodeAnalysisContext syntaxContext) { diff --git a/src/Features/Core/Portable/CodeStyle/AbstractCodeStyleDiagnosticAnalyzer.cs b/src/Features/Core/Portable/CodeStyle/AbstractCodeStyleDiagnosticAnalyzer.cs index 11733094a5d9e43afb40de4c59daca3310efdaad..b346de2df78e46ea4a859123c8d37384d158fc02 100644 --- a/src/Features/Core/Portable/CodeStyle/AbstractCodeStyleDiagnosticAnalyzer.cs +++ b/src/Features/Core/Portable/CodeStyle/AbstractCodeStyleDiagnosticAnalyzer.cs @@ -74,6 +74,8 @@ public sealed override void Initialize(AnalysisContext context) { // Code style analyzers should not run on generated code. context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None); + context.EnableConcurrentExecution(); + InitializeWorker(context); } diff --git a/src/Features/Core/Portable/PopulateSwitch/PopulateSwitchDiagnosticAnalyzer.cs b/src/Features/Core/Portable/PopulateSwitch/PopulateSwitchDiagnosticAnalyzer.cs index f9327279281d50d1e0dcae265a3efd52f9ce65b2..54f26e676db65717af59130365ed7cd52ae855a3 100644 --- a/src/Features/Core/Portable/PopulateSwitch/PopulateSwitchDiagnosticAnalyzer.cs +++ b/src/Features/Core/Portable/PopulateSwitch/PopulateSwitchDiagnosticAnalyzer.cs @@ -28,13 +28,14 @@ internal sealed class PopulateSwitchDiagnosticAnalyzer : DiagnosticAnalyzer, IBu public override ImmutableArray SupportedDiagnostics => ImmutableArray.Create(s_descriptor); public bool OpenFileOnly(Workspace workspace) => false; - public override void Initialize(AnalysisContext context) - { - context.EnableConcurrentExecution(); + private static MethodInfo s_registerMethod = typeof(AnalysisContext).GetTypeInfo().GetDeclaredMethod("RegisterOperationActionImmutableArrayInternal"); - var internalMethod = typeof(AnalysisContext).GetTypeInfo().GetDeclaredMethod("RegisterOperationActionImmutableArrayInternal"); - internalMethod.Invoke(context, new object[] { new Action(AnalyzeOperation), ImmutableArray.Create(OperationKind.SwitchStatement) }); - } + public override void Initialize(AnalysisContext context) + => s_registerMethod.Invoke(context, new object[] + { + new Action(AnalyzeOperation), + ImmutableArray.Create(OperationKind.SwitchStatement) + }); private void AnalyzeOperation(OperationAnalysisContext context) { diff --git a/src/Features/Core/Portable/UseAutoProperty/AbstractUseAutoPropertyAnalyzer.cs b/src/Features/Core/Portable/UseAutoProperty/AbstractUseAutoPropertyAnalyzer.cs index 61ec1e3c3e29cefb181846eabce1c471572a577f..c74ccc9899c3f623d7c156cc6d6b0e8575c449de 100644 --- a/src/Features/Core/Portable/UseAutoProperty/AbstractUseAutoPropertyAnalyzer.cs +++ b/src/Features/Core/Portable/UseAutoProperty/AbstractUseAutoPropertyAnalyzer.cs @@ -37,19 +37,16 @@ internal abstract class AbstractUseAutoPropertyAnalyzer - { - var analysisResults = new ConcurrentBag(); - var ineligibleFields = new ConcurrentBag(); - - csac.RegisterSymbolAction(sac => AnalyzeProperty(analysisResults, sac), SymbolKind.Property); - RegisterIneligibleFieldsAction(csac, ineligibleFields); - - csac.RegisterCompilationEndAction(cac => Process(analysisResults, ineligibleFields, cac)); - }); - } + => context.RegisterCompilationStartAction(csac => + { + var analysisResults = new ConcurrentBag(); + var ineligibleFields = new ConcurrentBag(); + + csac.RegisterSymbolAction(sac => AnalyzeProperty(analysisResults, sac), SymbolKind.Property); + RegisterIneligibleFieldsAction(csac, ineligibleFields); + + csac.RegisterCompilationEndAction(cac => Process(analysisResults, ineligibleFields, cac)); + }); private void AnalyzeProperty(ConcurrentBag analysisResults, SymbolAnalysisContext symbolContext) { diff --git a/src/Features/Core/Portable/UseCoalesceExpression/AbstractUseCoalesceExpressionDiagnosticAnalyzer.cs b/src/Features/Core/Portable/UseCoalesceExpression/AbstractUseCoalesceExpressionDiagnosticAnalyzer.cs index d003a7f8d4006c5f961de0c89d1491c7afa6925d..3e62f343f789381d581fef2041c7d54b83640abc 100644 --- a/src/Features/Core/Portable/UseCoalesceExpression/AbstractUseCoalesceExpressionDiagnosticAnalyzer.cs +++ b/src/Features/Core/Portable/UseCoalesceExpression/AbstractUseCoalesceExpressionDiagnosticAnalyzer.cs @@ -30,10 +30,7 @@ protected AbstractUseCoalesceExpressionDiagnosticAnalyzer() protected abstract bool IsNotEquals(TBinaryExpressionSyntax condition); protected override void InitializeWorker(AnalysisContext context) - { - context.EnableConcurrentExecution(); - context.RegisterSyntaxNodeAction(AnalyzeSyntax, GetSyntaxKindToAnalyze()); - } + => context.RegisterSyntaxNodeAction(AnalyzeSyntax, GetSyntaxKindToAnalyze()); private void AnalyzeSyntax(SyntaxNodeAnalysisContext context) { diff --git a/src/Features/Core/Portable/UseCoalesceExpression/AbstractUseCoalesceExpressionForNullableDiagnosticAnalyzer.cs b/src/Features/Core/Portable/UseCoalesceExpression/AbstractUseCoalesceExpressionForNullableDiagnosticAnalyzer.cs index f1b0cf527fddaafc77536a3050b382a213b7c0a0..0131eef8b68b02625c0f07726944eb809fbd6b3c 100644 --- a/src/Features/Core/Portable/UseCoalesceExpression/AbstractUseCoalesceExpressionForNullableDiagnosticAnalyzer.cs +++ b/src/Features/Core/Portable/UseCoalesceExpression/AbstractUseCoalesceExpressionForNullableDiagnosticAnalyzer.cs @@ -32,10 +32,7 @@ protected AbstractUseCoalesceExpressionForNullableDiagnosticAnalyzer() protected abstract ISyntaxFactsService GetSyntaxFactsService(); protected override void InitializeWorker(AnalysisContext context) - { - context.EnableConcurrentExecution(); - context.RegisterSyntaxNodeAction(AnalyzeSyntax, GetSyntaxKindToAnalyze()); - } + => context.RegisterSyntaxNodeAction(AnalyzeSyntax, GetSyntaxKindToAnalyze()); private void AnalyzeSyntax(SyntaxNodeAnalysisContext context) { diff --git a/src/Features/Core/Portable/UseCollectionInitializer/AbstractUseCollectionInitializerDiagnosticAnalyzer.cs b/src/Features/Core/Portable/UseCollectionInitializer/AbstractUseCollectionInitializerDiagnosticAnalyzer.cs index 6f1cba7cb668e1ec3115426cc55fbcbad42e44f7..60fb1f0e7f4adcbefd150a2aafe8f24f703ea074 100644 --- a/src/Features/Core/Portable/UseCollectionInitializer/AbstractUseCollectionInitializerDiagnosticAnalyzer.cs +++ b/src/Features/Core/Portable/UseCollectionInitializer/AbstractUseCollectionInitializerDiagnosticAnalyzer.cs @@ -39,19 +39,16 @@ protected AbstractUseCollectionInitializerDiagnosticAnalyzer() } protected override void InitializeWorker(AnalysisContext context) - { - context.EnableConcurrentExecution(); - context.RegisterCompilationStartAction(compilationContext => - { - var ienumerableType = compilationContext.Compilation.GetTypeByMetadataName("System.Collections.IEnumerable") as INamedTypeSymbol; - if (ienumerableType != null) - { - context.RegisterSyntaxNodeAction( - nodeContext => AnalyzeNode(nodeContext, ienumerableType), - GetObjectCreationSyntaxKind()); - } - }); - } + => context.RegisterCompilationStartAction(compilationContext => + { + var ienumerableType = compilationContext.Compilation.GetTypeByMetadataName("System.Collections.IEnumerable") as INamedTypeSymbol; + if (ienumerableType != null) + { + context.RegisterSyntaxNodeAction( + nodeContext => AnalyzeNode(nodeContext, ienumerableType), + GetObjectCreationSyntaxKind()); + } + }); protected abstract bool AreCollectionInitializersSupported(SyntaxNodeAnalysisContext context); protected abstract TSyntaxKind GetObjectCreationSyntaxKind(); diff --git a/src/Features/Core/Portable/UseNullPropagation/AbstractUseNullPropagationDiagnosticAnalyzer.cs b/src/Features/Core/Portable/UseNullPropagation/AbstractUseNullPropagationDiagnosticAnalyzer.cs index 3b1c6736662d4c71ce9ccdae04eba7bd07279926..8161bc42611a532e9e99286392d70c4ec05ca9b6 100644 --- a/src/Features/Core/Portable/UseNullPropagation/AbstractUseNullPropagationDiagnosticAnalyzer.cs +++ b/src/Features/Core/Portable/UseNullPropagation/AbstractUseNullPropagationDiagnosticAnalyzer.cs @@ -40,10 +40,7 @@ protected AbstractUseNullPropagationDiagnosticAnalyzer() protected abstract bool ShouldAnalyze(ParseOptions options); protected override void InitializeWorker(AnalysisContext context) - { - context.EnableConcurrentExecution(); - context.RegisterSyntaxNodeAction(AnalyzeSyntax, GetSyntaxKindToAnalyze()); - } + => context.RegisterSyntaxNodeAction(AnalyzeSyntax, GetSyntaxKindToAnalyze()); private void AnalyzeSyntax(SyntaxNodeAnalysisContext context) { diff --git a/src/Features/Core/Portable/UseObjectInitializer/AbstractUseObjectInitializerDiagnosticAnalyzer.cs b/src/Features/Core/Portable/UseObjectInitializer/AbstractUseObjectInitializerDiagnosticAnalyzer.cs index ad3028b676b442d9237966a2f89535404d28dfab..cb6059e49f2743d6df224fd69f910f64f8f489b9 100644 --- a/src/Features/Core/Portable/UseObjectInitializer/AbstractUseObjectInitializerDiagnosticAnalyzer.cs +++ b/src/Features/Core/Portable/UseObjectInitializer/AbstractUseObjectInitializerDiagnosticAnalyzer.cs @@ -41,10 +41,7 @@ protected AbstractUseObjectInitializerDiagnosticAnalyzer() } protected override void InitializeWorker(AnalysisContext context) - { - context.EnableConcurrentExecution(); - context.RegisterSyntaxNodeAction(AnalyzeNode, GetObjectCreationSyntaxKind()); - } + => context.RegisterSyntaxNodeAction(AnalyzeNode, GetObjectCreationSyntaxKind()); protected abstract TSyntaxKind GetObjectCreationSyntaxKind(); diff --git a/src/Features/Core/Portable/UseThrowExpression/AbstractUseThrowExpressionDiagnosticAnalyzer.cs b/src/Features/Core/Portable/UseThrowExpression/AbstractUseThrowExpressionDiagnosticAnalyzer.cs index 1dda39075d7953be37b30890d41e562f86d27d06..7e4a1345e4a35f6f19c96cedbd34032b31d657f7 100644 --- a/src/Features/Core/Portable/UseThrowExpression/AbstractUseThrowExpressionDiagnosticAnalyzer.cs +++ b/src/Features/Core/Portable/UseThrowExpression/AbstractUseThrowExpressionDiagnosticAnalyzer.cs @@ -56,14 +56,11 @@ public DiagnosticAnalyzerCategory GetAnalyzerCategory() protected abstract bool IsSupported(ParseOptions options); protected override void InitializeWorker(AnalysisContext context) - { - context.EnableConcurrentExecution(); - s_registerOperationActionInfo.Invoke(context, new object[] - { - new Action(AnalyzeOperation), - ImmutableArray.Create(OperationKind.ThrowStatement) - }); - } + => s_registerOperationActionInfo.Invoke(context, new object[] + { + new Action(AnalyzeOperation), + ImmutableArray.Create(OperationKind.ThrowStatement) + }); private void AnalyzeOperation(OperationAnalysisContext context) {