Skip to content

Commit cacc9eb

Browse files
authored
Merge pull request #59867 from dotnet/merges/main-to-features/rename_ui_rework
Merge main to features/rename_ui_rework
2 parents f198b0d + a638290 commit cacc9eb

File tree

763 files changed

+19118
-7326
lines changed

Some content is hidden

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

763 files changed

+19118
-7326
lines changed

.devcontainer/Dockerfile

+1-13
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,4 @@ FROM mcr.microsoft.com/vscode/devcontainers/dotnet:0-${VARIANT}
66

77
# Set up machine requirements to build the repo
88
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
9-
&& apt-get -y install --no-install-recommends cmake llvm-9 clang-9 \
10-
build-essential python curl git lldb-6.0 liblldb-6.0-dev \
11-
libunwind8 libunwind8-dev gettext libicu-dev liblttng-ust-dev \
12-
libssl-dev libnuma-dev libkrb5-dev zlib1g-dev ninja-build
13-
14-
# Install V8 Engine
15-
SHELL ["/bin/bash", "-c"]
16-
17-
RUN curl -sSL "https://netcorenativeassets.blob.core.windows.net/resource-packages/external/linux/chromium-v8/v8-linux64-rel-8.5.183.zip" -o ./v8.zip \
18-
&& unzip ./v8.zip -d /usr/local/v8 \
19-
&& echo $'#!/usr/bin/env bash\n\
20-
"/usr/local/v8/d8" --snapshot_blob="/usr/local/v8/snapshot_blob.bin" "$@"\n' > /usr/local/bin/v8 \
21-
&& chmod +x /usr/local/bin/v8
9+
&& apt-get -y install --no-install-recommends curl git

NuGet.config

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
<add key="dotnet5" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json" />
99
<add key="dotnet6" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6/nuget/v3/index.json" />
1010
<add key="dotnet7" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet7/nuget/v3/index.json" />
11+
<add key="dotnet7-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet7-transport/nuget/v3/index.json" />
1112
<add key="dotnet-public" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public/nuget/v3/index.json" />
1213
<add key="nuget-build" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/nuget-build/nuget/v3/index.json" />
1314
<add key="vssdk" value="https://pkgs.dev.azure.com/azure-public/vside/_packaging/vssdk/nuget/v3/index.json" />

Roslyn.sln

