Skip to content

Commit 69855b8

Browse files
committed
Merge remote-tracking branch 'upstream/main' into merge-main
* upstream/main: (134 commits) Mark partial events and ctors as complete (#77525) Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250310.1 Remove unnecessary imports Update dev18 target branch (#77443) Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250306.1 (#77470) Remove BoundConversion.OriginalUserDefinedConversionsOpt property (#77465) Addressed feedback [Rename flyout] Fixed cropping issue on small screens Fix design time build error in Roslyn.VisualStudio.Setup Remove workaround of WPF bug Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250305.3 (#77452) Small cleanup in the packages and editor factories (#77439) Auto merge PRs instead of just applying a label to them (#77438) Fix bot name (#77436) Add workitem Don't use an implicit-object if the lang version doesn't support it Configure main-vs-deps (#77408) Fix projects File scoped namespace Update formatting tests ...
2 parents b2779fc + ee16ab3 commit 69855b8

File tree

1,534 files changed

+30137
-18048
lines changed

Some content is hidden

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

1,534 files changed

+30137
-18048
lines changed

.github/policies/resourceManagement.yml

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -27,23 +27,6 @@ configuration:
2727

2828
eventResponderTasks:
2929

30-
- description: Auto-approve auto-merge PRs
31-
triggerOnOwnActions: false
32-
if:
33-
- payloadType: Pull_Request
34-
- isPullRequest
35-
- labelAdded:
36-
label: auto-merge
37-
- or:
38-
- activitySenderHasPermission:
39-
permission: Admin
40-
- isActivitySender:
41-
user: dotnet-bot
42-
issueAuthor: False
43-
then:
44-
- approvePullRequest:
45-
comment: Auto-approval
46-
4730
- description: Auto-approve maestro PRs
4831
triggerOnOwnActions: false
4932
if:
@@ -80,7 +63,7 @@ configuration:
8063
- addMilestone:
8164
milestone: Next
8265

83-
- description: Auto-approve OneLoc PRs
66+
- description: Auto-approve/merge OneLoc PRs
8467
triggerOnOwnActions: false
8568
if:
8669
- payloadType: Pull_Request
@@ -94,8 +77,29 @@ configuration:
9477
- isAction:
9578
action: Opened
9679
then:
97-
- addLabel:
98-
label: auto-merge
80+
- approvePullRequest:
81+
comment: Auto-approve
82+
- enableAutoMerge:
83+
mergeMethod: merge
84+
85+
- description: Auto-approve/merge automated merge PRs
86+
triggerOnOwnActions: false
87+
if:
88+
- payloadType: Pull_Request
89+
- isPullRequest
90+
- isActivitySender:
91+
user: github-actions[bot]
92+
issueAuthor: False
93+
- titleContains:
94+
pattern: "[automated] Merge branch"
95+
isRegex: False
96+
- isAction:
97+
action: Opened
98+
then:
99+
- approvePullRequest:
100+
comment: Auto-approve
101+
- enableAutoMerge:
102+
mergeMethod: merge
99103

100104
- description: Remove "Need More Info" on comment
101105
triggerOnOwnActions: false
@@ -147,7 +151,7 @@ configuration:
147151
issueAuthor: False
148152
- not:
149153
isActivitySender:
150-
user: github-actions
154+
user: github-actions[bot]
151155
issueAuthor: False
152156
then:
153157
- addLabel:
@@ -168,7 +172,7 @@ configuration:
168172
issueAuthor: False
169173
- not:
170174
isActivitySender:
171-
user: github-actions
175+
user: github-actions[bot]
172176
issueAuthor: False
173177
- or:
174178
- isAction:

.github/workflows/main-merge.yml

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,31 @@
1-
# Merges any changes from release/prerelease to main (e.g. servicing changes)
1+
# See https://github.com/dotnet/arcade/blob/e52018a/Documentation/Maestro/New-Inter-Branch-Merge-Approach.md
22

3-
name: Flow main to release/dev18.0
3+
name: Inter-branch merge
44
on:
55
schedule:
6-
# once a day at 13:00 UTC to cleanup old runs
7-
- cron: '0 13 * * *'
6+
# Create a merge every 3 hours (works only for merges from `main`, others would need a `push` trigger).
7+
- cron: '0 */3 * * *'
88
workflow_dispatch:
9+
inputs:
10+
configuration_file_branch:
11+
description: 'Branch to use for configuration file'
12+
required: true
13+
default: 'main'
914

1015
permissions:
1116
contents: write
1217
pull-requests: write
1318

1419
jobs:
15-
check-script:
20+
# The config does not support multiple flows from the same source branch,
21+
# so we need to run separately for each duplicate source branch (https://github.com/dotnet/arcade/issues/15586).
22+
merge:
1623
uses: dotnet/arcade/.github/workflows/inter-branch-merge-base.yml@main
1724
with:
18-
configuration_file_path: '.config/branch-merge.json'
25+
configuration_file_path: 'eng/config/branch-merge.jsonc'
26+
configuration_file_branch: ${{ inputs.configuration_file_branch || 'main' }}
27+
merge-2:
28+
uses: dotnet/arcade/.github/workflows/inter-branch-merge-base.yml@main
29+
with:
30+
configuration_file_path: 'eng/config/branch-merge-2.jsonc'
31+
configuration_file_branch: ${{ inputs.configuration_file_branch || 'main' }}

Roslyn.sln

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -579,6 +579,8 @@ Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Microsoft.CodeAnalysis.Cont
579579
EndProject
580580
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CodeAnalysis.Contracts.Package", "src\Dependencies\Contracts\Microsoft.CodeAnalysis.Contracts.Package.csproj", "{A8D5CFFA-7F9E-C35B-4F19-D63F6EC1D5CA}"
581581
EndProject
582+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.VisualStudio.LanguageServices.ExternalAccess.Copilot", "src\VisualStudio\ExternalAccess\Copilot\Microsoft.VisualStudio.LanguageServices.ExternalAccess.Copilot.csproj", "{9EB058F3-10C9-8F3F-AD9E-72CB362A0928}"
583+
EndProject
582584
Global
583585
GlobalSection(SolutionConfigurationPlatforms) = preSolution
584586
Debug|Any CPU = Debug|Any CPU
@@ -1365,6 +1367,10 @@ Global
13651367
{B1481D94-682E-46EC-ADBE-A16EB46FEEE9}.Debug|Any CPU.Build.0 = Debug|Any CPU
13661368
{B1481D94-682E-46EC-ADBE-A16EB46FEEE9}.Release|Any CPU.ActiveCfg = Release|Any CPU
13671369
{B1481D94-682E-46EC-ADBE-A16EB46FEEE9}.Release|Any CPU.Build.0 = Release|Any CPU
1370+
{5D60CF30-28A9-9F0F-7610-D90E4A69AE73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
1371+
{5D60CF30-28A9-9F0F-7610-D90E4A69AE73}.Debug|Any CPU.Build.0 = Debug|Any CPU
1372+
{5D60CF30-28A9-9F0F-7610-D90E4A69AE73}.Release|Any CPU.ActiveCfg = Release|Any CPU
1373+
{5D60CF30-28A9-9F0F-7610-D90E4A69AE73}.Release|Any CPU.Build.0 = Release|Any CPU
13681374
{09AEDEE4-6358-47C9-8022-3BD37A518070}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
13691375
{09AEDEE4-6358-47C9-8022-3BD37A518070}.Debug|Any CPU.Build.0 = Debug|Any CPU
13701376
{09AEDEE4-6358-47C9-8022-3BD37A518070}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -1409,10 +1415,6 @@ Global
14091415
{900168D7-D982-86CE-5097-C5F173BA4D8B}.Debug|Any CPU.Build.0 = Debug|Any CPU
14101416
{900168D7-D982-86CE-5097-C5F173BA4D8B}.Release|Any CPU.ActiveCfg = Release|Any CPU
14111417
{900168D7-D982-86CE-5097-C5F173BA4D8B}.Release|Any CPU.Build.0 = Release|Any CPU
1412-
{5D60CF30-28A9-9F0F-7610-D90E4A69AE73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
1413-
{5D60CF30-28A9-9F0F-7610-D90E4A69AE73}.Debug|Any CPU.Build.0 = Debug|Any CPU
1414-
{5D60CF30-28A9-9F0F-7610-D90E4A69AE73}.Release|Any CPU.ActiveCfg = Release|Any CPU
1415-
{5D60CF30-28A9-9F0F-7610-D90E4A69AE73}.Release|Any CPU.Build.0 = Release|Any CPU
14161418
{2559DAF9-784E-4C29-E0E1-70204B1FD56E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
14171419
{2559DAF9-784E-4C29-E0E1-70204B1FD56E}.Debug|Any CPU.Build.0 = Debug|Any CPU
14181420
{2559DAF9-784E-4C29-E0E1-70204B1FD56E}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -1421,6 +1423,10 @@ Global
14211423
{A8D5CFFA-7F9E-C35B-4F19-D63F6EC1D5CA}.Debug|Any CPU.Build.0 = Debug|Any CPU
14221424
{A8D5CFFA-7F9E-C35B-4F19-D63F6EC1D5CA}.Release|Any CPU.ActiveCfg = Release|Any CPU
14231425
{A8D5CFFA-7F9E-C35B-4F19-D63F6EC1D5CA}.Release|Any CPU.Build.0 = Release|Any CPU
1426+
{9EB058F3-10C9-8F3F-AD9E-72CB362A0928}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
1427+
{9EB058F3-10C9-8F3F-AD9E-72CB362A0928}.Debug|Any CPU.Build.0 = Debug|Any CPU
1428+
{9EB058F3-10C9-8F3F-AD9E-72CB362A0928}.Release|Any CPU.ActiveCfg = Release|Any CPU
1429+
{9EB058F3-10C9-8F3F-AD9E-72CB362A0928}.Release|Any CPU.Build.0 = Release|Any CPU
14241430
EndGlobalSection
14251431
GlobalSection(SolutionProperties) = preSolution
14261432
HideSolutionNode = FALSE
@@ -1666,6 +1672,7 @@ Global
16661672
{A833B11C-5072-4A1F-A32B-2700433B0D3D} = {806F0C6F-3640-4C92-8D55-6767B1535467}
16671673
{8988270E-393A-4B92-AC1A-534F903CFD34} = {8977A560-45C2-4EC2-A849-97335B382C74}
16681674
{B1481D94-682E-46EC-ADBE-A16EB46FEEE9} = {55A62CFA-1155-46F1-ADF3-BEEE51B58AB5}
1675+
{5D60CF30-28A9-9F0F-7610-D90E4A69AE73} = {58A2876A-618D-4AE6-A136-E44B42BBDE11}
16691676
{09AEDEE4-6358-47C9-8022-3BD37A518070} = {5880FECB-91F1-4AB8-8726-75EAFA8A918E}
16701677
{5BABC440-4F1B-46E8-9068-DD7F02ED25D3} = {3E5FE3DB-45F7-4D83-9097-8F05D3B3AEC6}
16711678
{5762E483-75CE-4328-A410-511F30737712} = {3E5FE3DB-45F7-4D83-9097-8F05D3B3AEC6}
@@ -1683,11 +1690,11 @@ Global
16831690
{806F0C6F-3640-4C92-8D55-6767B1535467} = {D449D505-CC6A-4E0B-AF1B-976E2D0AE67A}
16841691
{7465CE63-A7B7-475F-8C57-48D2F8BC665A} = {D449D505-CC6A-4E0B-AF1B-976E2D0AE67A}
16851692
{900168D7-D982-86CE-5097-C5F173BA4D8B} = {806F0C6F-3640-4C92-8D55-6767B1535467}
1686-
{5D60CF30-28A9-9F0F-7610-D90E4A69AE73} = {58A2876A-618D-4AE6-A136-E44B42BBDE11}
16871693
{967723E8-4FDD-447B-99F6-4F8C47CB5433} = {C2D1346B-9665-4150-B644-075CF1636BAA}
16881694
{2559DAF9-784E-4C29-E0E1-70204B1FD56E} = {C2D1346B-9665-4150-B644-075CF1636BAA}
16891695
{BD974609-C68B-4BE6-9682-EB132462B50D} = {C2D1346B-9665-4150-B644-075CF1636BAA}
16901696
{A8D5CFFA-7F9E-C35B-4F19-D63F6EC1D5CA} = {C2D1346B-9665-4150-B644-075CF1636BAA}
1697+
{9EB058F3-10C9-8F3F-AD9E-72CB362A0928} = {5880FECB-91F1-4AB8-8726-75EAFA8A918E}
16911698
EndGlobalSection
16921699
GlobalSection(ExtensibilityGlobals) = postSolution
16931700
SolutionGuid = {604E6B91-7BC0-4126-AE07-D4D2FEFC3D29}

azure-pipelines-integration.yml

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ trigger:
1010
exclude:
1111
# Since the version of VS on the integration VM images are a moving target,
1212
# we are unable to reliably run integration tests on servicing branches.
13-
- release/dev17.0-vs-deps
14-
- release/dev17.2
15-
- release/dev17.3
13+
- release/dev17.8
14+
- release/dev17.10
15+
- release/dev17.12
1616

1717
# Branches that trigger builds on PR
1818
pr:
@@ -26,19 +26,25 @@ pr:
2626
exclude:
2727
# Since the version of VS on the integration VM images are a moving target,
2828
# we are unable to reliably run integration tests on servicing branches.
29-
- release/dev17.0-vs-deps
30-
- release/dev17.2
31-
- release/dev17.3
29+
- release/dev17.8
30+
- release/dev17.10
31+
- release/dev17.12
3232
paths:
3333
exclude:
3434
- docs/*
3535
- eng/config/OptProf.json
3636
- eng/config/PublishData.json
37+
- eng/setup-pr-validation.ps1
3738
- .vscode/*
3839
- .github/*
3940
- .devcontainer/*
4041
- .git-blame-ignore-revs
4142
- .vsconfig
43+
- azure-pipelines-compliance.yml
44+
- azure-pipelines-integration-dartlab.yml
45+
- azure-pipelines-integration-scouting.yml
46+
- azure-pipelines-official.yml
47+
- azure-pipelines-pr-validation.yml
4248
- CODE-OF-CONDUCT.md
4349
- CONTRIBUTING.md
4450
- README.md

azure-pipelines-official.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,9 @@ extends:
211211
ArtifactName: AssetManifests
212212

213213
steps:
214+
- pwsh: Set-MpPreference -DisableRealtimeMonitoring $true
215+
displayName: Disable Real-time Monitoring
216+
214217
- powershell: Write-Host "##vso[task.setvariable variable=SourceBranchName]$('$(Build.SourceBranch)'.Substring('refs/heads/'.Length))"
215218
displayName: Setting SourceBranchName variable
216219
condition: succeeded()

azure-pipelines-pr-validation.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ parameters:
1313
type: number
1414
- name: CommitSHA
1515
type: string
16+
- name: EnforceLatestCommit
17+
type: boolean
18+
default: true
1619
- name: VisualStudioBranchName
1720
type: string
1821
default: default
@@ -143,6 +146,9 @@ extends:
143146
ArtifactName: AssetManifests
144147

145148
steps:
149+
- pwsh: Set-MpPreference -DisableRealtimeMonitoring $true
150+
displayName: Disable Real-time Monitoring
151+
146152
- task: Powershell@2
147153
displayName: Setting OriginalBuildNumber variable
148154
condition: succeeded()
@@ -192,7 +198,7 @@ extends:
192198
displayName: Setup branch for insertion validation
193199
inputs:
194200
filePath: 'eng\setup-pr-validation.ps1'
195-
arguments: '-sourceBranchName $(SourceBranchName) -prNumber ${{ parameters.PRNumber }} -commitSHA ${{ parameters.CommitSHA }}'
201+
arguments: "-sourceBranchName $(SourceBranchName) -prNumber ${{ parameters.PRNumber }} -commitSHA ${{ parameters.CommitSHA }} -enforceLatestCommit ${{ iif(parameters.EnforceLatestCommit, '1', '0') }}"
196202
condition: succeeded()
197203

198204
- powershell: Write-Host "##vso[task.setvariable variable=VisualStudio.DropName]Products/$(System.TeamProject)/$(Build.Repository.Name)/$(SourceBranchName)/$(OriginalBuildNumber)"

azure-pipelines.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,20 @@ pr:
1818
paths:
1919
exclude:
2020
- docs/*
21+
- eng/config/OptProf.json
2122
- eng/config/PublishData.json
23+
- eng/setup-pr-validation.ps1
2224
- src/LanguageServer/Microsoft.CommonLanguageServerProtocol.Framework/README.md
2325
- .vscode/*
2426
- .github/*
2527
- .devcontainer/*
2628
- .git-blame-ignore-revs
2729
- .vsconfig
30+
- azure-pipelines-compliance.yml
31+
- azure-pipelines-integration-dartlab.yml
32+
- azure-pipelines-integration-scouting.yml
33+
- azure-pipelines-official.yml
34+
- azure-pipelines-pr-validation.yml
2835
- CODE-OF-CONDUCT.md
2936
- CONTRIBUTING.md
3037
- README.md

docs/Language Feature Status.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ efforts behind them.
1111
| Feature | Branch | State | Developer | Reviewer | IDE Buddy | LDM Champ |
1212
| ------- | ------ | ----- | --------- | -------- | --------- | --------- |
1313
| [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) |
14-
| [Partial Events and Constructors](https://github.com/dotnet/csharplang/issues/9058) | [PartialEventsCtors](https://github.com/dotnet/roslyn/tree/features/PartialEventsCtors) | [In Progress](https://github.com/dotnet/roslyn/issues/76859) | [jjonescz](https://github.com/jjonescz) | [cston](https://github.com/cston), [RikkiGibson](https://github.com/RikkiGibson) | | |
1514
| 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) | | |
1615
| [Null-conditional assignment](https://github.com/dotnet/csharplang/issues/6045) | [null-conditional-assignment](https://github.com/dotnet/roslyn/tree/features/null-conditional-assignment) | [In Progress](https://github.com/dotnet/roslyn/issues/75554) | [RikkiGibson](https://github.com/RikkiGibson) | [cston](https://github.com/cston), [jjonescz](https://github.com/jjonescz) | TBD | [RikkiGibson](https://github.com/RikkiGibson) |
1716
| [Extensions](https://github.com/dotnet/csharplang/issues/8697) | [extensions](https://github.com/dotnet/roslyn/tree/features/extensions) | [In Progress](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) |
@@ -21,6 +20,7 @@ efforts behind them.
2120
| [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) |
2221
| [String literals in data section as UTF8](https://github.com/dotnet/roslyn/blob/main/docs/features/string-literals-data-section.md) | [PR](https://github.com/dotnet/roslyn/pull/76036) | [Merged into 17.13p4](https://github.com/dotnet/roslyn/issues/76234) | [jjonescz](https://github.com/jjonescz) | [AlekseyTs](https://github.com/AlekseyTs), [cston](https://github.com/cston) | N/A | N/A |
2322
| [Simple lambda parameters with modifiers](https://github.com/dotnet/csharplang/blob/main/proposals/simple-lambda-parameters-with-modifiers.md) | [PR](https://github.com/dotnet/roslyn/pull/75400) | [Merged into 17.14p1](https://github.com/dotnet/roslyn/pull/75400) | [CyrusNajmabadi](https://github.com/CyrusNajmabadi) | [jjonescz](https://github.com/jjonescz), [cston](https://github.com/cston) | [CyrusNajmabadi](https://github.com/CyrusNajmabadi) | [CyrusNajmabadi](https://github.com/CyrusNajmabadi) |
23+
| [Partial Events and Constructors](https://github.com/dotnet/csharplang/issues/9058) | [PartialEventsCtors](https://github.com/dotnet/roslyn/tree/features/PartialEventsCtors) | [Merged into 17.14p3](https://github.com/dotnet/roslyn/issues/76859) | [jjonescz](https://github.com/jjonescz) | [cston](https://github.com/cston), [RikkiGibson](https://github.com/RikkiGibson) | [CyrusNajmabadi](https://github.com/CyrusNajmabadi) | [jaredpar](https://github.com/jaredpar) |
2424

2525
# Working Set VB
2626

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

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,3 +314,20 @@ CSharpCompilation.Create("test",
314314

315315
Similarly this can be observed when using the command-line argument `/refonly`
316316
or the `ProduceOnlyReferenceAssembly` MSBuild property.
317+
318+
## `partial` cannot be a return type of methods
319+
320+
***Introduced in Visual Studio 2022 version 17.14***
321+
322+
The [partial events and constructors](https://github.com/dotnet/csharplang/issues/9058) language feature
323+
allows the `partial` modifier in more places and so it cannot be a return type unless escaped:
324+
325+
```cs
326+
class C
327+
{
328+
partial F() => new partial(); // previously worked
329+
@partial F() => new partial(); // workaround
330+
}
331+
332+
class partial { }
333+
```

0 commit comments

Comments
 (0)