From 73f5639364072ef8c7aef88f1932bff5c561d61e Mon Sep 17 00:00:00 2001 From: mary-georgiou-sonarsource Date: Thu, 16 Feb 2023 14:55:18 +0100 Subject: [PATCH] more UTS --- .../src/SonarAnalyzer.CSharp/Rules/StaticFieldVisible.cs | 3 ++- .../SonarAnalyzer.UnitTest/TestCases/StaticFieldVisible.cs | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/analyzers/src/SonarAnalyzer.CSharp/Rules/StaticFieldVisible.cs b/analyzers/src/SonarAnalyzer.CSharp/Rules/StaticFieldVisible.cs index 786665489da..5d1d9e071fc 100644 --- a/analyzers/src/SonarAnalyzer.CSharp/Rules/StaticFieldVisible.cs +++ b/analyzers/src/SonarAnalyzer.CSharp/Rules/StaticFieldVisible.cs @@ -49,7 +49,8 @@ public sealed class StaticFieldVisible : SonarDiagnosticAnalyzer : Enumerable.Empty(); private static bool FieldIsRelevant(FieldDeclarationSyntax node) => - !node.Modifiers.Any(SyntaxKind.PrivateKeyword) + node.Modifiers.Any() + && !node.Modifiers.Any(SyntaxKind.PrivateKeyword) && node.Modifiers.Any(SyntaxKind.StaticKeyword) && !(node.Modifiers.Any(SyntaxKind.ConstKeyword) || node.Modifiers.Any(SyntaxKind.ReadOnlyKeyword)); diff --git a/analyzers/tests/SonarAnalyzer.UnitTest/TestCases/StaticFieldVisible.cs b/analyzers/tests/SonarAnalyzer.UnitTest/TestCases/StaticFieldVisible.cs index ff8a597f6f3..371ba25e890 100644 --- a/analyzers/tests/SonarAnalyzer.UnitTest/TestCases/StaticFieldVisible.cs +++ b/analyzers/tests/SonarAnalyzer.UnitTest/TestCases/StaticFieldVisible.cs @@ -18,6 +18,11 @@ public class StaticFieldVisible internal static double Pi6 = 3.14; // Noncompliant protected internal static double Pi7 = 3.14; // Noncompliant + 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 + [ThreadStatic] public static int value; // Compliant, thread static field values are not shared between threads }