Skip to content

Commit aaa4a65

Browse files
authored
Merge branch 'main' into 'extensions' (#78374)
2 parents d35b797 + 1e3b7e0 commit aaa4a65

File tree

446 files changed

+9542
-3270
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

446 files changed

+9542
-3270
lines changed

docs/Language Feature Status.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,8 @@ efforts behind them.
1010

1111
| Feature | Branch | State | Developer | Reviewer | IDE Buddy | LDM Champ |
1212
| ------- | ------ | ----- | --------- | -------- | --------- | --------- |
13-
| [User Defined Compound Assignment Operators](https://github.com/dotnet/csharplang/issues/9101) | [UserDefinedCompoundAssignment](https://github.com/dotnet/roslyn/tree/features/UserDefinedCompoundAssignment) | [In Progress](https://github.com/dotnet/roslyn/issues/76934) | [AlekseyTs](https://github.com/AlekseyTs) | [333fred](https://github.com/333fred), [cston](https://github.com/cston) | TBD | [AlekseyTs](https://github.com/AlekseyTs) |
13+
| [User Defined Compound Assignment Operators](https://github.com/dotnet/csharplang/issues/9101) | [UserDefinedCompoundAssignment](https://github.com/dotnet/roslyn/tree/features/UserDefinedCompoundAssignment) | [In Progress](https://github.com/dotnet/roslyn/issues/76934) | [AlekseyTs](https://github.com/AlekseyTs) | [333fred](https://github.com/333fred), [cston](https://github.com/cston) | [CyrusNajmabadi](https://github.com/CyrusNajmabadi) | [AlekseyTs](https://github.com/AlekseyTs) |
1414
| Runtime Async | [runtime-async](https://github.com/dotnet/roslyn/tree/features/runtime-async) | [In Progress](https://github.com/dotnet/roslyn/issues/75960) | [333fred](https://github.com/333fred) | [jcouv](https://github.com/jcouv), [RikkiGibson](https://github.com/RikkiGibson) | | |
15-
| [Dictionary expressions](https://github.com/dotnet/csharplang/issues/8659) | [dictionary-expressions](https://github.com/dotnet/roslyn/tree/features/dictionary-expressions) | [In Progress](https://github.com/dotnet/roslyn/issues/76310) | [cston](https://github.com/cston), [CyrusNajmabadi](https://github.com/CyrusNajmabadi) | [333fred](https://github.com/333fred), [jcouv](https://github.com/jcouv) | [CyrusNajmabadi](https://github.com/CyrusNajmabadi) | [CyrusNajmabadi](https://github.com/CyrusNajmabadi) |
1615
| [`field` keyword in properties](https://github.com/dotnet/csharplang/issues/140) | [field-keyword](https://github.com/dotnet/roslyn/tree/features/field-keyword) | [Merged into 17.12p3](https://github.com/dotnet/roslyn/issues/57012) | [Youssef1313](https://github.com/Youssef1313), [cston](https://github.com/cston) | [333fred](https://github.com/333fred), [RikkiGibson](https://github.com/RikkiGibson) | [CyrusNajmabadi](https://github.com/CyrusNajmabadi) | [CyrusNajmabadi](https://github.com/CyrusNajmabadi) |
1716
| [First-class Span Types](https://github.com/dotnet/csharplang/issues/7905) | [FirstClassSpan](https://github.com/dotnet/roslyn/tree/features/FirstClassSpan) | [Merged into 17.13p1](https://github.com/dotnet/roslyn/issues/73445) | [jjonescz](https://github.com/jjonescz) | [cston](https://github.com/cston), [333fred](https://github.com/333fred) | | [333fred](https://github.com/333fred), [stephentoub](https://github.com/stephentoub) |
1817
| [Unbound generic types in `nameof`](https://github.com/dotnet/csharplang/issues/8480) | [PR](https://github.com/dotnet/roslyn/pull/75368) | [Merged into 17.13p2](https://github.com/dotnet/roslyn/pull/75368) | [CyrusNajmabadi](https://github.com/CyrusNajmabadi) | [jcouv](https://github.com/jcouv), [AlekseyTs](https://github.com/AlekseyTs) | [CyrusNajmabadi](https://github.com/CyrusNajmabadi) | [CyrusNajmabadi](https://github.com/CyrusNajmabadi) |
@@ -22,6 +21,7 @@ efforts behind them.
2221
| [Extensions](https://github.com/dotnet/csharplang/issues/8697) | [extensions](https://github.com/dotnet/roslyn/tree/features/extensions) | [Preview merged into 17.14p3](https://github.com/dotnet/roslyn/issues/76130) | [jcouv](https://github.com/jcouv), [AlekseyTs](https://github.com/AlekseyTs) | [jjonescz](https://github.com/jjonescz), TBD | [CyrusNajmabadi](https://github.com/CyrusNajmabadi) | [MadsTorgersen](https://github.com/MadsTorgersen) |
2322
| [Null-conditional assignment](https://github.com/dotnet/csharplang/issues/6045) | [null-conditional-assignment](https://github.com/dotnet/roslyn/tree/features/null-conditional-assignment) | [Merged into 17.14p3](https://github.com/dotnet/roslyn/issues/75554) | [RikkiGibson](https://github.com/RikkiGibson) | [cston](https://github.com/cston), [jjonescz](https://github.com/jjonescz) | [CyrusNajmabadi](https://github.com/CyrusNajmabadi) | [RikkiGibson](https://github.com/RikkiGibson) |
2423
| [Ignored directives](https://github.com/dotnet/csharplang/issues/8617) | [PR](https://github.com/dotnet/roslyn/pull/77696) | Merged into 17.14p3 | [jjonescz](https://github.com/jjonescz) | [RikkiGibson](https://github.com/RikkiGibson), [jaredpar](https://github.com/jaredpar) | [CyrusNajmabadi](https://github.com/CyrusNajmabadi) | [jaredpar](https://github.com/jaredpar) |
24+
| [Dictionary expressions](https://github.com/dotnet/csharplang/issues/8659) | [dictionary-expressions](https://github.com/dotnet/roslyn/tree/features/dictionary-expressions) | [Preview merged into 17.14p3](https://github.com/dotnet/roslyn/issues/76310) | [cston](https://github.com/cston), [CyrusNajmabadi](https://github.com/CyrusNajmabadi) | [333fred](https://github.com/333fred), [jcouv](https://github.com/jcouv) | [CyrusNajmabadi](https://github.com/CyrusNajmabadi) | [CyrusNajmabadi](https://github.com/CyrusNajmabadi) |
2525

2626
# Working Set VB
2727

docs/compilers/CSharp/Compiler Breaking Changes - DotNet 10.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -364,3 +364,41 @@ class extension { } // type may not be named "extension"
364364
class C<extension> { } // type parameter may not be named "extension"
365365
```
366366

367+
## Partial properties and events are now implicitly virtual and public
368+
369+
***Introduced in Visual Studio 2022 version 17.15***
370+
371+
We have fixed [an inconsistency](https://github.com/dotnet/roslyn/issues/77346)
372+
where partial interface properties and events would not be implicitly `virtual` and `public` unlike their non-partial equivalents.
373+
This inconsistency is however [preserved](./Deviations%20from%20Standard.md#interface-partial-methods) for partial interface methods to avoid a larger breaking change.
374+
Note that Visual Basic and other languages not supporting default interface members will start requiring to implement implicitly virtual `partial` interface members.
375+
376+
To keep the previous behavior, explicitly mark `partial` interface members as `private` (if they don't have any accessibility modifiers)
377+
and `sealed` (if they don't have the `private` modifier which implies `sealed`, and they don't already have modifier `virtual` or `sealed`).
378+
379+
```cs
380+
System.Console.Write(((I)new C()).P); // wrote 1 previously, writes 2 now
381+
382+
partial interface I
383+
{
384+
public partial int P { get; }
385+
public partial int P => 1; // implicitly virtual now
386+
}
387+
388+
class C : I
389+
{
390+
public int P => 2; // implements I.P
391+
}
392+
```
393+
394+
```cs
395+
System.Console.Write(((I)new C()).P); // inaccessible previously, writes 1 now
396+
397+
partial interface I
398+
{
399+
partial int P { get; } // implicitly public now
400+
partial int P => 1;
401+
}
402+
403+
class C : I;
404+
```

docs/compilers/CSharp/Deviations from Standard.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,3 +77,10 @@ The compiler is free to make assumptions about the shape and behavior of well-kn
7777
It may not check for unexpected constraints, `Obsolete` attribute, or `UnmanagedCallersOnly` attribute.
7878
It may perform some optimizations based on expectations that the types/members are well-behaved.
7979
Note: the compiler should remain resilient to missing well-known types/members.
80+
81+
# Interface partial methods
82+
83+
Interface partial methods are implicitly non-virtual,
84+
unlike non-partial interface methods and other interface partial member kinds,
85+
see [a related breaking change](./Compiler%20Breaking%20Changes%20-%20DotNet%2010.md#partial-properties-and-events-are-now-implicitly-virtual-and-public)
86+
and [LDM 2025-04-07](https://github.com/dotnet/csharplang/blob/main/meetings/2025/LDM-2025-04-07.md#breaking-change-discussion-making-partial-members-in-interfaces-virtual-andor-public).

eng/Directory.Packages.props

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,6 @@
145145
<PackageVersion Include="NuGet.ProjectModel" Version="6.8.0-rc.112" />
146146
<PackageVersion Include="Microsoft.TestPlatform.TranslationLayer" Version="$(MicrosoftNETTestSdkVersion)" />
147147
<PackageVersion Include="Microsoft.TestPlatform.ObjectModel" Version="$(MicrosoftNETTestSdkVersion)" />
148-
<PackageVersion Include="Microsoft.AspNetCore.Razor.ExternalAccess.RoslynWorkspace" Version="9.0.0-preview.25064.4" />
149148

150149
<!--
151150
Analyzers
@@ -231,7 +230,7 @@
231230
<PackageVersion Include="SQLitePCLRaw.provider.e_sqlite3.net45" Version="$(SqliteVersion)" />
232231

233232
<PackageVersion Include="Humanizer.Core" Version="$(HumanizerVersion)" />
234-
<PackageVersion Include="ICSharpCode.Decompiler" Version="8.2.0.7535" />
233+
<PackageVersion Include="ICSharpCode.Decompiler" Version="9.1.0.7988" />
235234
<PackageVersion Include="Microsoft.CodeAnalysis.Elfie" Version="1.0.0" />
236235

237236
<!--

eng/Publishing.props

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
1-
<?xml version="1.0" encoding="utf-8"?>
21
<Project>
3-
<PropertyGroup>
4-
<PublishingVersion>3</PublishingVersion>
5-
</PropertyGroup>
62

73
<PropertyGroup>
84
<PublishDependsOnTargets>_ResolvePublishRoslynNuGetPackages;$(PublishDependsOnTargets)</PublishDependsOnTargets>
95
</PropertyGroup>
106

7+
<!-- Update Artifacts with Kind=Package to have additional metadata item Category="ToolingPackage".
8+
Depending on channel configuration, this means that these assets could be pushed to a different feed. -->
9+
<ItemGroup>
10+
<Artifact Update="@(Artifact->WithMetadataValue('Kind', 'Package'))" Category="ToolingPackage" />
11+
</ItemGroup>
12+
1113
<!--
1214
During PR Validation we only need to publish symbols with Arcade,
1315
since our packages are published separately to the CoreXT feed.
@@ -32,4 +34,5 @@
3234
<ItemsToPushToBlobFeed Include="@(_SymbolPackagesToPush)" />
3335
</ItemGroup>
3436
</Target>
35-
</Project>
37+
38+
</Project>

eng/Version.Details.xml

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Dependencies>
3+
<Source Uri="https://github.com/dotnet/dotnet" Mapping="roslyn" Sha="58950550c5c2c7a2431595699b38fd0360fd63e9" BarId="265646" />
34
<ProductDependencies>
45
<!-- RoslynAnalyzers reference older builds of Roslyn and this is necessary for SourceBuild. -->
56
<Dependency Name="Microsoft.CodeAnalysis" Version="3.11.0">
@@ -13,9 +14,9 @@
1314
<SourceBuild RepoName="source-build-externals" ManagedOnly="true" />
1415
</Dependency>
1516
<!-- Intermediate is necessary for source build. -->
16-
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-reference-packages" Version="10.0.621601">
17+
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-reference-packages" Version="9.0.0-alpha.1.25223.3">
1718
<Uri>https://github.com/dotnet/source-build-reference-packages</Uri>
18-
<Sha>4b566314cf9602b77f25538a88b9c8175231c106</Sha>
19+
<Sha>19eb5ea4e5f9c4e5256843a92805c8c9e942207d</Sha>
1920
<SourceBuild RepoName="source-build-reference-packages" ManagedOnly="true" />
2021
</Dependency>
2122
<Dependency Name="System.CommandLine" Version="2.0.0-beta5.25210.1">
@@ -127,19 +128,19 @@
127128
</Dependency>
128129
</ProductDependencies>
129130
<ToolsetDependencies>
130-
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="9.0.0-beta.25204.5">
131+
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="9.0.0-beta.25225.6">
131132
<Uri>https://github.com/dotnet/arcade</Uri>
132-
<Sha>97cbc7361ff28b2948c8182720c166a744049f55</Sha>
133+
<Sha>bfbc858ba868b60fffaf7b2150f1d2165b01e786</Sha>
133134
</Dependency>
134135
<!-- Intermediate is necessary for source build. -->
135-
<Dependency Name="Microsoft.SourceBuild.Intermediate.arcade" Version="9.0.0-beta.25204.5">
136+
<Dependency Name="Microsoft.SourceBuild.Intermediate.arcade" Version="9.0.0-beta.25225.6">
136137
<Uri>https://github.com/dotnet/arcade</Uri>
137-
<Sha>97cbc7361ff28b2948c8182720c166a744049f55</Sha>
138+
<Sha>bfbc858ba868b60fffaf7b2150f1d2165b01e786</Sha>
138139
<SourceBuild RepoName="arcade" ManagedOnly="true" />
139140
</Dependency>
140-
<Dependency Name="Microsoft.DotNet.XliffTasks" Version="9.0.0-beta.25204.5">
141+
<Dependency Name="Microsoft.DotNet.XliffTasks" Version="9.0.0-beta.25225.6">
141142
<Uri>https://github.com/dotnet/arcade</Uri>
142-
<Sha>97cbc7361ff28b2948c8182720c166a744049f55</Sha>
143+
<Sha>bfbc858ba868b60fffaf7b2150f1d2165b01e786</Sha>
143144
</Dependency>
144145
<Dependency Name="Microsoft.DiaSymReader" Version="2.0.0">
145146
<Uri>https://github.com/dotnet/symreader</Uri>
@@ -155,9 +156,9 @@
155156
<Uri>https://github.com/dotnet/roslyn</Uri>
156157
<Sha>5d10d428050c0d6afef30a072c4ae68776621877</Sha>
157158
</Dependency>
158-
<Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="9.0.0-beta.25204.5">
159+
<Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="9.0.0-beta.25225.6">
159160
<Uri>https://github.com/dotnet/arcade</Uri>
160-
<Sha>97cbc7361ff28b2948c8182720c166a744049f55</Sha>
161+
<Sha>bfbc858ba868b60fffaf7b2150f1d2165b01e786</Sha>
161162
</Dependency>
162163
<Dependency Name="Microsoft.CodeAnalysis.NetAnalyzers" Version="8.0.0-preview.23468.1">
163164
<Uri>https://github.com/dotnet/roslyn-analyzers</Uri>

eng/common/core-templates/job/source-build.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ parameters:
2626
# Specifies the build script to invoke to perform the build in the repo. The default
2727
# './build.sh' should work for typical Arcade repositories, but this is customizable for
2828
# difficult situations.
29+
# buildArguments: ''
30+
# Specifies additional build arguments to pass to the build script.
2931
# jobProperties: {}
3032
# A list of job properties to inject at the top level, for potential extensibility beyond
3133
# container and pool.

eng/common/core-templates/job/source-index-stage1.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
parameters:
22
runAsPublic: false
3-
sourceIndexUploadPackageVersion: 2.0.0-20240522.1
4-
sourceIndexProcessBinlogPackageVersion: 1.0.1-20240522.1
3+
sourceIndexUploadPackageVersion: 2.0.0-20250425.2
4+
sourceIndexProcessBinlogPackageVersion: 1.0.1-20250425.2
55
sourceIndexPackageSource: https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json
66
sourceIndexBuildCommand: powershell -NoLogo -NoProfile -ExecutionPolicy Bypass -Command "eng/common/build.ps1 -restore -build -binarylog -ci"
77
preSteps: []

eng/common/core-templates/steps/source-build.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ steps:
7979
${{ coalesce(parameters.platform.buildScript, './build.sh') }} --ci \
8080
--configuration $buildConfig \
8181
--restore --build --pack $publishArgs -bl \
82+
${{ parameters.platform.buildArguments }} \
8283
$officialBuildArgs \
8384
$internalRuntimeDownloadArgs \
8485
$internalRestoreArgs \

eng/targets/Services.props

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
<ServiceHubService Include="Microsoft.VisualStudio.LanguageServices.CodeLensReferences" ClassName="Microsoft.CodeAnalysis.Remote.RemoteCodeLensReferencesService+Factory" />
1717
<ServiceHubService Include="Microsoft.VisualStudio.LanguageServices.CompilationAvailable" ClassName="Microsoft.CodeAnalysis.Remote.RemoteCompilationAvailableService+Factory" />
1818
<ServiceHubService Include="Microsoft.VisualStudio.LanguageServices.ConvertTupleToStructCodeRefactoring" ClassName="Microsoft.CodeAnalysis.Remote.RemoteConvertTupleToStructCodeRefactoringService+Factory" />
19+
<ServiceHubService Include="Microsoft.VisualStudio.LanguageServices.CopilotChangeAnalysis" ClassName="Microsoft.CodeAnalysis.Remote.RemoteCopilotChangeAnalysisService+Factory" />
1920
<ServiceHubService Include="Microsoft.VisualStudio.LanguageServices.DependentTypeFinder" ClassName="Microsoft.CodeAnalysis.Remote.RemoteDependentTypeFinderService+Factory" />
2021
<ServiceHubService Include="Microsoft.VisualStudio.LanguageServices.DesignerAttributeDiscovery" ClassName="Microsoft.CodeAnalysis.Remote.RemoteDesignerAttributeDiscoveryService+Factory" />
2122
<ServiceHubService Include="Microsoft.VisualStudio.LanguageServices.DiagnosticAnalyzer" ClassName="Microsoft.CodeAnalysis.Remote.RemoteDiagnosticAnalyzerService+Factory" />
@@ -33,6 +34,7 @@
3334
<ServiceHubService Include="Microsoft.VisualStudio.LanguageServices.MissingImportDiscovery" ClassName="Microsoft.CodeAnalysis.Remote.RemoteMissingImportDiscoveryService+Factory" />
3435
<ServiceHubService Include="Microsoft.VisualStudio.LanguageServices.NavigateToSearch" ClassName="Microsoft.CodeAnalysis.Remote.RemoteNavigateToSearchService+Factory" />
3536
<ServiceHubService Include="Microsoft.VisualStudio.LanguageServices.NavigationBarItem" ClassName="Microsoft.CodeAnalysis.Remote.RemoteNavigationBarItemService+Factory" />
37+
<ServiceHubService Include="Microsoft.VisualStudio.LanguageServices.Initialization" ClassName="Microsoft.CodeAnalysis.Remote.RemoteInitializationService+Factory" />
3638
<ServiceHubService Include="Microsoft.VisualStudio.LanguageServices.ProcessTelemetry" ClassName="Microsoft.CodeAnalysis.Remote.RemoteProcessTelemetryService+Factory" />
3739
<ServiceHubService Include="Microsoft.VisualStudio.LanguageServices.ProjectTelemetry" ClassName="Microsoft.CodeAnalysis.Remote.RemoteProjectTelemetryService+Factory" />
3840
<ServiceHubService Include="Microsoft.VisualStudio.LanguageServices.RelatedDocuments" ClassName="Microsoft.CodeAnalysis.Remote.RemoteRelatedDocumentsService+Factory" />

0 commit comments

Comments
 (0)