Skip to content

Commit 164a00d

Browse files
committed
Fix support for object initializers in interpolations
Fixes #3461
1 parent 61b5930 commit 164a00d

2 files changed

Lines changed: 10 additions & 3 deletions

File tree

StyleCop.Analyzers/StyleCop.Analyzers.Test/SpacingRules/SA1013UnitTests.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public async Task TestStringInterpolationAsync()
5252
{
5353
public class TestClass
5454
{
55-
public void TestMethod()
55+
public void TestMethod(int a, int b)
5656
{
5757
var test = 2;
5858
var x = $""{test}"";
@@ -61,6 +61,8 @@ public void TestMethod()
6161
x = $""({test} )"";
6262
x = $""{test {|#0:}|}"";
6363
x = $""{test {|#1:}|} "";
64+
x = $""{new { a, b{|#2:}|}}"";
65+
x = $""{new { a, b } {|#3:}|}"";
6466
}
6567
}
6668
}
@@ -70,7 +72,7 @@ public void TestMethod()
7072
{
7173
public class TestClass
7274
{
73-
public void TestMethod()
75+
public void TestMethod(int a, int b)
7476
{
7577
var test = 2;
7678
var x = $""{test}"";
@@ -79,6 +81,8 @@ public void TestMethod()
7981
x = $""({test} )"";
8082
x = $""{test}"";
8183
x = $""{test} "";
84+
x = $""{new { a, b }}"";
85+
x = $""{new { a, b }}"";
8286
}
8387
}
8488
}
@@ -88,6 +92,8 @@ public void TestMethod()
8892
{
8993
Diagnostic().WithLocation(0).WithArguments(" not", "preceded"),
9094
Diagnostic().WithLocation(1).WithArguments(" not", "preceded"),
95+
Diagnostic().WithLocation(2).WithArguments(string.Empty, "preceded"),
96+
Diagnostic().WithLocation(3).WithArguments(" not", "preceded"),
9197
};
9298

9399
await VerifyCSharpFixAsync(testCode, expected, fixedCode, CancellationToken.None).ConfigureAwait(false);

StyleCop.Analyzers/StyleCop.Analyzers/SpacingRules/SA1013ClosingBracesMustBeSpacedCorrectly.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,8 @@ private static void HandleCloseBraceToken(SyntaxTreeAnalysisContext context, Syn
105105
|| (nextToken.IsKind(SyntaxKind.QuestionToken) && nextToken.GetNextToken(includeZeroWidth: true).IsKind(SyntaxKind.DotToken))
106106
|| nextToken.IsKind(SyntaxKind.CloseBracketToken)
107107
|| (nextToken.IsKind(SyntaxKind.ColonToken) && nextToken.Parent.IsKind(SyntaxKindEx.CasePatternSwitchLabel))
108-
|| (nextToken.IsKind(SyntaxKind.ExclamationToken) && nextToken.Parent.IsKind(SyntaxKindEx.SuppressNullableWarningExpression));
108+
|| (nextToken.IsKind(SyntaxKind.ExclamationToken) && nextToken.Parent.IsKind(SyntaxKindEx.SuppressNullableWarningExpression))
109+
|| (nextToken.IsKind(SyntaxKind.CloseBraceToken) && nextToken.Parent.IsKind(SyntaxKind.Interpolation));
109110
}
110111
else
111112
{

0 commit comments

Comments
 (0)