Extensions: improve error recovery in older language versions#80206
Merged
jcouv merged 1 commit intodotnet:mainfrom Sep 11, 2025
Merged
Extensions: improve error recovery in older language versions#80206jcouv merged 1 commit intodotnet:mainfrom
jcouv merged 1 commit intodotnet:mainfrom
Conversation
5 tasks
jcouv
commented
Sep 10, 2025
| diagnostics.Add(ErrorCode.ERR_MemberNeedsType, location); | ||
| if (syntax.Identifier.Text == "extension") | ||
| { | ||
| bool reported = !MessageID.IDS_FeatureExtensions.CheckFeatureAvailability(diagnostics, syntax); |
Member
Author
There was a problem hiding this comment.
📝 I intentionally didn't introduce a dedicated error message for this niche scenario, where the user intends to write a constructor but accidentally named it "extension" or should have named the type "extension". I think it's safe to assume the user wants an extension block
jjonescz
reviewed
Sep 11, 2025
| UsingTree(""" | ||
| class C | ||
| var src = """ | ||
| static class C |
Member
There was a problem hiding this comment.
Is the langver error not given if the containing class is not static?
Member
Author
There was a problem hiding this comment.
It would, but you'd also get an error (extension must be inside a static class) which isn't relevant to this test
jjonescz
approved these changes
Sep 11, 2025
333fred
added a commit
to 333fred/roslyn
that referenced
this pull request
Sep 11, 2025
* upstream/main: (233 commits) Extensions: add SyntaxGenerator support and AssociatedExtensionImplementation API (dotnet#80170) Fix error when hoisting a non-ref call (dotnet#80138) Ensure that refkinds are rewritten for complex methods (dotnet#79916) Revert Do not go through the workspace to access services DefiniteAssignmentPass.MarkFieldsUsed - avoid infinite recursion due to generic substitution (dotnet#80135) Reduce allocations in AnalyzerDriver.TryExecuteSymbolEndActions (dotnet#79855) RefSafetyAnalysis: Fix handling of nested deconstruction utilizing modern extensions (dotnet#80231) Extensions: adjust rewriting of anonymous type property symbols (dotnet#80211) Extensions: Move public APIs into INamedTypeSymbol (dotnet#80230) Extensions: improve error recovery in older language versions (dotnet#80206) Fall back to `dotnet exec` if apphost does not exist (dotnet#80153) Update dependencies from https://github.com/dotnet/dotnet build 282708 (dotnet#80228) Add a workaround for microsoft/vs-mef#620 Revert "FailFast if the MEF composition is clearly broken" switch from windows combobox to visualstudio combobox (dotnet#80219) Update System.Text.Json in packages which use 4.12 Roslyn (dotnet#80197) add flags to unblock CI (dotnet#80222) Move static members to another type - qualifies static member references in the moved members (dotnet#80178) Fix broken link for C# 14 lambda parameter modifiers ...
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Addresses part of #78961 ("we should probably have better error recovery in older LangVer so that we can offer a dedicated diagnostic to trigger UpgradeProject")
Relates to test plan #76130