From 0d459d4da6cd30f75e0b98f6cd042e185cab60c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Hellander?= Date: Tue, 26 Apr 2022 15:52:59 +0200 Subject: [PATCH] Updated SA1015 analyzer to handle generic attributes (c# 11 preview) #3487 --- .../SpacingRules/SA1015CSharp11UnitTests.cs | 27 +++++++++++++++++++ ...ingGenericBracketsMustBeSpacedCorrectly.cs | 3 +++ 2 files changed, 30 insertions(+) diff --git a/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp11/SpacingRules/SA1015CSharp11UnitTests.cs b/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp11/SpacingRules/SA1015CSharp11UnitTests.cs index b553d9106..d0f38d927 100644 --- a/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp11/SpacingRules/SA1015CSharp11UnitTests.cs +++ b/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp11/SpacingRules/SA1015CSharp11UnitTests.cs @@ -5,9 +5,36 @@ namespace StyleCop.Analyzers.Test.CSharp11.SpacingRules { + using System.Threading; + using System.Threading.Tasks; + using Microsoft.CodeAnalysis.Testing; using StyleCop.Analyzers.Test.CSharp10.SpacingRules; + using Xunit; + + using static StyleCop.Analyzers.Test.Verifiers.StyleCopCodeFixVerifier< + StyleCop.Analyzers.SpacingRules.SA1015ClosingGenericBracketsMustBeSpacedCorrectly, + StyleCop.Analyzers.SpacingRules.TokenSpacingCodeFixProvider>; public class SA1015CSharp11UnitTests : SA1015CSharp10UnitTests { + [Fact] + [WorkItem(3487, "https://github.com/DotNetAnalyzers/StyleCopAnalyzers/issues/3487")] + public async Task TestGenericAttributeAsync() + { + var testCode = $@" +using System; + +public class MyAttribute : Attribute +{{ +}} + +public class MyClass +{{ + [MyAttribute] + public double MyDouble {{ get; set; }} +}}"; + + await VerifyCSharpDiagnosticAsync(testCode, DiagnosticResult.EmptyDiagnosticResults, CancellationToken.None).ConfigureAwait(false); + } } } diff --git a/StyleCop.Analyzers/StyleCop.Analyzers/SpacingRules/SA1015ClosingGenericBracketsMustBeSpacedCorrectly.cs b/StyleCop.Analyzers/StyleCop.Analyzers/SpacingRules/SA1015ClosingGenericBracketsMustBeSpacedCorrectly.cs index 4e29dc1a8..2fd8aa85b 100644 --- a/StyleCop.Analyzers/StyleCop.Analyzers/SpacingRules/SA1015ClosingGenericBracketsMustBeSpacedCorrectly.cs +++ b/StyleCop.Analyzers/StyleCop.Analyzers/SpacingRules/SA1015ClosingGenericBracketsMustBeSpacedCorrectly.cs @@ -141,6 +141,9 @@ private static void HandleGreaterThanToken(SyntaxTreeAnalysisContext context, Sy // values[x as T] // ^^ case SyntaxKind.CloseBracketToken when nextToken.Parent.IsKind(SyntaxKind.BracketedArgumentList): + // [MyAttribute] + // ^^ + case SyntaxKind.CloseBracketToken when nextToken.Parent.IsKind(SyntaxKind.AttributeList): allowTrailingNoSpace = true; allowTrailingSpace = false; break;