Skip to content

Commit a9ec12f

Browse files
committed
Simplify BaseNamespaceDeclarationSyntax callbacks
1 parent e477fbd commit a9ec12f

2 files changed

Lines changed: 17 additions & 18 deletions

File tree

StyleCop.Analyzers/StyleCop.Analyzers/Helpers/SyntaxKinds.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,19 @@ namespace StyleCop.Analyzers.Helpers
1010

1111
internal static class SyntaxKinds
1212
{
13+
/// <summary>
14+
/// Gets a collection of <see cref="SyntaxKind"/> values which appear in the syntax tree as a
15+
/// <see cref="BaseNamespaceDeclarationSyntaxWrapper"/>.
16+
/// </summary>
17+
/// <value>
18+
/// A collection of <see cref="SyntaxKind"/> values which appear in the syntax tree as a
19+
/// <see cref="BaseNamespaceDeclarationSyntaxWrapper"/>.
20+
/// </value>
21+
public static ImmutableArray<SyntaxKind> BaseNamespaceDeclaration { get; } =
22+
ImmutableArray.Create(
23+
SyntaxKind.NamespaceDeclaration,
24+
SyntaxKindEx.FileScopedNamespaceDeclaration);
25+
1326
/// <summary>
1427
/// Gets a collection of <see cref="SyntaxKind"/> values which appear in the syntax tree as a
1528
/// <see cref="BaseTypeDeclarationSyntax"/>.

StyleCop.Analyzers/StyleCop.Analyzers/OrderingRules/SA1208SystemUsingDirectivesMustBePlacedBeforeOtherUsingDirectives.cs

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,7 @@ internal class SA1208SystemUsingDirectivesMustBePlacedBeforeOtherUsingDirectives
4040
new DiagnosticDescriptor(DiagnosticId, Title, MessageFormat, AnalyzerCategory.OrderingRules, DiagnosticSeverity.Warning, AnalyzerConstants.EnabledByDefault, Description, HelpLink);
4141

4242
private static readonly Action<SyntaxNodeAnalysisContext, StyleCopSettings> CompilationUnitAction = HandleCompilationUnit;
43-
private static readonly Action<SyntaxNodeAnalysisContext, StyleCopSettings> NamespaceDeclarationAction = HandleNamespaceDeclaration;
44-
private static readonly Action<SyntaxNodeAnalysisContext, StyleCopSettings> FileScopedNamespaceDeclarationAction = HandleFileScopedNamespaceDeclaration;
43+
private static readonly Action<SyntaxNodeAnalysisContext, StyleCopSettings> BaseNamespaceDeclarationAction = HandleBaseNamespaceDeclaration;
4544

4645
/// <inheritdoc/>
4746
public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics { get; } =
@@ -54,8 +53,7 @@ public override void Initialize(AnalysisContext context)
5453
context.EnableConcurrentExecution();
5554

5655
context.RegisterSyntaxNodeAction(CompilationUnitAction, SyntaxKind.CompilationUnit);
57-
context.RegisterSyntaxNodeAction(NamespaceDeclarationAction, SyntaxKind.NamespaceDeclaration);
58-
context.RegisterSyntaxNodeAction(FileScopedNamespaceDeclarationAction, SyntaxKindEx.FileScopedNamespaceDeclaration);
56+
context.RegisterSyntaxNodeAction(BaseNamespaceDeclarationAction, SyntaxKinds.BaseNamespaceDeclaration);
5957
}
6058

6159
private static void HandleCompilationUnit(SyntaxNodeAnalysisContext context, StyleCopSettings settings)
@@ -72,26 +70,14 @@ private static void HandleCompilationUnit(SyntaxNodeAnalysisContext context, Sty
7270
ProcessUsingsAndReportDiagnostic(usings, context);
7371
}
7472

75-
private static void HandleNamespaceDeclaration(SyntaxNodeAnalysisContext context, StyleCopSettings settings)
73+
private static void HandleBaseNamespaceDeclaration(SyntaxNodeAnalysisContext context, StyleCopSettings settings)
7674
{
7775
if (!settings.OrderingRules.SystemUsingDirectivesFirst)
7876
{
7977
return;
8078
}
8179

82-
var namespaceDeclaration = (NamespaceDeclarationSyntax)context.Node;
83-
var usings = namespaceDeclaration.Usings;
84-
ProcessUsingsAndReportDiagnostic(usings, context);
85-
}
86-
87-
private static void HandleFileScopedNamespaceDeclaration(SyntaxNodeAnalysisContext context, StyleCopSettings settings)
88-
{
89-
if (!settings.OrderingRules.SystemUsingDirectivesFirst)
90-
{
91-
return;
92-
}
93-
94-
var namespaceDeclaration = (FileScopedNamespaceDeclarationSyntaxWrapper)context.Node;
80+
var namespaceDeclaration = (BaseNamespaceDeclarationSyntaxWrapper)context.Node;
9581
var usings = namespaceDeclaration.Usings;
9682
ProcessUsingsAndReportDiagnostic(usings, context);
9783
}

0 commit comments

Comments
 (0)