From dfd0ed4bab23b590a297fbbb9582ba026df45833 Mon Sep 17 00:00:00 2001 From: Dennis Fischer Date: Wed, 12 Aug 2015 11:52:45 +0200 Subject: [PATCH 1/2] Add regression test for SA1013 reporting on anonymous types in indexers --- .../SpacingRules/SA1013UnitTests.cs | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/StyleCop.Analyzers/StyleCop.Analyzers.Test/SpacingRules/SA1013UnitTests.cs b/StyleCop.Analyzers/StyleCop.Analyzers.Test/SpacingRules/SA1013UnitTests.cs index 911cfd31f..0db22818d 100644 --- a/StyleCop.Analyzers/StyleCop.Analyzers.Test/SpacingRules/SA1013UnitTests.cs +++ b/StyleCop.Analyzers/StyleCop.Analyzers.Test/SpacingRules/SA1013UnitTests.cs @@ -337,6 +337,31 @@ public void TestMethod2() await this.VerifyCSharpFixAsync(testCode, fixedCode).ConfigureAwait(false); } + /// + /// Verifies that the analyzer will properly handle anonymous classes in indexers. + /// This is a regression test for DotNetAnalyzers/StyleCopAnalyzers#1191 + /// + /// A representing the asynchronous unit test. + [Fact] + public async Task TestIndexersAsync() + { + var testCode = @"namespace TestNamespace +{ + public class TestClass + { + public void TestMethod() + { + var dictionary = new System.Collections.Generic.Dictionary(); + dictionary[new { Foo = ""Foo"", Bar = 5 }] = 42; + } + } +} +"; + + // no space between closing curly bracket and closing bracket should not be reported by SA1013 + await this.VerifyCSharpDiagnosticAsync(testCode, EmptyDiagnosticResults, CancellationToken.None).ConfigureAwait(false); + } + /// protected override IEnumerable GetCSharpDiagnosticAnalyzers() { From 99ec86491c1b83e79fab193cb44673fca8ecfbf3 Mon Sep 17 00:00:00 2001 From: Dennis Fischer Date: Wed, 12 Aug 2015 11:58:04 +0200 Subject: [PATCH 2/2] Fix that SA1013 reports on anonymous types in indexers --- .../SA1013ClosingCurlyBracketsMustBeSpacedCorrectly.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/StyleCop.Analyzers/StyleCop.Analyzers/SpacingRules/SA1013ClosingCurlyBracketsMustBeSpacedCorrectly.cs b/StyleCop.Analyzers/StyleCop.Analyzers/SpacingRules/SA1013ClosingCurlyBracketsMustBeSpacedCorrectly.cs index de54eb9ee..a6c399188 100644 --- a/StyleCop.Analyzers/StyleCop.Analyzers/SpacingRules/SA1013ClosingCurlyBracketsMustBeSpacedCorrectly.cs +++ b/StyleCop.Analyzers/StyleCop.Analyzers/SpacingRules/SA1013ClosingCurlyBracketsMustBeSpacedCorrectly.cs @@ -104,7 +104,8 @@ private static void HandleCloseBraceToken(SyntaxTreeAnalysisContext context, Syn || nextToken.IsKind(SyntaxKind.CommaToken) || nextToken.IsKind(SyntaxKind.SemicolonToken) || nextToken.IsKind(SyntaxKind.DotToken) - || (nextToken.IsKind(SyntaxKind.QuestionToken) && nextToken.GetNextToken(includeZeroWidth: true).IsKind(SyntaxKind.DotToken)); + || (nextToken.IsKind(SyntaxKind.QuestionToken) && nextToken.GetNextToken(includeZeroWidth: true).IsKind(SyntaxKind.DotToken)) + || nextToken.IsKind(SyntaxKind.CloseBracketToken); } else {