From 47f6635480e57ac8c82221a29fd0f5b301efc2c7 Mon Sep 17 00:00:00 2001 From: mary-georgiou-sonarsource Date: Fri, 17 Feb 2023 14:17:43 +0100 Subject: [PATCH] if no access modifier exist the field is private --- .../src/SonarAnalyzer.CSharp/Rules/StaticFieldVisible.cs | 5 +++-- .../SonarAnalyzer.UnitTest/TestCases/StaticFieldVisible.cs | 3 +-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/analyzers/src/SonarAnalyzer.CSharp/Rules/StaticFieldVisible.cs b/analyzers/src/SonarAnalyzer.CSharp/Rules/StaticFieldVisible.cs index f74c67be822..839ff9c5d94 100644 --- a/analyzers/src/SonarAnalyzer.CSharp/Rules/StaticFieldVisible.cs +++ b/analyzers/src/SonarAnalyzer.CSharp/Rules/StaticFieldVisible.cs @@ -49,8 +49,9 @@ public sealed class StaticFieldVisible : SonarDiagnosticAnalyzer : Enumerable.Empty(); private static bool FieldIsRelevant(FieldDeclarationSyntax node) => - !node.Modifiers.Any(SyntaxKind.PrivateKeyword) - && node.Modifiers.Any(SyntaxKind.StaticKeyword) + node.Modifiers.Any(SyntaxKind.StaticKeyword) + && node.Modifiers.Count > 1 + && !node.Modifiers.Any(SyntaxKind.PrivateKeyword) && !node.Modifiers.Any(SyntaxKind.ReadOnlyKeyword); private static bool FieldIsThreadSafe(IFieldSymbol fieldSymbol) => diff --git a/analyzers/tests/SonarAnalyzer.UnitTest/TestCases/StaticFieldVisible.cs b/analyzers/tests/SonarAnalyzer.UnitTest/TestCases/StaticFieldVisible.cs index 2d14a810fa8..eb67997293f 100644 --- a/analyzers/tests/SonarAnalyzer.UnitTest/TestCases/StaticFieldVisible.cs +++ b/analyzers/tests/SonarAnalyzer.UnitTest/TestCases/StaticFieldVisible.cs @@ -20,8 +20,7 @@ public class StaticFieldVisible private static double Pi8 = 3.14; private double Pi9 = 3.14; - static double Pi10 = 3.14; // Noncompliant "internal" is the default if no access modifier is specified - // https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/access-modifiers + static double Pi10 = 3.14; // Compliant - if not access modifier exist the field is private public readonly double Pi11 = 3.14; [ThreadStatic]