-24
Original file line numberDiff line numberDiff line change
@@ -220,20 +220,14 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Build.Tasks.CodeA
220220
EndProject
221221
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "BasicResultProvider", "src\ExpressionEvaluator\VisualBasic\Source\ResultProvider\BasicResultProvider.shproj", "{3140FE61-0856-4367-9AA3-8081B9A80E35}"
222222
EndProject
223-
Project("{778DAE3C-4631-46EA-AA77-85C1314464D9}") = "BasicResultProvider.NetFX20", "src\ExpressionEvaluator\VisualBasic\Source\ResultProvider\NetFX20\BasicResultProvider.NetFX20.vbproj", "{76242A2D-2600-49DD-8C15-FEA07ECB1842}"
224-
EndProject
225223
Project("{778DAE3C-4631-46EA-AA77-85C1314464D9}") = "Microsoft.CodeAnalysis.VisualBasic.ResultProvider", "src\ExpressionEvaluator\VisualBasic\Source\ResultProvider\Portable\Microsoft.CodeAnalysis.VisualBasic.ResultProvider.vbproj", "{76242A2D-2600-49DD-8C15-FEA07ECB1843}"
226224
EndProject
227225
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "CSharpResultProvider", "src\ExpressionEvaluator\CSharp\Source\ResultProvider\CSharpResultProvider.shproj", "{3140FE61-0856-4367-9AA3-8081B9A80E36}"
228226
EndProject
229-
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CSharpResultProvider.NetFX20", "src\ExpressionEvaluator\CSharp\Source\ResultProvider\NetFX20\CSharpResultProvider.NetFX20.csproj", "{BF9DAC1E-3A5E-4DC3-BB44-9A64E0D4E9D3}"
230-
EndProject
231227
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CodeAnalysis.CSharp.ResultProvider", "src\ExpressionEvaluator\CSharp\Source\ResultProvider\Portable\Microsoft.CodeAnalysis.CSharp.ResultProvider.csproj", "{BF9DAC1E-3A5E-4DC3-BB44-9A64E0D4E9D4}"
232228
EndProject
233229
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "ResultProvider", "src\ExpressionEvaluator\Core\Source\ResultProvider\ResultProvider.shproj", "{BB3CA047-5D00-48D4-B7D3-233C1265C065}"
234230
EndProject
235-
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ResultProvider.NetFX20", "src\ExpressionEvaluator\Core\Source\ResultProvider\NetFX20\ResultProvider.NetFX20.csproj", "{BEDC5A4A-809E-4017-9CFD-6C8D4E1847F0}"
236-
EndProject
237231
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CodeAnalysis.ResultProvider", "src\ExpressionEvaluator\Core\Source\ResultProvider\Portable\Microsoft.CodeAnalysis.ResultProvider.csproj", "{FA0E905D-EC46-466D-B7B2-3B5557F9428C}"
238232
EndProject
239233
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "vbc", "src\Compilers\VisualBasic\vbc\vbc.csproj", "{E58EE9D7-1239-4961-A0C1-F9EC3952C4C1}"
@@ -540,7 +534,6 @@ Global
540534
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\WorkspaceExtensions.projitems*{5ff1e493-69cc-4d0b-83f2-039f469a04e1}*SharedItemsImports = 5
541535
src\ExpressionEvaluator\CSharp\Source\ResultProvider\CSharpResultProvider.projitems*{60db272a-21c9-4e8d-9803-ff4e132392c8}*SharedItemsImports = 5
542536
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\CSharpCompilerExtensions.projitems*{699fea05-aea7-403d-827e-53cf4e826955}*SharedItemsImports = 13
543-
src\ExpressionEvaluator\VisualBasic\Source\ResultProvider\BasicResultProvider.projitems*{76242a2d-2600-49dd-8c15-fea07ecb1842}*SharedItemsImports = 5
544537
src\ExpressionEvaluator\VisualBasic\Source\ResultProvider\BasicResultProvider.projitems*{76242a2d-2600-49dd-8c15-fea07ecb1843}*SharedItemsImports = 5
545538
src\Analyzers\Core\Analyzers\Analyzers.projitems*{76e96966-4780-4040-8197-bde2879516f4}*SharedItemsImports = 13
546539
src\Compilers\Core\CommandLine\CommandLine.projitems*{7ad4fe65-9a30-41a6-8004-aa8f89bcb7f3}*SharedItemsImports = 5
@@ -562,8 +555,6 @@ Global
562555
src\Compilers\Core\CommandLine\CommandLine.projitems*{ad6f474e-e6d4-4217-91f3-b7af1be31ccc}*SharedItemsImports = 13
563556
src\Compilers\CSharp\CSharpAnalyzerDriver\CSharpAnalyzerDriver.projitems*{b501a547-c911-4a05-ac6e-274a50dff30e}*SharedItemsImports = 5
564557
src\ExpressionEvaluator\Core\Source\ResultProvider\ResultProvider.projitems*{bb3ca047-5d00-48d4-b7d3-233c1265c065}*SharedItemsImports = 13
565-
src\ExpressionEvaluator\Core\Source\ResultProvider\ResultProvider.projitems*{bedc5a4a-809e-4017-9cfd-6c8d4e1847f0}*SharedItemsImports = 5
566-
src\ExpressionEvaluator\CSharp\Source\ResultProvider\CSharpResultProvider.projitems*{bf9dac1e-3a5e-4dc3-bb44-9a64e0d4e9d3}*SharedItemsImports = 5
567558
src\ExpressionEvaluator\CSharp\Source\ResultProvider\CSharpResultProvider.projitems*{bf9dac1e-3a5e-4dc3-bb44-9a64e0d4e9d4}*SharedItemsImports = 5
568559
src\Dependencies\PooledObjects\Microsoft.CodeAnalysis.PooledObjects.projitems*{c1930979-c824-496b-a630-70f5369a636f}*SharedItemsImports = 13
569560
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\VisualBasicCompilerExtensions.projitems*{cec0dce7-8d52-45c3-9295-fc7b16bd2451}*SharedItemsImports = 13
@@ -912,26 +903,14 @@ Global
912903
{1DFEA9C5-973C-4179-9B1B-0F32288E1EF2}.Debug|Any CPU.Build.0 = Debug|Any CPU
913904
{1DFEA9C5-973C-4179-9B1B-0F32288E1EF2}.Release|Any CPU.ActiveCfg = Release|Any CPU
914905
{1DFEA9C5-973C-4179-9B1B-0F32288E1EF2}.Release|Any CPU.Build.0 = Release|Any CPU
915-
{76242A2D-2600-49DD-8C15-FEA07ECB1842}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
916-
{76242A2D-2600-49DD-8C15-FEA07ECB1842}.Debug|Any CPU.Build.0 = Debug|Any CPU
917-
{76242A2D-2600-49DD-8C15-FEA07ECB1842}.Release|Any CPU.ActiveCfg = Release|Any CPU
918-
{76242A2D-2600-49DD-8C15-FEA07ECB1842}.Release|Any CPU.Build.0 = Release|Any CPU
919906
{76242A2D-2600-49DD-8C15-FEA07ECB1843}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
920907
{76242A2D-2600-49DD-8C15-FEA07ECB1843}.Debug|Any CPU.Build.0 = Debug|Any CPU
921908
{76242A2D-2600-49DD-8C15-FEA07ECB1843}.Release|Any CPU.ActiveCfg = Release|Any CPU
922909
{76242A2D-2600-49DD-8C15-FEA07ECB1843}.Release|Any CPU.Build.0 = Release|Any CPU
923-
{BF9DAC1E-3A5E-4DC3-BB44-9A64E0D4E9D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
924-
{BF9DAC1E-3A5E-4DC3-BB44-9A64E0D4E9D3}.Debug|Any CPU.Build.0 = Debug|Any CPU
925-
{BF9DAC1E-3A5E-4DC3-BB44-9A64E0D4E9D3}.Release|Any CPU.ActiveCfg = Release|Any CPU
926-
{BF9DAC1E-3A5E-4DC3-BB44-9A64E0D4E9D3}.Release|Any CPU.Build.0 = Release|Any CPU
927910
{BF9DAC1E-3A5E-4DC3-BB44-9A64E0D4E9D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
928911
{BF9DAC1E-3A5E-4DC3-BB44-9A64E0D4E9D4}.Debug|Any CPU.Build.0 = Debug|Any CPU
929912
{BF9DAC1E-3A5E-4DC3-BB44-9A64E0D4E9D4}.Release|Any CPU.ActiveCfg = Release|Any CPU
930913
{BF9DAC1E-3A5E-4DC3-BB44-9A64E0D4E9D4}.Release|Any CPU.Build.0 = Release|Any CPU
931-
{BEDC5A4A-809E-4017-9CFD-6C8D4E1847F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
932-
{BEDC5A4A-809E-4017-9CFD-6C8D4E1847F0}.Debug|Any CPU.Build.0 = Debug|Any CPU
933-
{BEDC5A4A-809E-4017-9CFD-6C8D4E1847F0}.Release|Any CPU.ActiveCfg = Release|Any CPU
934-
{BEDC5A4A-809E-4017-9CFD-6C8D4E1847F0}.Release|Any CPU.Build.0 = Release|Any CPU
935914
{FA0E905D-EC46-466D-B7B2-3B5557F9428C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
936915
{FA0E905D-EC46-466D-B7B2-3B5557F9428C}.Debug|Any CPU.Build.0 = Debug|Any CPU
937916
{FA0E905D-EC46-466D-B7B2-3B5557F9428C}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -1400,13 +1379,10 @@ Global
14001379
{FCFA8808-A1B6-48CC-A1EA-0B8CA8AEDA8E} = {32A48625-F0AD-419D-828B-A50BDABA38EA}
14011380
{1DFEA9C5-973C-4179-9B1B-0F32288E1EF2} = {A41D1B99-F489-4C43-BBDF-96D61B19A6B9}
14021381
{3140FE61-0856-4367-9AA3-8081B9A80E35} = {151F6994-AEB3-4B12-B746-2ACFF26C7BBB}
1403-
{76242A2D-2600-49DD-8C15-FEA07ECB1842} = {151F6994-AEB3-4B12-B746-2ACFF26C7BBB}
14041382
{76242A2D-2600-49DD-8C15-FEA07ECB1843} = {151F6994-AEB3-4B12-B746-2ACFF26C7BBB}
14051383
{3140FE61-0856-4367-9AA3-8081B9A80E36} = {913A4C08-898E-49C7-9692-0EF9DC56CF6E}
1406-
{BF9DAC1E-3A5E-4DC3-BB44-9A64E0D4E9D3} = {913A4C08-898E-49C7-9692-0EF9DC56CF6E}
14071384
{BF9DAC1E-3A5E-4DC3-BB44-9A64E0D4E9D4} = {913A4C08-898E-49C7-9692-0EF9DC56CF6E}
14081385
{BB3CA047-5D00-48D4-B7D3-233C1265C065} = {998CAFE8-06E4-4683-A151-0F6AA4BFF6C6}
1409-
{BEDC5A4A-809E-4017-9CFD-6C8D4E1847F0} = {998CAFE8-06E4-4683-A151-0F6AA4BFF6C6}
14101386
{FA0E905D-EC46-466D-B7B2-3B5557F9428C} = {998CAFE8-06E4-4683-A151-0F6AA4BFF6C6}
14111387
{E58EE9D7-1239-4961-A0C1-F9EC3952C4C1} = {C65C6143-BED3-46E6-869E-9F0BE6E84C37}
14121388
{6FD1CC3E-6A99-4736-9B8D-757992DDE75D} = {38940C5F-97FD-4B2A-B2CD-C4E4EF601B05}

azure-pipelines-official.yml

+2
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,8 @@ stages:
180180
/p:DotnetPublishUsingPipelines=true
181181
/p:IgnoreIbcMergeErrors=true
182182
condition: succeeded()
183+
184+
- template: eng\common\templates\steps\generate-sbom.yml
183185

184186
- task: PowerShell@2
185187
displayName: Publish Assets

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

+30-8
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
## This document lists known breaking changes in Roslyn in C# 10.0 which will be introduced with .NET 6.
22

3-
1. Beginning with C# 10.0, null suppression operator is no longer allowed in patterns.
3+
1. <a name="1"></a>Beginning with C# 10.0, null suppression operator is no longer allowed in patterns.
4+
45
```csharp
56
void M(object o)
67
{
78
if (o is null!) {} // error
89
}
910
```
1011

11-
2. In C# 10, lambda expressions and method groups with inferred type are implicitly convertible to `System.MulticastDelegate`, and bases classes and interfaces of `System.MulticastDelegate` including `object`,
12+
2. <a name="2"></a>In C# 10, lambda expressions and method groups with inferred type are implicitly convertible to `System.MulticastDelegate`, and bases classes and interfaces of `System.MulticastDelegate` including `object`,
1213
and lambda expressions and method groups are implicitly convertible to `System.Linq.Expressions.Expression` and `System.Linq.Expressions.LambdaExpression`.
1314
These are _function_type_conversions_.
1415

@@ -92,7 +93,7 @@ These are _function_type_conversions_.
9293
}
9394
```
9495

95-
3. In C#10, a lambda expression with inferred type may contribute an argument type that affects overload resolution.
96+
3. <a name="3"></a>In C#10, a lambda expression with inferred type may contribute an argument type that affects overload resolution.
9697

9798
```csharp
9899
using System;
@@ -109,18 +110,38 @@ These are _function_type_conversions_.
109110
}
110111
```
111112

112-
4. In Visual Studio 17.1, `struct` type declarations with field initializers must include an explicitly declared constructor. Additionally, all fields must be definitely assigned in `struct` instance constructors that do not have a `: this()` initializer so any previously unassigned fields must be assigned from the added constructor or from field initializers.
113+
4. <a name="4"></a><a name="roslyn-58339"></a>In Visual Studio 17.0 servicing, an error is reported in a `record struct` with a primary constructor if an explicit constructor has a `this()` initializer that invokes the implicit parameterless constructor. See [roslyn#58339](https://github.com/dotnet/roslyn/pull/58339).
113114
114-
For instance, the following results in an error in 17.1:
115+
For instance, the following results in an error:
115116
```csharp
116-
struct S
117+
record struct R(int X, int Y)
118+
{
119+
// error CS8982: A constructor declared in a 'record struct' with parameter list must have a 'this'
120+
// initializer that calls the primary constructor or an explicitly declared constructor.
121+
public R(int x) : this() { X = x; Y = 0; }
122+
}
123+
```
124+
125+
The error could be resolved by invoking the primary constructor (as below) from the `this()` initializer, or by declaring a parameterless constructor that invokes the primary constructor.
126+
```csharp
127+
record struct R(int X, int Y)
117128
{
118-
int X = 1; // error: struct with field initializers must include an explicitly declared constructor
129+
public R(int x) : this(x, 0) { } // ok
130+
}
131+
```
132+
133+
5. <a name="5"></a><a name="roslyn-57925"></a>In Visual Studio 17.0 servicing, if a `struct` type declaration with no constructors includes initializers for some but not all fields, the compiler will report an error that all fields must be assigned. See [roslyn#57925](https://github.com/dotnet/roslyn/pull/57925).
134+
135+
For instance, the following results in an error:
136+
```csharp
137+
struct S // error CS0171: Field 'S.Y' must be fully assigned before control is returned to the caller
138+
{
139+
int X = 1;
119140
int Y;
120141
}
121142
```
122143

123-
The error could be resolved by adding a constructor and assigning the other field.
144+
For compatibility with 17.1 (see [#6](#6)), the error should be resolved by adding a constructor and assigning the other field.
124145
```csharp
125146
struct S
126147
{
@@ -129,3 +150,4 @@ These are _function_type_conversions_.
129150
public S() { Y = 0; } // ok
130151
}
131152
```
153+

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

+34-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
## This document lists known breaking changes in Roslyn after .NET 6 all the way to .NET 7.
22

3-
1. In Visual Studio 17.1, the contextual keyword `var` cannot be used as an explicit lambda return type.
3+
1. <a name="1"></a>In Visual Studio 17.1, the contextual keyword `var` cannot be used as an explicit lambda return type.
44

55
```csharp
66
using System;
@@ -13,7 +13,7 @@
1313
class var { }
1414
```
1515

16-
2. In Visual Studio 17.1, indexers that take an interpolated string handler and require the receiver as an input for the constructor cannot be used in an object initializer.
16+
2. <a name="2"></a>In Visual Studio 17.1, indexers that take an interpolated string handler and require the receiver as an input for the constructor cannot be used in an object initializer.
1717

1818
```cs
1919
using System.Runtime.CompilerServices;
@@ -35,7 +35,7 @@
3535
}
3636
```
3737

38-
3. In Visual Studio 17.1, `ref`/`ref readonly`/`in`/`out` are not allowed to be used on return/parameters of a method attributed with `UnmanagedCallersOnly`.
38+
3. <a name="3"></a>In Visual Studio 17.1, `ref`/`ref readonly`/`in`/`out` are not allowed to be used on return/parameters of a method attributed with `UnmanagedCallersOnly`.
3939
https://github.com/dotnet/roslyn/issues/57025
4040
4141
```cs
@@ -56,7 +56,7 @@ https://github.com/dotnet/roslyn/issues/57025
5656
static void M5(out int o) => throw null; // error CS8977: Cannot use 'ref', 'in', or 'out' in a method attributed with 'UnmanagedCallersOnly'.
5757
```
5858

59-
4. Beginning with C# 11.0, `Length` and `Count` properties on countable and indexable types
59+
4. <a name="4"></a>Beginning with C# 11.0, `Length` and `Count` properties on countable and indexable types
6060
are assumed to be non-negative for purpose of subsumption and exhaustiveness analysis of patterns and switches.
6161
Those types can be used with implicit Index indexer and list patterns.
6262

@@ -67,7 +67,7 @@ Those types can be used with implicit Index indexer and list patterns.
6767
}
6868
```
6969

70-
5. Starting with Visual Studio 17.1, format specifiers in interpolated strings can not contain curly braces (either `{` or `}`). In previous versions `{{` was interpreted as an escaped `{` and `}}` was interpreted as an escaped `}` char in the format specifier. Now the first `}` char in a format specifier ends the interpolation, and any `{` char is an error.
70+
5. <a name="5"></a>Starting with Visual Studio 17.1, format specifiers in interpolated strings can not contain curly braces (either `{` or `}`). In previous versions `{{` was interpreted as an escaped `{` and `}}` was interpreted as an escaped `}` char in the format specifier. Now the first `}` char in a format specifier ends the interpolation, and any `{` char is an error.
7171
https://github.com/dotnet/roslyn/issues/57750
7272
7373
```csharp
@@ -77,3 +77,32 @@ https://github.com/dotnet/roslyn/issues/57750
7777

7878
//prints now: "{C}" - not "{X}}"
7979
```
80+
81+
6. <a name="6"></a><a name="roslyn-58581"></a>In Visual Studio 17.1, `struct` type declarations with field initializers must include an explicitly declared constructor. Additionally, all fields must be definitely assigned in `struct` instance constructors that do not have a `: this()` initializer so any previously unassigned fields must be assigned from the added constructor or from field initializers. See [csharplang#5552](https://github.com/dotnet/csharplang/issues/5552), [roslyn#58581](https://github.com/dotnet/roslyn/pull/58581).
82+
83+
For instance, the following results in an error in 17.1:
84+
```csharp
85+
struct S
86+
{
87+
int X = 1; // error CS8983: A 'struct' with field initializers must include an explicitly declared constructor.
88+
int Y;
89+
}
90+
```
91+
92+
The error could be resolved by adding a constructor and assigning the other field.
93+
```csharp
94+
struct S
95+
{
96+
int X = 1;
97+
int Y;
98+
public S() { Y = 0; } // ok
99+
}
100+
```
101+
102+
7. <a name="7"></a>Before Visual Studio 17.2, the C# compiler would accept incorrect default argument values involving a reference conversion of a string constant, and would emit `null` as the constant value instead of the default value specified in source. In Visual Studio 17.2, this becomes an error. See [roslyn#59806](https://github.com/dotnet/roslyn/pull/59806).
103+
104+
For instance, the following results in an error in 17.2:
105+
```csharp
106+
void M(IEnumerable<char> s = "hello")
107+
```
108+

docs/contributing/Compiler Test Plan.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ This document provides guidance for thinking about language interactions and tes
22

33
# General concerns:
44
- Completeness of the specification as a guide for testing (is the spec complete enough to suggest what the compiler should do in each scenario?)
5-
- Other external documentation
5+
- *Ping* for new breaking changes and general ping for partner teams (Bill, Kathleen, Mads, IDE, Razor)
6+
- Help review external documentation
67
- Backward and forward compatibility (interoperation with previous and future compilers, each in both directions)
78
- Error handling/recovery (missing libraries, including missing types in mscorlib; errors in parsing, ambiguous lookup, inaccessible lookup, wrong kind of thing found, instance vs static thing found, wrong type for the context, value vs variable)
89
- BCL (including mono) and other customer impact

0 commit comments

Comments
 (0)