Skip to content

Fix net8.0 compatibility#204

Merged
PhenX merged 2 commits intomasterfrom
fix-net10-sdk-requirement
Apr 28, 2026
Merged

Fix net8.0 compatibility#204
PhenX merged 2 commits intomasterfrom
fix-net10-sdk-requirement

Conversation

@PhenX
Copy link
Copy Markdown
Member

@PhenX PhenX commented Apr 27, 2026

No description provided.

@PhenX PhenX requested a review from Copilot April 27, 2026 20:59
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

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 source generator and build configuration to better handle differences between Roslyn versions (notably around C# 14 extension members) and to avoid newer language/library constructs that break older builds, improving overall net8.0-targeted compatibility.

Changes:

  • Adds ROSLYN_5_0_OR_LATER-gated code paths for C# 14 extension-member handling (and safe skipping when unsupported).
  • Introduces RoslynAnalyzerVersion auto-detection to select appropriate Microsoft.CodeAnalysis.* package versions.
  • Replaces collection-expression-based ImmutableArray initializations with ImmutableArray.Create(...) / .ToImmutableArray().

Reviewed changes

Copilot reviewed 13 out of 13 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/EntityFrameworkCore.Projectables.Generator/SyntaxRewriters/ExpressionSyntaxRewriter.cs Guards extension-parameter identifier rewriting behind ROSLYN_5_0_OR_LATER.
src/EntityFrameworkCore.Projectables.Generator/ProjectionExpressionGenerator.cs Adds pre-Roslyn-5 guards to skip unsupported member containers; adjusts registry parameter-type collection.
src/EntityFrameworkCore.Projectables.Generator/Interpretation/ProjectableInterpreter.cs Makes extension-member detection conditional on Roslyn 5+ APIs.
src/EntityFrameworkCore.Projectables.Generator/Interpretation/ProjectableInterpreter.MemberBodyResolver.cs Guards extension-block logic behind Roslyn 5+ and provides safe fallback behavior.
src/EntityFrameworkCore.Projectables.Generator/Interpretation/ProjectableInterpreter.Helpers.cs No-ops extension-block type-parameter promotion when Roslyn 5+ APIs aren’t available.
src/EntityFrameworkCore.Projectables.Generator/Interpretation/ProjectableInterpreter.BodyProcessors.cs Makes extension-member detection conditional on Roslyn 5+ APIs.
src/EntityFrameworkCore.Projectables.Generator/EntityFrameworkCore.Projectables.Generator.csproj Defines ROSLYN_5_0_OR_LATER when building with .NET SDK 10+.
src/EntityFrameworkCore.Projectables.CodeFixes/NullConditionalRewriteUnsupportedCodeFixProvider.cs Avoids collection expression for FixableDiagnosticIds.
src/EntityFrameworkCore.Projectables.CodeFixes/MissingParameterlessConstructorCodeFixProvider.cs Avoids collection expression for FixableDiagnosticIds.
src/EntityFrameworkCore.Projectables.CodeFixes/FactoryMethodToCtorCodeFixProvider.cs Avoids collection expression for FixableDiagnosticIds.
src/EntityFrameworkCore.Projectables.CodeFixes/BlockBodyExperimentalCodeFixProvider.cs Avoids collection expression for FixableDiagnosticIds.
Directory.Packages.props Uses $(RoslynAnalyzerVersion) for Roslyn package versions; adds a fallback value.
Directory.Build.props Auto-detects RoslynAnalyzerVersion from SDK major version.

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