diff --git a/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/Runtime/SealInternalTypes.cs b/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/Runtime/SealInternalTypes.cs index c5e190bc51..f70db6761c 100644 --- a/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/Runtime/SealInternalTypes.cs +++ b/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/Runtime/SealInternalTypes.cs @@ -60,7 +60,8 @@ private static void OnCompilationStart(CompilationStartAnalysisContext context) !type.IsStatic && !type.IsSealed && !type.IsExternallyVisible() && - !type.HasAttribute(comImportAttributeType)) + !type.HasAttribute(comImportAttributeType) && + !type.IsTopLevelStatementsEntryPointType()) { candidateTypes.Add(type); } diff --git a/src/NetAnalyzers/UnitTests/Microsoft.NetCore.Analyzers/Runtime/SealInternalTypesTests.cs b/src/NetAnalyzers/UnitTests/Microsoft.NetCore.Analyzers/Runtime/SealInternalTypesTests.cs index 7cd34e816c..d76cd4f4df 100644 --- a/src/NetAnalyzers/UnitTests/Microsoft.NetCore.Analyzers/Runtime/SealInternalTypesTests.cs +++ b/src/NetAnalyzers/UnitTests/Microsoft.NetCore.Analyzers/Runtime/SealInternalTypesTests.cs @@ -2,6 +2,7 @@ using System.Threading.Tasks; using Microsoft.CodeAnalysis; +using Test.Utilities; using Xunit; using VerifyCS = Test.Utilities.CSharpCodeFixVerifier< @@ -202,6 +203,20 @@ End Class #endregion #region No Diagnostic + [Fact, WorkItem(6141, "https://github.com/dotnet/roslyn-analyzers/issues/6141")] + public Task TopLevelStatementsProgram(string accessModifier) + { + await new VerifyCS.Test() + { + TestState = + { + Sources = { "System.Console.WriteLine();" }, + OutputKind = OutputKind.ConsoleApplication, + }, + LanguageVersion = CodeAnalysis.CSharp.LanguageVersion.CSharp9, + }.RunAsync(); + } + [Fact] public Task PublicClassType_NoDiagnostic_CS() {