Skip to content

Commit f313aaa

Browse files
committed
Update SA1010 tests for function pointers
1 parent ad8516a commit f313aaa

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp9/SpacingRules/SA1010CSharp9UnitTests.cs

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

44
namespace StyleCop.Analyzers.Test.CSharp9.SpacingRules
55
{
6+
using System.Threading;
7+
using System.Threading.Tasks;
68
using StyleCop.Analyzers.Test.CSharp8.SpacingRules;
9+
using Xunit;
10+
using static StyleCop.Analyzers.SpacingRules.SA1010OpeningSquareBracketsMustBeSpacedCorrectly;
11+
using static StyleCop.Analyzers.Test.Verifiers.StyleCopCodeFixVerifier<
12+
StyleCop.Analyzers.SpacingRules.SA1010OpeningSquareBracketsMustBeSpacedCorrectly,
13+
StyleCop.Analyzers.SpacingRules.TokenSpacingCodeFixProvider>;
714

815
public partial class SA1010CSharp9UnitTests : SA1010CSharp8UnitTests
916
{
17+
[Fact]
18+
[WorkItem(3970, "https://github.com/DotNetAnalyzers/StyleCopAnalyzers/issues/3970")]
19+
public async Task TestFunctionPointerCallingConventionBracketsAsync()
20+
{
21+
var testCode = @"public class TestClass
22+
{
23+
private unsafe delegate* unmanaged{|#0:[|} Cdecl]<void> field1;
24+
private unsafe delegate* unmanaged {|#1:[|}Cdecl]<void> field2;
25+
}
26+
";
27+
28+
var fixedCode = @"public class TestClass
29+
{
30+
private unsafe delegate* unmanaged[Cdecl]<void> field1;
31+
private unsafe delegate* unmanaged[Cdecl]<void> field2;
32+
}
33+
";
34+
35+
var expected = new[]
36+
{
37+
Diagnostic(DescriptorNotFollowed).WithLocation(0),
38+
Diagnostic(DescriptorNotPreceded).WithLocation(1),
39+
};
40+
41+
await VerifyCSharpFixAsync(testCode, expected, fixedCode, CancellationToken.None).ConfigureAwait(false);
42+
}
1043
}
1144
}

0 commit comments

Comments
 (0)