Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Commit 4f09845

Browse files
authored
Merge pull request #23812 from dotnet-maestro-bot/merge/master-to-release/3.0
[automated] Merge branch 'master' => 'release/3.0'
2 parents 5db0a94 + 08d1cd0 commit 4f09845

22 files changed

+562
-44
lines changed

Documentation/design-docs/default-interface-methods.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,13 @@ The algorithm is amended as follows:
4141
* If the interface method itself is not abstract, add it to the list.
4242
* Apply all MethodImpls specified in the list of interfaces implicitly implemented by the runtime class of the instance through which the interface method is invoked and add the methods to the list.
4343
* Go over the owning types of each of the candidate methods in the list. If the owning type is less concrete than some other type in the list (there is another method in the list whose owning type requires the less concrete type), remove it from the list.
44-
* If there's more than one method in the list, throw NotSupportedException
45-
* If there's exactly one method in the list call that method
44+
* If there's more than one method in the list, throw AmbiguousImplementationException
45+
* If there's exactly one method in the list and the method is not abstract, call that method
46+
* If there's exactly one method in the list but the method is abstract, throw `EntryPointNotFoundException`.
4647
* If there's no method in the list and the interface is variant, repeat the above algorithm, looking for a variant match. Return the first variant match provided by a most specific interface.
4748

4849
**Section** "III.2.1 constrained. prefix" the paragraph starting with "This last case can only occur when method was defined on `System.Object`, `System.ValueType`, or `System.Enum`" is extended to also cover default interface method implementation. In the case the interface method implementation is provided by an interface, the implicit boxing becomes _observable_ to the program.
4950

50-
**Section** "III.4.2 callvirt" is extended to allow throwing `AmbiguousImplementationException` if the implementation of the interface method resolves at runtime to more than one default interface method.
51+
**Section** "III.4.2 callvirt" is extended to allow throwing `AmbiguousImplementationException` if the implementation of the interface method resolves at runtime to more than one default interface method. It's also extended to specify throwing `EntryPointNotFoundException` if the default interface implementation is abstract.
5152

52-
**Section** "III.4.18 ldvirtftn" is extended to allow throwing `AmbiguousImplementationException` if the implementation of the interface method resolves at runtime to more than one default interface method.
53+
**Section** "III.4.18 ldvirtftn" is extended to allow throwing `AmbiguousImplementationException` if the implementation of the interface method resolves at runtime to more than one default interface method. It's also extended to specify throwing `EntryPointNotFoundException` if the default interface implementation is abstract.

ILAsmVersion.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.0.0-preview5-27606-71
1+
3.0.0-preview5-27607-72

azure-pipelines.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ resources:
2828
image: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.6-WithNode-f4d3fe3-20181220200247
2929

3030
- container: musl_arm64_build_image
31-
image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-alpine10fcdcf-20190208200917
31+
image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-alpine-406629a-20190403203438
3232

3333
- container: centos7_x64_build_image
3434
image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-d485f41-20173404063424

dependencies.props

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,13 @@
2626

2727
<!-- Source of truth for dependency tooling: the commit hash of the dotnet/versions master branch as of the last auto-upgrade. -->
2828
<PropertyGroup>
29-
<CoreClrCurrentRef>66f3bb05de8ac6063fbedff5816ef25cc6ecfa11</CoreClrCurrentRef>
29+
<CoreClrCurrentRef>caa82199af6a08425d93d3ab3a4b1cb9750ed6b3</CoreClrCurrentRef>
3030
<BuildToolsCurrentRef>66f3bb05de8ac6063fbedff5816ef25cc6ecfa11</BuildToolsCurrentRef>
3131
</PropertyGroup>
3232

