diff --git a/src/CSharp/CSharp/SyntaxTriviaAnalysis.cs b/src/CSharp/CSharp/SyntaxTriviaAnalysis.cs index f991f94eee..941ac97013 100644 --- a/src/CSharp/CSharp/SyntaxTriviaAnalysis.cs +++ b/src/CSharp/CSharp/SyntaxTriviaAnalysis.cs @@ -407,6 +407,10 @@ public static int DetermineIndentationSize(SyntaxNode node, CancellationToken ca if (size > 0) return size; + break; + } + case GlobalStatementSyntax: + { break; } default: @@ -431,9 +435,7 @@ public static int DetermineIndentationSize(SyntaxNode node, CancellationToken ca int DetermineIndentationSize(CompilationUnitSyntax compilationUnit) { - MemberDeclarationSyntax member = compilationUnit.Members.FirstOrDefault(); - - if (member != null) + foreach (MemberDeclarationSyntax member in compilationUnit.Members) { if (member is NamespaceDeclarationSyntax namespaceDeclaration) { diff --git a/src/Tests/Formatting.Analyzers.Tests/RCS0054FixFormattingOfCallChainTests.cs b/src/Tests/Formatting.Analyzers.Tests/RCS0054FixFormattingOfCallChainTests.cs index 80a6691d87..f5c98881ce 100644 --- a/src/Tests/Formatting.Analyzers.Tests/RCS0054FixFormattingOfCallChainTests.cs +++ b/src/Tests/Formatting.Analyzers.Tests/RCS0054FixFormattingOfCallChainTests.cs @@ -228,6 +228,24 @@ C M(string s) "); } + [Fact, Trait(Traits.Analyzer, DiagnosticIdentifiers.FixFormattingOfCallChain)] + public async Task Test_TopLevelStatement() + { + await VerifyNoDiagnosticAsync(@" +using System; + +Console + .WriteLine(); + +class Program +{ + void Main(string[] args) + { + } +} +", options: Options.WithCompilationOptions(Options.CompilationOptions.WithOutputKind(OutputKind.ConsoleApplication))); + } + [Fact, Trait(Traits.Analyzer, DiagnosticIdentifiers.FixFormattingOfCallChain)] public async Task TestNoDiagnostic() {