Skip to content

Commit c61bb3e

Browse files
committed
Fix handling of alias-qualified System using directives in SA1208
Fixes #1818
1 parent 02cb0ec commit c61bb3e

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ private static void ProcessUsingsAndReportDiagnostic(SyntaxList<UsingDirectiveSy
9898
continue;
9999
}
100100

101-
if (usingDirective.IsSystemUsingDirective())
101+
if (usingDirective.IsSystemUsingDirective() && !usingDirective.HasNamespaceAliasQualifier())
102102
{
103103
if (systemUsingDirectivesShouldBeBeforeThisName != null)
104104
{
@@ -108,7 +108,9 @@ private static void ProcessUsingsAndReportDiagnostic(SyntaxList<UsingDirectiveSy
108108

109109
var previousUsing = usings[i - 1];
110110

111-
if (!previousUsing.IsSystemUsingDirective() || previousUsing.StaticKeyword.Kind() != SyntaxKind.None)
111+
if (!previousUsing.IsSystemUsingDirective()
112+
|| previousUsing.HasNamespaceAliasQualifier()
113+
|| previousUsing.StaticKeyword.Kind() != SyntaxKind.None)
112114
{
113115
systemUsingDirectivesShouldBeBeforeThisName = previousUsing.Name.ToNormalizedString();
114116
context.ReportDiagnostic(Diagnostic.Create(Descriptor, usingDirective.GetLocation(), usingDirective.Name.ToNormalizedString(), systemUsingDirectivesShouldBeBeforeThisName));

0 commit comments

Comments
 (0)