3333
<!-- Tests/infrastructure dependency versions. -->
3434
<PropertyGroup>
35-
<MicrosoftNETCoreRuntimeCoreCLRPackageVersion>3.0.0-preview5-27606-71</MicrosoftNETCoreRuntimeCoreCLRPackageVersion>
35+
<MicrosoftNETCoreRuntimeCoreCLRPackageVersion>3.0.0-preview5-27607-72</MicrosoftNETCoreRuntimeCoreCLRPackageVersion>
3636
<XunitPackageVersion>2.4.1</XunitPackageVersion>
3737
<XunitPerformanceApiPackageVersion>1.0.0-beta-build0015</XunitPerformanceApiPackageVersion>
3838
<MicrosoftDiagnosticsTracingTraceEventPackageVersion>2.0.36</MicrosoftDiagnosticsTracingTraceEventPackageVersion>

eng/Version.Details.xml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,21 @@
33
<ProductDependencies>
44
</ProductDependencies>
55
<ToolsetDependencies>
6-
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="1.0.0-beta.19205.6">
6+
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="1.0.0-beta.19207.1">
77
<Uri>https://github.com/dotnet/arcade</Uri>
8-
<Sha>4217db4a23ffd15abb3771d635b66162994fb9e4</Sha>
8+
<Sha>b1f9e12fe3ee71c48ea60b15968745850ac0a4a7</Sha>
99
</Dependency>
10-
<Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="2.0.0-beta.19205.6">
10+
<Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="2.0.0-beta.19207.1">
1111
<Uri>https://github.com/dotnet/arcade</Uri>
12-
<Sha>4217db4a23ffd15abb3771d635b66162994fb9e4</Sha>
12+
<Sha>b1f9e12fe3ee71c48ea60b15968745850ac0a4a7</Sha>
1313
</Dependency>
14-
<Dependency Name="Microsoft.Private.CoreFx.NETCoreApp" Version="4.6.0-preview5.19205.9">
14+
<Dependency Name="Microsoft.Private.CoreFx.NETCoreApp" Version="4.6.0-preview5.19208.1">
1515
<Uri>https://github.com/dotnet/corefx</Uri>
16-
<Sha>35249a0072b41a89ce1542deacb2611c2393dec0</Sha>
16+
<Sha>87fdc75beacc76e02c8e572ae3b0613b418200eb</Sha>
1717
</Dependency>
18-
<Dependency Name="Microsoft.NETCore.Platforms" Version="3.0.0-preview5.19205.9">
18+
<Dependency Name="Microsoft.NETCore.Platforms" Version="3.0.0-preview5.19208.1">
1919
<Uri>https://github.com/dotnet/corefx</Uri>
20-
<Sha>35249a0072b41a89ce1542deacb2611c2393dec0</Sha>
20+
<Sha>87fdc75beacc76e02c8e572ae3b0613b418200eb</Sha>
2121
</Dependency>
2222
<Dependency Name="Microsoft.NETCore.App" Version="3.0.0-preview4-27604-13">
2323
<Uri>https://github.com/dotnet/core-setup</Uri>

eng/Versions.props

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33
<PropertyGroup>
44
<!-- This repo version -->
55
<VersionPrefix>3.0.0</VersionPrefix>
6-
<PreReleaseVersionLabel>preview3</PreReleaseVersionLabel>
6+
<PreReleaseVersionLabel>preview4</PreReleaseVersionLabel>
77
<!-- Opt-out repo features -->
88
<UsingToolXliff>false</UsingToolXliff>
99
<UsingToolNetFrameworkReferenceAssemblies>true</UsingToolNetFrameworkReferenceAssemblies>
1010
<MicrosoftNetFrameworkReferenceAssembliesVersion>1.0.0-alpha-004</MicrosoftNetFrameworkReferenceAssembliesVersion>
11-
<MicrosoftPrivateCoreFxNETCoreAppVersion>4.6.0-preview5.19205.9</MicrosoftPrivateCoreFxNETCoreAppVersion>
12-
<MicrosoftNETCorePlatformsVersion>3.0.0-preview5.19205.9</MicrosoftNETCorePlatformsVersion>
11+
<MicrosoftPrivateCoreFxNETCoreAppVersion>4.6.0-preview5.19208.1</MicrosoftPrivateCoreFxNETCoreAppVersion>
12+
<MicrosoftNETCorePlatformsVersion>3.0.0-preview5.19208.1</MicrosoftNETCorePlatformsVersion>
1313
<MicrosoftNETCoreAppVersion>3.0.0-preview4-27604-13</MicrosoftNETCoreAppVersion>
1414
<optimizationIBCCoreCLRVersion>99.99.99-master-20190313.3</optimizationIBCCoreCLRVersion>
1515
<optimizationPGOCoreCLRVersion>99.99.99-master-20190313.3</optimizationPGOCoreCLRVersion>

