Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/main' into internal-api-tracking
Browse files Browse the repository at this point in the history
* upstream/main: (252 commits)
  Use the source-built version of ref packs and don't use app host when building in source-build (dotnet#64055)
  Enable rich LSIF hover information. (dotnet#64580)
  Add ChecksumAlgorithm to project snapshot (dotnet#62840)
  Utility for uploading artifact on test failure (dotnet#64578)
  Enable diagnostics
  Revert "Remove unused TS brace completion code"
  Publish additional packages to vssdk feed (dotnet#64571)
  spelling
  Move check
  Simplify SymbolKey implementation
  lint
  Update publish data to test PR validation fix (dotnet#64559)
  Simplify
  Update src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/SymbolKey/SymbolKey.cs
  Lint
  Proper equality checks
  Update src/Workspaces/Remote/Core/RemoteCallback.cs
  Revert "Not wait for solution crawler because it can be very busy"
  Add and use TargetFramework.Net70 (dotnet#64490)
  Not wait for solution crawler because it can be very busy
  ...
  • Loading branch information
333fred committed Oct 10, 2022
2 parents 005a6a4 + 17b095e commit 1f960a3
Show file tree
Hide file tree
Showing 396 changed files with 12,949 additions and 2,948 deletions.
15 changes: 15 additions & 0 deletions Directory.Build.targets
Original file line number Diff line number Diff line change
@@ -1,5 +1,20 @@
<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
<Project>
<!-- use the source-built version of the reference packs if building in source-build -->
<ItemGroup Condition="'$(DotNetBuildFromSource)' == 'true'">
<KnownFrameworkReference Update="Microsoft.NETCore.App">
<TargetingPackVersion Condition="'%(TargetFramework)' == 'net6.0'">6.0.0</TargetingPackVersion>
</KnownFrameworkReference>
<KnownFrameworkReference Update="Microsoft.AspNetCore.App">
<TargetingPackVersion Condition="'%(TargetFramework)' == 'net6.0'">6.0.0</TargetingPackVersion>
</KnownFrameworkReference>
</ItemGroup>

<!-- do not restore or use the 6.0 app host in source-build -->
<PropertyGroup Condition="'$(DotNetBuildFromSource)' == 'true'">
<UseAppHost>false</UseAppHost>
</PropertyGroup>

<Import Project="Sdk.targets" Sdk="Microsoft.DotNet.Arcade.Sdk" />
<Import Project="eng\targets\Imports.targets" />
</Project>
2 changes: 2 additions & 0 deletions azure-pipelines-official.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ variables:
- name: _DotNetValidationArtifactsCategory
value: .NETCoreValidation
- group: DotNet-Roslyn-SDLValidation-Params
- name: Codeql.Enabled
value: true​

# To retrieve OptProf data we need to authenticate to the VS drop storage.
# Get access token with $dn-bot-devdiv-drop-rw-code-rw and dn-bot-dnceng-build-rw-code-rw from DotNet-VSTS-Infra-Access
Expand Down
9 changes: 9 additions & 0 deletions azure-pipelines-pr-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,15 @@ stages:
/p:IgnoreIbcMergeErrors=true
condition: succeeded()

- template: eng\common\templates\steps\generate-sbom.yml

- task: PowerShell@2
displayName: Publish Assets
inputs:
filePath: 'eng\publish-assets.ps1'
arguments: '-configuration $(BuildConfiguration) -branchName "$(SourceBranchName)"'
condition: succeeded()

# Publish OptProf generated JSON files as a build artifact. This allows for easy inspection from
# a build execution.
- task: PublishBuildArtifacts@1
Expand Down
7 changes: 7 additions & 0 deletions docs/Breaking API Changes.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,3 +64,10 @@ Roslyn does not support implementing completion for arbitrary languages.
### `Microsoft.CodeAnalysis.CodeStyle.NotificationOption` is now immutable

All property setters now throw an exception.

# Version 4.4.0

`Workspace.OnWorkspaceFailed` is no longer called when an error occurs while reading source file content from disk.

The `Workspace` and `DocumentId` parameters of `TextLoader.LoadTextAndVersionAsync(Workspace, DocumentId, CancellationToken)` are deprecated.
The method now receives `null` `Workspace` and `DocumentId`.
6 changes: 6 additions & 0 deletions docs/compilers/CSharp/Compiler Breaking Changes - DotNet 7.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,12 @@ Possible workarounds are:
Also, implicit conversions between `IntPtr`/`UIntPtr` and other numeric types are treated as standard
conversions on such platforms. This can affect overload resolution in some cases.

These changes could cause a behavioral change if the user code was depending on overflow exceptions in an
unchecked context, or if it was not expecting overflow exceptions in a checked context. An analyzer was
[added in 7.0](https://github.com/dotnet/runtime/issues/74022) to help detect such behavioral changes
and take appropriate action. The analyzer will produce diagnostics on potential behavioral changes, which default
to info severity but can be upgraded to warnings via [editorconfig](https://learn.microsoft.com/dotnet/fundamentals/code-analysis/configuration-options#severity-level).
## Addition of System.UIntPtr and System.Int32

***Introduced in .NET SDK 7.0.100, Visual Studio 2022 version 17.3.***
Expand Down
1 change: 1 addition & 0 deletions eng/Versions.props
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
<BasicReferenceAssembliesNetStandard20Version>1.2.4</BasicReferenceAssembliesNetStandard20Version>
<BasicReferenceAssembliesNet50Version>1.2.4</BasicReferenceAssembliesNet50Version>
<BasicReferenceAssembliesNet60Version>1.2.4</BasicReferenceAssembliesNet60Version>
<BasicReferenceAssembliesNet70Version>1.3.0</BasicReferenceAssembliesNet70Version>
<BasicReferenceAssembliesNetStandard13Version>1.2.4</BasicReferenceAssembliesNetStandard13Version>
<BenchmarkDotNetVersion>0.13.0</BenchmarkDotNetVersion>
<BenchmarkDotNetDiagnosticsWindowsVersion>0.13.0</BenchmarkDotNetDiagnosticsWindowsVersion>
Expand Down
2 changes: 1 addition & 1 deletion eng/common/templates/job/execute-sdl.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ jobs:
demands: Cmd
# If it's not devdiv, it's dnceng
${{ if ne(variables['System.TeamProject'], 'DevDiv') }}:
name: NetCore1ESPool-Svc-Internal
name: NetCore1ESPool-Internal
demands: ImageOverride -equals windows.vs2019.amd64
steps:
- checkout: self
Expand Down
2 changes: 1 addition & 1 deletion eng/common/templates/job/onelocbuild.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
demands: Cmd
# If it's not devdiv, it's dnceng
${{ if ne(variables['System.TeamProject'], 'DevDiv') }}:
name: NetCore1ESPool-Svc-Internal
name: NetCore1ESPool-Internal
demands: ImageOverride -equals windows.vs2019.amd64

variables:
Expand Down
4 changes: 2 additions & 2 deletions eng/common/templates/job/source-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,10 @@ jobs:
# source-build builds run in Docker, including the default managed platform.
pool:
${{ if eq(variables['System.TeamProject'], 'public') }}:
name: NetCore-Svc-Public
name: NetCore-Public
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open
${{ if eq(variables['System.TeamProject'], 'internal') }}:
name: NetCore1ESPool-Svc-Internal
name: NetCore1ESPool-Internal
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64
${{ if ne(parameters.platform.pool, '') }}:
pool: ${{ parameters.platform.pool }}
Expand Down
2 changes: 1 addition & 1 deletion eng/common/templates/jobs/jobs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ jobs:
demands: Cmd
# If it's not devdiv, it's dnceng
${{ if ne(variables['System.TeamProject'], 'DevDiv') }}:
name: NetCore1ESPool-Svc-Internal
name: NetCore1ESPool-Internal
demands: ImageOverride -equals windows.vs2019.amd64

runAsPublic: ${{ parameters.runAsPublic }}
Expand Down
16 changes: 15 additions & 1 deletion eng/config/BannedSymbols.txt
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,18 @@ M:Microsoft.CodeAnalysis.Simplification.Simplifier.ReduceAsync(Microsoft.CodeAna
M:Microsoft.CodeAnalysis.Simplification.Simplifier.ReduceAsync(Microsoft.CodeAnalysis.Document,Microsoft.CodeAnalysis.SyntaxAnnotation,Microsoft.CodeAnalysis.Options.OptionSet,System.Threading.CancellationToken); Use overload that takes SimplifierOptions
M:Microsoft.CodeAnalysis.Simplification.Simplifier.ReduceAsync(Microsoft.CodeAnalysis.Document,Microsoft.CodeAnalysis.Text.TextSpan,Microsoft.CodeAnalysis.Options.OptionSet,System.Threading.CancellationToken); Use overload that takes SimplifierOptions
M:Microsoft.CodeAnalysis.Simplification.Simplifier.ReduceAsync(Microsoft.CodeAnalysis.Document,System.Collections.Generic.IEnumerable{Microsoft.CodeAnalysis.Text.TextSpan},Microsoft.CodeAnalysis.Options.OptionSet,System.Threading.CancellationToken); Use overload that takes SimplifierOptions
M:Microsoft.CodeAnalysis.Editing.SyntaxEditor.#ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.Host.HostWorkspaceServices); Use overload that takes HostSolutionServices instead
M:Microsoft.CodeAnalysis.Editing.SyntaxEditor.#ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.Host.HostWorkspaceServices); Use overload that takes HostSolutionServices instead
M:Microsoft.CodeAnalysis.FileTextLoader.#ctor(System.String,System.Text.Encoding); use WorkspaceFileTextLoader that calls on ITextFactoryService to create SourceText
M:Microsoft.CodeAnalysis.CSharp.SyntaxFactory.SyntaxTree(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.ParseOptions,System.String,System.Text.Encoding); Use CSharpSyntaxTree sublass that takes checksum algorithm
M:Microsoft.CodeAnalysis.CSharp.SyntaxFactory.ParseSyntaxTree(System.String,Microsoft.CodeAnalysis.ParseOptions,System.String,System.Text.Encoding,System.Threading.CancellationToken); Use CSharpSyntaxTree sublass that takes checksum algorithm
M:Microsoft.CodeAnalysis.CSharp.CSharpSyntaxTree.CreateWithoutClone(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode); Use CSharpSyntaxTree sublass that takes checksum algorithm
M:Microsoft.CodeAnalysis.CSharp.CSharpSyntaxTree.Create(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode, Microsoft.CodeAnalysis.CSharp.CSharpParseOptions options, System.String path, System.Text.Encoding encoding); Use CSharpSyntaxTree sublass that takes checksum algorithm
M:Microsoft.CodeAnalysis.CSharp.CSharpSyntaxTree.ParseText(System.String,Microsoft.CodeAnalysis.CSharp.CSharpParseOptions,System.String,System.Text.Encoding,System.Threading.CancellationToken); Use API that takes SourceText
M:Microsoft.CodeAnalysis.CSharp.CSharpSyntaxTree.ParseText(System.String,Microsoft.CodeAnalysis.CSharp.CSharpParseOptions,System.String,System.Text.Encoding,System.Collections.Immutable.ImmutableDictionary{System.String,Microsoft.CodeAnalysis.ReportDiagnostic},System.Nullable{System.Boolean},System.Threading.CancellationToken); Use API that takes SourceText
M:Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.SyntaxTree(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.ParseOptions,System.String,System.Text.Encoding); Use VisualBasicSyntaxTree sublass that takes checksum algorithm
M:Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.ParseSyntaxTree(System.String,Microsoft.CodeAnalysis.ParseOptions,System.String,System.Text.Encoding,System.Threading.CancellationToken); Use overload with SourceText
M:Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.ParseSyntaxTree(System.String,Microsoft.CodeAnalysis.ParseOptions,System.String,System.Text.Encoding,System.Collections.Immutable.ImmutableDictionary{System.String,Microsoft.CodeAnalysis.ReportDiagnostic},System.Threading.CancellationToken); Use overload with SourceText
M:Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxTree.CreateWithoutClone(Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode); Use VisualBasicSyntaxTree sublass that takes checksum algorithm
M:Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxTree.Create(Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode,Microsoft.CodeAnalysis.VisualBasic.VisualBasicParseOptions,System.String,System.Text.Encoding,System.Collections.Immutable.ImmutableDictionary{System.String,Microsoft.CodeAnalysis.ReportDiagnostic}); Use VisualBasicSyntaxTree sublass that takes checksum algorithm
M:Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxTree.Create(Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode,Microsoft.CodeAnalysis.VisualBasic.VisualBasicParseOptions,System.String,System.Text.Encoding); Use VisualBasicSyntaxTree sublass that takes checksum algorithm
M:Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxTree.ParseText(System.String,Microsoft.CodeAnalysis.VisualBasic.VisualBasicParseOptions,System.String,System.Text.Encoding,System.Collections.Immutable.ImmutableDictionary{System.String,Microsoft.CodeAnalysis.ReportDiagnostic},System.Threading.CancellationToken); Use overload with SourceText
22 changes: 16 additions & 6 deletions eng/config/PublishData.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,22 @@
"packages": {
"default": {
"Microsoft.CodeAnalysis": "arcade",
"Microsoft.CodeAnalysis.Common": "arcade",
"Microsoft.CodeAnalysis.Common": "vssdk",
"Microsoft.CodeAnalysis.Compilers": "arcade",
"Microsoft.CodeAnalysis.Scripting": "arcade",
"Microsoft.CodeAnalysis.Scripting.Common": "arcade",
"Microsoft.CodeAnalysis.Workspaces.Common": "arcade",
"Microsoft.CodeAnalysis.Workspaces.Common": "vssdk",
"Microsoft.CodeAnalysis.Workspaces.MSBuild": "arcade",
"Microsoft.CodeAnalysis.Workspaces.Desktop": "arcade",
"Microsoft.CodeAnalysis.CSharp": "arcade",
"Microsoft.CodeAnalysis.CSharp": "vssdk",
"Microsoft.CodeAnalysis.CSharp.CodeStyle": "arcade",
"Microsoft.CodeAnalysis.CSharp.Features": "arcade",
"Microsoft.CodeAnalysis.CSharp.Scripting": "arcade",
"Microsoft.CodeAnalysis.CSharp.Workspaces": "arcade",
"Microsoft.CodeAnalysis.VisualBasic": "arcade",
"Microsoft.CodeAnalysis.CSharp.Workspaces": "vssdk",
"Microsoft.CodeAnalysis.VisualBasic": "vssdk",
"Microsoft.CodeAnalysis.VisualBasic.CodeStyle": "arcade",
"Microsoft.CodeAnalysis.VisualBasic.Features": "arcade",
"Microsoft.CodeAnalysis.VisualBasic.Workspaces": "arcade",
"Microsoft.CodeAnalysis.VisualBasic.Workspaces": "vssdk",
"Microsoft.CodeAnalysis.Build.Tasks": "arcade",
"Microsoft.Net.Compilers": "arcade",
"Microsoft.Net.Compilers.Toolset": "arcade",
Expand Down Expand Up @@ -144,6 +144,16 @@
"vsMajorVersion": 17,
"insertionCreateDraftPR": true,
"insertionTitlePrefix": "[d17.5]"
},
"dev/jorobich/fix-pr-val": {
"nugetKind": [
"Shipping",
"NonShipping"
],
"vsBranch": "main",
"vsMajorVersion": 17,
"insertionCreateDraftPR": true,
"insertionTitlePrefix": "[Validation]"
}
}
}
4 changes: 2 additions & 2 deletions eng/targets/Imports.targets
Original file line number Diff line number Diff line change
Expand Up @@ -175,8 +175,8 @@
</ItemGroup>

<ItemGroup>
<!-- Include BannedSymbols covering all projects -->
<AdditionalFiles Include="$(MSBuildThisFileDirectory)..\config\BannedSymbols.txt" />
<!-- Include BannedSymbols covering all product projects -->
<AdditionalFiles Include="$(MSBuildThisFileDirectory)..\config\BannedSymbols.txt" Condition="'$(IsTestProject)' == 'false'" />
</ItemGroup>

<ItemGroup>
Expand Down
1 change: 1 addition & 0 deletions eng/targets/Services.props
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
<ServiceHubService Include="Microsoft.VisualStudio.LanguageServices.CodeLensReferences" ClassName="Microsoft.CodeAnalysis.Remote.RemoteCodeLensReferencesService+Factory" />
<ServiceHubService Include="Microsoft.VisualStudio.LanguageServices.DesignerAttributeDiscovery" ClassName="Microsoft.CodeAnalysis.Remote.RemoteDesignerAttributeDiscoveryService+Factory" />
<ServiceHubService Include="Microsoft.VisualStudio.LanguageServices.ProjectTelemetry" ClassName="Microsoft.CodeAnalysis.Remote.RemoteProjectTelemetryService+Factory" />
<ServiceHubService Include="Microsoft.VisualStudio.LanguageServices.LegacySolutionEventsAggregation" ClassName="Microsoft.CodeAnalysis.Remote.RemoteLegacySolutionEventsAggregationService+Factory" />
<ServiceHubService Include="Microsoft.VisualStudio.LanguageServices.SymbolSearchUpdate" ClassName="Microsoft.CodeAnalysis.Remote.RemoteSymbolSearchUpdateService+Factory" />
<ServiceHubService Include="Microsoft.VisualStudio.LanguageServices.TaskList" ClassName="Microsoft.CodeAnalysis.Remote.RemoteTaskListService+Factory" />
<ServiceHubService Include="Microsoft.VisualStudio.LanguageServices.EditAndContinue" ClassName="Microsoft.CodeAnalysis.EditAndContinue.RemoteEditAndContinueService+Factory" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,64 @@ void M(object x)
}.RunAsync();
}

[Fact, WorkItem(64292, "https://github.com/dotnet/roslyn/issues/64292")]
public async Task BooleanValueConstantPattern()
{
await new VerifyCS.Test
{
TestCode =
@"class C
{
void M(bool x)
{
if (!(x [|is|] true))
{
}
}
}",
FixedCode =
@"class C
{
void M(bool x)
{
if (x is false)
{
}
}
}",
LanguageVersion = LanguageVersion.CSharp9,
}.RunAsync();
}

[Fact, WorkItem(64292, "https://github.com/dotnet/roslyn/issues/64292")]
public async Task NonBooleanValueConstantPattern()
{
await new VerifyCS.Test
{
TestCode =
@"class C
{
void M(object x)
{
if (!(x [|is|] true))
{
}
}
}",
FixedCode =
@"class C
{
void M(object x)
{
if (x is not true)
{
}
}
}",
LanguageVersion = LanguageVersion.CSharp9,
}.RunAsync();
}

[Fact, WorkItem(46699, "https://github.com/dotnet/roslyn/issues/46699")]
public async Task UseNotPattern()
{
Expand Down
2 changes: 1 addition & 1 deletion src/Analyzers/Core/Analyzers/Helpers/DiagnosticHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -273,7 +273,7 @@ public static Diagnostic CreateWithMessage(
}

Debug.Assert(id.StartsWith("IDE", StringComparison.Ordinal));
return $"https://docs.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/{id.ToLowerInvariant()}";
return $"https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/{id.ToLowerInvariant()}";
}

public sealed class LocalizableStringWithArguments : LocalizableString, IObjectWritable
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ internal sealed override CommandLineArguments CommonParse(IEnumerable<string> ar
bool embedAllSourceFiles = false;
bool resourcesOrModulesSpecified = false;
Encoding? codepage = null;
var checksumAlgorithm = SourceHashAlgorithmUtils.DefaultContentHashAlgorithm;
var checksumAlgorithm = SourceHashAlgorithms.Default;
var defines = ArrayBuilder<string>.GetInstance();
List<CommandLineReference> metadataReferences = new List<CommandLineReference>();
List<CommandLineAnalyzerReference> analyzers = new List<CommandLineAnalyzerReference>();
Expand Down
27 changes: 5 additions & 22 deletions src/Compilers/CSharp/Portable/Symbols/AssemblySymbol.cs
Original file line number Diff line number Diff line change
Expand Up @@ -442,19 +442,16 @@ internal bool RuntimeSupportsStaticAbstractMembersInInterfaces

/// <summary>
/// Whether the target runtime supports numeric IntPtr types.
/// This test hook should be removed once TargetFramework.Net70 is added.
/// Tracked by https://github.com/dotnet/roslyn/issues/61235
/// </summary>
internal virtual bool RuntimeSupportsNumericIntPtr
internal bool RuntimeSupportsNumericIntPtr
{
get
{
// CorLibrary should never be null, but that invariant is broken in some cases for MissingAssemblySymbol.
// Tracked by https://github.com/dotnet/roslyn/issues/61262
return CorLibrary?.RuntimeSupportsNumericIntPtr == true;
return CorLibrary is not null &&
RuntimeSupportsFeature(SpecialMember.System_Runtime_CompilerServices_RuntimeFeature__NumericIntPtr);
}

set => CorLibrary.RuntimeSupportsNumericIntPtr = value;
}

protected bool RuntimeSupportsFeature(SpecialMember feature)
Expand All @@ -467,22 +464,8 @@ protected bool RuntimeSupportsFeature(SpecialMember feature)
internal bool RuntimeSupportsUnmanagedSignatureCallingConvention
=> RuntimeSupportsFeature(SpecialMember.System_Runtime_CompilerServices_RuntimeFeature__UnmanagedSignatureCallingConvention);

internal virtual bool RuntimeSupportsByRefFields
{
get
{
// CorLibrary should never be null, but that invariant is broken in some cases for MissingAssemblySymbol.
// Tracked by https://github.com/dotnet/roslyn/issues/61262
return CorLibrary?.RuntimeSupportsByRefFields == true;
}

set
{
// The setter should be removed once TargetFramework.Net70 is added
// Tracked by https://github.com/dotnet/roslyn/issues/61463
CorLibrary.RuntimeSupportsByRefFields = value;
}
}
internal bool RuntimeSupportsByRefFields
=> RuntimeSupportsFeature(SpecialMember.System_Runtime_CompilerServices_RuntimeFeature__ByRefFields);

/// <summary>
/// True if the target runtime support covariant returns of methods declared in classes.
Expand Down
Loading

0 comments on commit 1f960a3

Please sign in to comment.