diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3a63125..00cf88a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -6,12 +6,10 @@ on: branches: - main - feature/* + - hotfix/* tags: - "[0-9]+.[0-9]+.[0-9]+" - "[0-9]+.[0-9]+.[0-9]+-**" - pull_request: - branches: - - main jobs: test: diff --git a/src/AutoCtor.Shared/AttributeSourceGenerator/Emitter.cs b/src/AutoCtor.Shared/AttributeSourceGenerator/Emitter.cs index 016a2f5..294f975 100644 --- a/src/AutoCtor.Shared/AttributeSourceGenerator/Emitter.cs +++ b/src/AutoCtor.Shared/AttributeSourceGenerator/Emitter.cs @@ -18,7 +18,7 @@ public static SourceText GenerateSource() using (source.StartBlock("namespace AutoCtor")) { source.AddCompilerGeneratedAttribute().AddGeneratedCodeAttribute(); - using (source.StartBlock("public enum GuardSetting")) + using (source.StartBlock("internal enum GuardSetting")) { source.AppendLine("Default,"); source.AppendLine("Disabled,"); diff --git a/src/AutoCtor.Tests/GeneratedAttributeTests.AttributeGeneratedCode#AutoConstructAttribute.g.verified.cs b/src/AutoCtor.Tests/GeneratedAttributeTests.AttributeGeneratedCode#AutoConstructAttribute.g.verified.cs index a15f4a3..3d65940 100644 --- a/src/AutoCtor.Tests/GeneratedAttributeTests.AttributeGeneratedCode#AutoConstructAttribute.g.verified.cs +++ b/src/AutoCtor.Tests/GeneratedAttributeTests.AttributeGeneratedCode#AutoConstructAttribute.g.verified.cs @@ -9,7 +9,7 @@ namespace AutoCtor { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute] - public enum GuardSetting + internal enum GuardSetting { Default, Disabled, diff --git a/src/AutoCtor.Tests/GeneratedAttributeTests.cs b/src/AutoCtor.Tests/GeneratedAttributeTests.cs index 35badc7..9e7be95 100644 --- a/src/AutoCtor.Tests/GeneratedAttributeTests.cs +++ b/src/AutoCtor.Tests/GeneratedAttributeTests.cs @@ -51,4 +51,31 @@ public async Task PreserveAttributesTest() Assert.Empty(diagnostics); Assert.Empty(outputCompilation.GetDiagnostics()); } + + [Fact] + public async Task EnsureGeneratedAttributesAreNotExternallyVisible() + { + // Issue 312 + var compileBuilder = new CompilationBuilder() + .AddNetCoreReference() + .WithPreprocessorSymbols(["AUTOCTOR_EMBED_ATTRIBUTES"]); + + var genDriver = new GeneratorDriverBuilder() + .AddGenerator(new AttributeSourceGenerator()) + .Build(compileBuilder.ParseOptions); + + var projectA = await compileBuilder + .Build("ProjectA"); + + genDriver = genDriver.RunGeneratorsAndUpdateCompilation(projectA, out var genProjectA, out _); + + var projectB = await compileBuilder + .AddCompilationReference(genProjectA) + .Build("ProjectB"); + + genDriver.RunGeneratorsAndUpdateCompilation(projectB, out var outputCompilation, out var diagnostics); + + Assert.Empty(diagnostics); + Assert.Empty(outputCompilation.GetDiagnostics()); + } } diff --git a/src/AutoCtor.Tests/Utilities/CompilationBuilder.cs b/src/AutoCtor.Tests/Utilities/CompilationBuilder.cs index 25bd290..85ab6b5 100644 --- a/src/AutoCtor.Tests/Utilities/CompilationBuilder.cs +++ b/src/AutoCtor.Tests/Utilities/CompilationBuilder.cs @@ -78,7 +78,7 @@ public CompilationBuilder AddAssemblyReference() }; } - public CompilationBuilder AddCompilationReference(CSharpCompilation compilation) + public CompilationBuilder AddCompilationReference(Compilation compilation) { return new(this) {