eng/platform-matrix.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,8 @@ jobs:
9494
osIdentifier: Linux_musl
9595
containerName: musl_arm64_build_image
9696
helixQueues:
97-
# TODO: enable (Alpine.38.Arm64.Open) once https://github.com/dotnet/coreclr/issues/23621 is resolved
97+
- ${{ if eq(variables['System.TeamProject'], 'public') }}:
98+
- (Alpine.38.Arm64.Open)[email protected]/dotnet-buildtools/prereqs:alpine-3.8-helix-arm64v8-46e69dd-20190313223330
9899
- ${{ if eq(variables['System.TeamProject'], 'internal') }}:
99100
- (Alpine.38.Arm64)[email protected]/dotnet-buildtools/prereqs:alpine-3.8-helix-arm64v8-46e69dd-20190313223330
100101
crossrootfsDir: '/crossrootfs/arm64'

eng/test-job.yml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -68,12 +68,6 @@ jobs:
6868
- name: clangArg
6969
value: '-clang5.0'
7070

71-
# TODO: Enable crossgen in build-test.sh. It currently doesn't
72-
# accept a crossgen arg, so disable the macos/linux crossgen test
73-
# build jobs.
74-
${{ if and(eq(parameters.readyToRun, true), in(parameters.osGroup, 'Linux', 'OSX')) }}:
75-
condition: false
76-
7771
# FreeBSD test jobs are disabled since we don't have any FreeBSD helix queues.
7872
${{ if eq(parameters.osGroup, 'FreeBSD') }}:
7973
condition: false

global.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"python": "2.7.15"
88
},
99
"msbuild-sdks": {
10-
"Microsoft.DotNet.Arcade.Sdk": "1.0.0-beta.19205.6",
11-
"Microsoft.DotNet.Helix.Sdk": "2.0.0-beta.19205.6"
10+
"Microsoft.DotNet.Arcade.Sdk": "1.0.0-beta.19207.1",
11+
"Microsoft.DotNet.Helix.Sdk": "2.0.0-beta.19207.1"
1212
}
1313
}

src/dlls/mscorrc/mscorrc.rc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -733,6 +733,7 @@ BEGIN
733733
IDS_CLASSLOAD_MI_FINAL_IMPL "Method implementation on an interface '%1' from assembly '%2' must be a final method."
734734
IDS_CLASSLOAD_AMBIGUOUS_OVERRIDE "Could not call method '%1' on interface '%2' with type '%3' from assembly '%4' because there are multiple incompatible interface methods overriding this method."
735735
IDS_CLASSLOAD_UNSUPPORTED_DISPATCH "Could not make constrained call to method '%1' on interface '%2' with type '%3' from assembly '%4'. Dispatch to default interface methods is not supported in this situation."
736+
IDS_CLASSLOAD_METHOD_NOT_IMPLEMENTED "Could not call method '%1' on type '%2' with an instance of '%3' from assembly '%4' because there is no implementation for the method."
736737

737738
IDS_CLASSLOAD_MISSINGMETHODRVA "Could not load type '%1' from assembly '%2' because the method '%3' has no implementation (no RVA)."
738739
SECURITY_E_INCOMPATIBLE_EVIDENCE "Assembly '%1' already loaded without additional security evidence."

0 commit comments

Comments
 (0)