@@ -12,6 +12,7 @@ namespace StyleCop.Analyzers.LayoutRules
1212 using Microsoft . CodeAnalysis . CSharp . Syntax ;
1313 using Microsoft . CodeAnalysis . Diagnostics ;
1414 using StyleCop . Analyzers . Helpers ;
15+ using StyleCop . Analyzers . Lightup ;
1516
1617 /// <summary>
1718 /// A closing brace within a C# element, statement, or expression is preceded by a blank line.
@@ -61,6 +62,8 @@ internal class SA1508ClosingBracesMustNotBePrecededByBlankLine : DiagnosticAnaly
6162 private static readonly Action < SyntaxNodeAnalysisContext > NamespaceDeclarationAction = HandleNamespaceDeclaration ;
6263 private static readonly Action < SyntaxNodeAnalysisContext > BaseTypeDeclarationAction = HandleBaseTypeDeclaration ;
6364 private static readonly Action < SyntaxNodeAnalysisContext > AccessorListAction = HandleAccessorList ;
65+ private static readonly Action < SyntaxNodeAnalysisContext > SwitchExpressionAction = HandleSwitchExpression ;
66+ private static readonly Action < SyntaxNodeAnalysisContext > PropertyPatternClauseAction = HandlePropertyPatternClause ;
6467
6568 /// <inheritdoc/>
6669 public override ImmutableArray < DiagnosticDescriptor > SupportedDiagnostics { get ; } =
@@ -79,6 +82,8 @@ public override void Initialize(AnalysisContext context)
7982 context . RegisterSyntaxNodeAction ( NamespaceDeclarationAction , SyntaxKind . NamespaceDeclaration ) ;
8083 context . RegisterSyntaxNodeAction ( BaseTypeDeclarationAction , SyntaxKinds . BaseTypeDeclaration ) ;
8184 context . RegisterSyntaxNodeAction ( AccessorListAction , SyntaxKind . AccessorList ) ;
85+ context . RegisterSyntaxNodeAction ( SwitchExpressionAction , SyntaxKindEx . SwitchExpression ) ;
86+ context . RegisterSyntaxNodeAction ( PropertyPatternClauseAction , SyntaxKindEx . PropertyPatternClause ) ;
8287 }
8388
8489 private static void HandleBlock ( SyntaxNodeAnalysisContext context )
@@ -123,6 +128,18 @@ private static void HandleAccessorList(SyntaxNodeAnalysisContext context)
123128 AnalyzeCloseBrace ( context , accessorList . CloseBraceToken ) ;
124129 }
125130
131+ private static void HandleSwitchExpression ( SyntaxNodeAnalysisContext context )
132+ {
133+ var switchExpression = ( SwitchExpressionSyntaxWrapper ) context . Node ;
134+ AnalyzeCloseBrace ( context , switchExpression . CloseBraceToken ) ;
135+ }
136+
137+ private static void HandlePropertyPatternClause ( SyntaxNodeAnalysisContext context )
138+ {
139+ var propertyPatternClause = ( PropertyPatternClauseSyntaxWrapper ) context . Node ;
140+ AnalyzeCloseBrace ( context , propertyPatternClause . CloseBraceToken ) ;
141+ }
142+
126143 private static void AnalyzeCloseBrace ( SyntaxNodeAnalysisContext context , SyntaxToken closeBraceToken )
127144 {
128145 if ( closeBraceToken . IsKind ( SyntaxKind . None ) )
0 commit comments