diff --git a/ChangeLog.md b/ChangeLog.md index ec95c3cd59..25280d1785 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Fixed + +- Fix analyzer [RCS0053](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS0053) ([PR](https://github.com/dotnet/roslynator/pull/1518)) + ## [4.12.5] - 2024-09-13 ### Fixed diff --git a/src/Formatting.Analyzers/CSharp/FixFormattingOfListAnalyzer.cs b/src/Formatting.Analyzers/CSharp/FixFormattingOfListAnalyzer.cs index 15e9cfcb08..2d464d8257 100644 --- a/src/Formatting.Analyzers/CSharp/FixFormattingOfListAnalyzer.cs +++ b/src/Formatting.Analyzers/CSharp/FixFormattingOfListAnalyzer.cs @@ -428,6 +428,9 @@ static bool AnalyzeToken(SyntaxToken token, bool isOpen) return true; } + if (token.IsParentKind(SyntaxKind.SwitchExpression)) + return true; + if (token.IsParentKind(SyntaxKind.ObjectInitializerExpression) && token.Parent.Parent.IsKind( SyntaxKind.ObjectCreationExpression, diff --git a/src/Tests/Formatting.Analyzers.Tests/RCS0053FixFormattingOfListTests.cs b/src/Tests/Formatting.Analyzers.Tests/RCS0053FixFormattingOfListTests.cs index 047f4ff7be..1894c81d83 100644 --- a/src/Tests/Formatting.Analyzers.Tests/RCS0053FixFormattingOfListTests.cs +++ b/src/Tests/Formatting.Analyzers.Tests/RCS0053FixFormattingOfListTests.cs @@ -1359,6 +1359,25 @@ public string M2(string value, string[] values) } } +"""); + } + + [Fact, Trait(Traits.Analyzer, DiagnosticIdentifiers.FixFormattingOfList)] + public async Task TestNoDiagnostic_Multiline_SwitchExpression() + { + await VerifyNoDiagnosticAsync(""" +using System; + +class C +{ + string M(string value) => + M(value switch + { + "a" => "a", + "b" => "b", + _ => throw new Exception() + }); +} """); } }