Skip to content

Commit 0ff19de

Browse files
Simplify
1 parent 2d241b7 commit 0ff19de

File tree

3 files changed

+11
-8
lines changed

3 files changed

+11
-8
lines changed

src/Analyzers/CSharp/CodeFixes/UseNullPropagation/CSharpUseNullPropagationCodeFixProvider.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ namespace Microsoft.CodeAnalysis.CSharp.UseNullPropagation;
1717
[method: ImportingConstructor]
1818
[method: SuppressMessage("RoslynDiagnosticsReliability", "RS0033:Importing constructor should be [Obsolete]", Justification = "Used in test code: https://github.com/dotnet/roslyn/issues/42814")]
1919
internal sealed class CSharpUseNullPropagationCodeFixProvider() : AbstractUseNullPropagationCodeFixProvider<
20+
CSharpUseNullPropagationDiagnosticAnalyzer,
2021
SyntaxKind,
2122
ExpressionSyntax,
2223
StatementSyntax,
@@ -31,7 +32,7 @@ internal sealed class CSharpUseNullPropagationCodeFixProvider() : AbstractUseNul
3132
ExpressionStatementSyntax,
3233
BracketedArgumentListSyntax>
3334
{
34-
protected override AbstractUseNullPropagationDiagnosticAnalyzer<SyntaxKind, ExpressionSyntax, StatementSyntax, ConditionalExpressionSyntax, BinaryExpressionSyntax, InvocationExpressionSyntax, ConditionalAccessExpressionSyntax, ElementAccessExpressionSyntax, MemberAccessExpressionSyntax, IfStatementSyntax, ExpressionStatementSyntax> Analyzer
35+
protected override CSharpUseNullPropagationDiagnosticAnalyzer Analyzer
3536
=> CSharpUseNullPropagationDiagnosticAnalyzer.Instance;
3637

3738
private static BlockSyntax ReplaceBlockStatements(BlockSyntax block, StatementSyntax newInnerStatement)

src/Analyzers/Core/CodeFixes/UseNullPropagation/AbstractUseNullPropagationCodeFixProvider.cs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
namespace Microsoft.CodeAnalysis.UseNullPropagation;
2222

2323
internal abstract class AbstractUseNullPropagationCodeFixProvider<
24+
TAnalyzer,
2425
TSyntaxKind,
2526
TExpressionSyntax,
2627
TStatementSyntax,
@@ -34,6 +35,11 @@ internal abstract class AbstractUseNullPropagationCodeFixProvider<
3435
TIfStatementSyntax,
3536
TExpressionStatementSyntax,
3637
TElementBindingArgumentListSyntax> : ForkingSyntaxEditorBasedCodeFixProvider<SyntaxNode>
38+
where TAnalyzer : AbstractUseNullPropagationDiagnosticAnalyzer<
39+
TSyntaxKind, TExpressionSyntax, TStatementSyntax,
40+
TConditionalExpressionSyntax, TBinaryExpressionSyntax, TInvocationExpressionSyntax,
41+
TConditionalAccessExpressionSyntax, TElementAccessExpressionSyntax, TMemberAccessExpressionSyntax,
42+
TIfStatementSyntax, TExpressionStatementSyntax>
3743
where TSyntaxKind : struct
3844
where TExpressionSyntax : SyntaxNode
3945
where TStatementSyntax : SyntaxNode
@@ -51,11 +57,7 @@ internal abstract class AbstractUseNullPropagationCodeFixProvider<
5157
protected abstract SyntaxNode PostProcessElseIf(TIfStatementSyntax ifStatement, TStatementSyntax newWhenTrueStatement);
5258
protected abstract TElementBindingExpressionSyntax ElementBindingExpression(TElementBindingArgumentListSyntax argumentList);
5359

54-
protected abstract AbstractUseNullPropagationDiagnosticAnalyzer<
55-
TSyntaxKind, TExpressionSyntax, TStatementSyntax,
56-
TConditionalExpressionSyntax, TBinaryExpressionSyntax, TInvocationExpressionSyntax,
57-
TConditionalAccessExpressionSyntax, TElementAccessExpressionSyntax, TMemberAccessExpressionSyntax,
58-
TIfStatementSyntax, TExpressionStatementSyntax> Analyzer { get; }
60+
protected abstract TAnalyzer Analyzer { get; }
5961

6062
public override ImmutableArray<string> FixableDiagnosticIds
6163
=> [IDEDiagnosticIds.UseNullPropagationDiagnosticId];

src/Analyzers/VisualBasic/CodeFixes/UseNullPropagation/VisualBasicUseNullPropagationCodeFixProvider.vb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.UseNullPropagation
1212
<ExportCodeFixProvider(LanguageNames.VisualBasic, Name:=PredefinedCodeFixProviderNames.UseNullPropagation), [Shared]>
1313
Friend NotInheritable Class VisualBasicUseNullPropagationCodeFixProvider
1414
Inherits AbstractUseNullPropagationCodeFixProvider(Of
15+
VisualBasicUseNullPropagationDiagnosticAnalyzer,
1516
SyntaxKind,
1617
ExpressionSyntax,
1718
ExecutableStatementSyntax,
@@ -31,8 +32,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.UseNullPropagation
3132
Public Sub New()
3233
End Sub
3334

34-
Protected Overrides ReadOnly Property Analyzer As AbstractUseNullPropagationDiagnosticAnalyzer(Of SyntaxKind, ExpressionSyntax, ExecutableStatementSyntax, TernaryConditionalExpressionSyntax, BinaryExpressionSyntax, InvocationExpressionSyntax, ConditionalAccessExpressionSyntax, InvocationExpressionSyntax, MemberAccessExpressionSyntax, MultiLineIfBlockSyntax, ExpressionStatementSyntax) =
35-
VisualBasicUseNullPropagationDiagnosticAnalyzer.Instance
35+
Protected Overrides ReadOnly Property Analyzer As VisualBasicUseNullPropagationDiagnosticAnalyzer = VisualBasicUseNullPropagationDiagnosticAnalyzer.Instance
3636

3737
Protected Overrides Function PostProcessElseIf(ifStatement As MultiLineIfBlockSyntax, newWhenTrueStatement As ExecutableStatementSyntax) As SyntaxNode
3838
Throw ExceptionUtilities.Unreachable()

0 commit comments

Comments
 (0)