@@ -36,7 +36,21 @@ internal class SA1400AccessModifierMustBeDeclared : DiagnosticAnalyzer
3636 private static readonly DiagnosticDescriptor Descriptor =
3737 new DiagnosticDescriptor ( DiagnosticId , Title , MessageFormat , AnalyzerCategory . MaintainabilityRules , DiagnosticSeverity . Warning , AnalyzerConstants . EnabledByDefault , Description , HelpLink ) ;
3838
39+ private static readonly ImmutableArray < SyntaxKind > BaseTypeDeclarationKinds =
40+ ImmutableArray . Create ( SyntaxKind . ClassDeclaration , SyntaxKind . StructDeclaration , SyntaxKind . InterfaceDeclaration , SyntaxKind . EnumDeclaration ) ;
41+
42+ private static readonly ImmutableArray < SyntaxKind > BaseFieldDeclarationKinds =
43+ ImmutableArray . Create ( SyntaxKind . EventFieldDeclaration , SyntaxKind . FieldDeclaration ) ;
44+
3945 private static readonly Action < CompilationStartAnalysisContext > CompilationStartAction = HandleCompilationStart ;
46+ private static readonly Action < SyntaxNodeAnalysisContext > BaseTypeDeclarationAction = HandleBaseTypeDeclaration ;
47+ private static readonly Action < SyntaxNodeAnalysisContext > DelegateDeclarationAction = HandleDelegateDeclaration ;
48+ private static readonly Action < SyntaxNodeAnalysisContext > EventDeclarationAction = HandleEventDeclaration ;
49+ private static readonly Action < SyntaxNodeAnalysisContext > MethodDeclarationAction = HandleMethodDeclaration ;
50+ private static readonly Action < SyntaxNodeAnalysisContext > PropertyDeclarationAction = HandlePropertyDeclaration ;
51+ private static readonly Action < SyntaxNodeAnalysisContext > BaseFieldDeclarationAction = HandleBaseFieldDeclaration ;
52+ private static readonly Action < SyntaxNodeAnalysisContext > IndexerDeclarationAction = HandleIndexerDeclaration ;
53+ private static readonly Action < SyntaxNodeAnalysisContext > ConstructorDeclarationAction = HandleConstructorDeclaration ;
4054
4155 /// <inheritdoc/>
4256 public override ImmutableArray < DiagnosticDescriptor > SupportedDiagnostics { get ; } =
@@ -50,33 +64,29 @@ public override void Initialize(AnalysisContext context)
5064
5165 private static void HandleCompilationStart ( CompilationStartAnalysisContext context )
5266 {
53- context . RegisterSyntaxNodeActionHonorExclusions ( HandleBaseTypeDeclarationSyntax , SyntaxKind . ClassDeclaration ) ;
54- context . RegisterSyntaxNodeActionHonorExclusions ( HandleBaseTypeDeclarationSyntax , SyntaxKind . InterfaceDeclaration ) ;
55- context . RegisterSyntaxNodeActionHonorExclusions ( HandleBaseTypeDeclarationSyntax , SyntaxKind . EnumDeclaration ) ;
56- context . RegisterSyntaxNodeActionHonorExclusions ( HandleBaseTypeDeclarationSyntax , SyntaxKind . StructDeclaration ) ;
57- context . RegisterSyntaxNodeActionHonorExclusions ( HandleDelegateDeclarationSyntax , SyntaxKind . DelegateDeclaration ) ;
58- context . RegisterSyntaxNodeActionHonorExclusions ( HandleEventDeclarationSyntax , SyntaxKind . EventDeclaration ) ;
59- context . RegisterSyntaxNodeActionHonorExclusions ( HandleMethodDeclarationSyntax , SyntaxKind . MethodDeclaration ) ;
60- context . RegisterSyntaxNodeActionHonorExclusions ( HandlePropertyDeclarationSyntax , SyntaxKind . PropertyDeclaration ) ;
61- context . RegisterSyntaxNodeActionHonorExclusions ( HandleBaseFieldDeclarationSyntax , SyntaxKind . EventFieldDeclaration ) ;
62- context . RegisterSyntaxNodeActionHonorExclusions ( HandleBaseFieldDeclarationSyntax , SyntaxKind . FieldDeclaration ) ;
63- context . RegisterSyntaxNodeActionHonorExclusions ( HandleIndexerDeclarationSyntax , SyntaxKind . IndexerDeclaration ) ;
64- context . RegisterSyntaxNodeActionHonorExclusions ( HandleConstructorDeclarationSyntax , SyntaxKind . ConstructorDeclaration ) ;
67+ context . RegisterSyntaxNodeActionHonorExclusions ( BaseTypeDeclarationAction , BaseTypeDeclarationKinds ) ;
68+ context . RegisterSyntaxNodeActionHonorExclusions ( DelegateDeclarationAction , SyntaxKind . DelegateDeclaration ) ;
69+ context . RegisterSyntaxNodeActionHonorExclusions ( EventDeclarationAction , SyntaxKind . EventDeclaration ) ;
70+ context . RegisterSyntaxNodeActionHonorExclusions ( MethodDeclarationAction , SyntaxKind . MethodDeclaration ) ;
71+ context . RegisterSyntaxNodeActionHonorExclusions ( PropertyDeclarationAction , SyntaxKind . PropertyDeclaration ) ;
72+ context . RegisterSyntaxNodeActionHonorExclusions ( BaseFieldDeclarationAction , BaseFieldDeclarationKinds ) ;
73+ context . RegisterSyntaxNodeActionHonorExclusions ( IndexerDeclarationAction , SyntaxKind . IndexerDeclaration ) ;
74+ context . RegisterSyntaxNodeActionHonorExclusions ( ConstructorDeclarationAction , SyntaxKind . ConstructorDeclaration ) ;
6575 }
6676
67- private static void HandleBaseTypeDeclarationSyntax ( SyntaxNodeAnalysisContext context )
77+ private static void HandleBaseTypeDeclaration ( SyntaxNodeAnalysisContext context )
6878 {
6979 var syntax = ( BaseTypeDeclarationSyntax ) context . Node ;
7080 CheckAccessModifiers ( context , syntax . Identifier , syntax . Modifiers ) ;
7181 }
7282
73- private static void HandleDelegateDeclarationSyntax ( SyntaxNodeAnalysisContext context )
83+ private static void HandleDelegateDeclaration ( SyntaxNodeAnalysisContext context )
7484 {
7585 var syntax = ( DelegateDeclarationSyntax ) context . Node ;
7686 CheckAccessModifiers ( context , syntax . Identifier , syntax . Modifiers ) ;
7787 }
7888
79- private static void HandleEventDeclarationSyntax ( SyntaxNodeAnalysisContext context )
89+ private static void HandleEventDeclaration ( SyntaxNodeAnalysisContext context )
8090 {
8191 var syntax = ( EventDeclarationSyntax ) context . Node ;
8292 if ( syntax . ExplicitInterfaceSpecifier != null )
@@ -92,7 +102,7 @@ private static void HandleEventDeclarationSyntax(SyntaxNodeAnalysisContext conte
92102 CheckAccessModifiers ( context , syntax . Identifier , syntax . Modifiers ) ;
93103 }
94104
95- private static void HandleMethodDeclarationSyntax ( SyntaxNodeAnalysisContext context )
105+ private static void HandleMethodDeclaration ( SyntaxNodeAnalysisContext context )
96106 {
97107 var syntax = ( MethodDeclarationSyntax ) context . Node ;
98108 if ( syntax . ExplicitInterfaceSpecifier != null )
@@ -108,7 +118,7 @@ private static void HandleMethodDeclarationSyntax(SyntaxNodeAnalysisContext cont
108118 CheckAccessModifiers ( context , syntax . Identifier , syntax . Modifiers ) ;
109119 }
110120
111- private static void HandlePropertyDeclarationSyntax ( SyntaxNodeAnalysisContext context )
121+ private static void HandlePropertyDeclaration ( SyntaxNodeAnalysisContext context )
112122 {
113123 var syntax = ( PropertyDeclarationSyntax ) context . Node ;
114124 if ( syntax . ExplicitInterfaceSpecifier != null )
@@ -124,7 +134,7 @@ private static void HandlePropertyDeclarationSyntax(SyntaxNodeAnalysisContext co
124134 CheckAccessModifiers ( context , syntax . Identifier , syntax . Modifiers ) ;
125135 }
126136
127- private static void HandleBaseFieldDeclarationSyntax ( SyntaxNodeAnalysisContext context )
137+ private static void HandleBaseFieldDeclaration ( SyntaxNodeAnalysisContext context )
128138 {
129139 var syntax = ( BaseFieldDeclarationSyntax ) context . Node ;
130140 if ( syntax . Parent . IsKind ( SyntaxKind . InterfaceDeclaration ) )
@@ -148,7 +158,7 @@ private static void HandleBaseFieldDeclarationSyntax(SyntaxNodeAnalysisContext c
148158 CheckAccessModifiers ( context , declarator . Identifier , syntax . Modifiers , declarator ) ;
149159 }
150160
151- private static void HandleIndexerDeclarationSyntax ( SyntaxNodeAnalysisContext context )
161+ private static void HandleIndexerDeclaration ( SyntaxNodeAnalysisContext context )
152162 {
153163 var syntax = ( IndexerDeclarationSyntax ) context . Node ;
154164 if ( syntax . ExplicitInterfaceSpecifier != null )
@@ -164,7 +174,7 @@ private static void HandleIndexerDeclarationSyntax(SyntaxNodeAnalysisContext con
164174 CheckAccessModifiers ( context , syntax . ThisKeyword , syntax . Modifiers ) ;
165175 }
166176
167- private static void HandleConstructorDeclarationSyntax ( SyntaxNodeAnalysisContext context )
177+ private static void HandleConstructorDeclaration ( SyntaxNodeAnalysisContext context )
168178 {
169179 var syntax = ( ConstructorDeclarationSyntax ) context . Node ;
170180 CheckAccessModifiers ( context , syntax . Identifier , syntax . Modifiers ) ;
0 commit comments