Skip to content

Apply source generators to primary project only - #1236

Open
kzrnm wants to merge 2 commits into
dotnet:mainfrom
kzrnm:NoGenerateInAdditionalProjects
Open

Apply source generators to primary project only#1236
kzrnm wants to merge 2 commits into
dotnet:mainfrom
kzrnm:NoGenerateInAdditionalProjects

Conversation

@kzrnm

@kzrnm kzrnm commented Nov 15, 2025

Copy link
Copy Markdown
Contributor

In VerifyDiagnosticsAsync, analyzers and generators are also applied to AdditionalProjects.
I don’t think this produces the intended test behavior.
More importantly, it’s inconsistent with VerifySourceGeneratorAsync, where generators are applied only to the primary project.

https://github.com/dotnet/roslyn-sdk/blob/f500e81ba5596809e711a3022bf8e80a00c8371b/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.Analyzer.Testing/AnalyzerTest%601.cs#L273C66-L283

@kzrnm
kzrnm requested a review from a team as a code owner November 15, 2025 17:05
@kzrnm
kzrnm force-pushed the NoGenerateInAdditionalProjects branch from d3b37f8 to 631988a Compare November 15, 2025 17:08
@kzrnm
kzrnm force-pushed the NoGenerateInAdditionalProjects branch from 631988a to 32bde08 Compare November 15, 2025 17:10
@JoeRobich
JoeRobich requested a review from Copilot July 1, 2026 00:29

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the analyzer+generator test harness so source generators are only applied to the primary test project (matching how VerifySourceGeneratorAsync behaves), and adds a regression test ensuring additional projects don’t get generator output/diagnostics.

Changes:

  • Apply source generators only when compiling the primary project in GetProjectCompilationAsync.
  • Add a unit test covering generator diagnostics behavior with AdditionalProjects present.
Show a summary per file
File Description
tests/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.Analyzer.Testing.UnitTests/SourceGeneratorTests.cs Adds a regression test verifying generators/diagnostics are not applied to additional projects.
src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.Analyzer.Testing/AnalyzerTest`1.cs Gates generator application to the default primary test project during diagnostic verification compilation.

Copilot's findings

Tip

Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

  • Files reviewed: 2/2 changed files
  • Comments generated: 0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants