Skip to content

Commit afc62f4

Browse files
authored
Merge pull request #3590 from bjornhellander/feature/sa1400-file
Update SA1400 to recognize access modifier "file"
2 parents 5da83ec + 985db5b commit afc62f4

File tree

3 files changed

+20
-0
lines changed

3 files changed

+20
-0
lines changed

StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp11/MaintainabilityRules/SA1400CSharp11UnitTests.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,26 @@
33

44
namespace StyleCop.Analyzers.Test.CSharp11.MaintainabilityRules
55
{
6+
using System.Threading;
7+
using System.Threading.Tasks;
8+
using Microsoft.CodeAnalysis.Testing;
69
using StyleCop.Analyzers.Test.CSharp10.MaintainabilityRules;
10+
using StyleCop.Analyzers.Test.Helpers;
11+
using Xunit;
12+
using static StyleCop.Analyzers.Test.Verifiers.StyleCopCodeFixVerifier<
13+
StyleCop.Analyzers.MaintainabilityRules.SA1400AccessModifierMustBeDeclared,
14+
StyleCop.Analyzers.MaintainabilityRules.SA1400CodeFixProvider>;
715

816
public class SA1400CSharp11UnitTests : SA1400CSharp10UnitTests
917
{
18+
[Theory]
19+
[MemberData(nameof(CommonMemberData.BaseTypeDeclarationKeywords), MemberType = typeof(CommonMemberData))]
20+
[WorkItem(3588, "https://github.com/DotNetAnalyzers/StyleCopAnalyzers/issues/3588")]
21+
public async Task TestTypeDeclarationWithFileModifierAsync(string typeName)
22+
{
23+
var testCode = $@"file {typeName} TypeName {{ }}";
24+
25+
await VerifyCSharpDiagnosticAsync(testCode, DiagnosticResult.EmptyDiagnosticResults, CancellationToken.None).ConfigureAwait(false);
26+
}
1027
}
1128
}

StyleCop.Analyzers/StyleCop.Analyzers/Lightup/SyntaxKindEx.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ internal static class SyntaxKindEx
1414
public const SyntaxKind NotKeyword = (SyntaxKind)8440;
1515
public const SyntaxKind ManagedKeyword = (SyntaxKind)8445;
1616
public const SyntaxKind UnmanagedKeyword = (SyntaxKind)8446;
17+
public const SyntaxKind FileKeyword = (SyntaxKind)8449;
1718
public const SyntaxKind NullableKeyword = (SyntaxKind)8486;
1819
public const SyntaxKind EnableKeyword = (SyntaxKind)8487;
1920
public const SyntaxKind WarningsKeyword = (SyntaxKind)8488;

StyleCop.Analyzers/StyleCop.Analyzers/MaintainabilityRules/SA1400AccessModifierMustBeDeclared.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ namespace StyleCop.Analyzers.MaintainabilityRules
1313
using Microsoft.CodeAnalysis.CSharp.Syntax;
1414
using Microsoft.CodeAnalysis.Diagnostics;
1515
using StyleCop.Analyzers.Helpers;
16+
using StyleCop.Analyzers.Lightup;
1617

1718
/// <summary>
1819
/// The access modifier for a C# element has not been explicitly defined.
@@ -189,6 +190,7 @@ private static void CheckAccessModifiers(SyntaxNodeAnalysisContext context, Synt
189190
case SyntaxKind.ProtectedKeyword:
190191
case SyntaxKind.InternalKeyword:
191192
case SyntaxKind.PrivateKeyword:
193+
case SyntaxKindEx.FileKeyword:
192194
return;
193195

194196
case SyntaxKind.StaticKeyword:

0 commit comments

Comments
 (0)