diff --git a/analyzers/tests/SonarAnalyzer.UnitTest/Rules/ArrayPassedAsParamsTest.cs b/analyzers/tests/SonarAnalyzer.UnitTest/Rules/ArrayPassedAsParamsTest.cs index 09a1314371c..10dc11973bd 100644 --- a/analyzers/tests/SonarAnalyzer.UnitTest/Rules/ArrayPassedAsParamsTest.cs +++ b/analyzers/tests/SonarAnalyzer.UnitTest/Rules/ArrayPassedAsParamsTest.cs @@ -43,18 +43,7 @@ public void ArrayPassedAsParams_CSharp9() => [TestMethod] public void ArrayPassedAsParams_CSharp12() => - builderCS.AddSnippet(""" - _ = new MyClass(1, [1, 2, 3]); // Noncompliant - _ = new MyClass(1, []); // Noncompliant - _ = new MyClass2([1], [1, 2, 3]); // Noncompliant - _ = new MyClass2([1, 2, 3], 1); - _ = new MyClass3([1, 2, 3], [4, 5, 6]); // Noncompliant FP - _ = new MyClass3([[1, 2, 3], [4, 5, 6]]); // Noncompliant - - class MyClass(int a, params int[] args); - class MyClass2(int[] a, params int[] args); - class MyClass3(params int[][] args); - """) + builderCS.AddPaths("ArrayPassedAsParams.CSharp12.cs") .WithOptions(ParseOptionsHelper.FromCSharp12) .WithTopLevelStatements() .Verify(); diff --git a/analyzers/tests/SonarAnalyzer.UnitTest/TestCases/ArrayPassedAsParams.CSharp12.cs b/analyzers/tests/SonarAnalyzer.UnitTest/TestCases/ArrayPassedAsParams.CSharp12.cs new file mode 100644 index 00000000000..57544925525 --- /dev/null +++ b/analyzers/tests/SonarAnalyzer.UnitTest/TestCases/ArrayPassedAsParams.CSharp12.cs @@ -0,0 +1,20 @@ +using System; + +const int a = 1; +int[] array = [2, 3]; + +_ = new MyClass(1, [1, 2, 3]); // Noncompliant +_ = new MyClass(1, []); // Noncompliant + +// repro for https://github.com/SonarSource/sonar-dotnet/issues/8510 +_ = new MyClass(1, [a, .. array]); // Noncompliant FP + +_ = new MyClass2([1], [1, 2, 3]); // Noncompliant +_ = new MyClass2([1, 2, 3], 1); +_ = new MyClass3([1, 2, 3], [4, 5, 6]); // Noncompliant FP +_ = new MyClass3([[1, 2, 3], [4, 5, 6]]); // Noncompliant +_ = new MyClass3([[1, 2, 3], [4, 5, 6]]); // Noncompliant + +class MyClass(int a, params int[] args); +class MyClass2(int[] a, params int[] args); +class MyClass3(params int[][] args);