Refactor missing reference errors to allow not throwing for all cases (#50437)
authorDavid Wrighton <davidwr@microsoft.com>
Wed, 31 Mar 2021 17:50:25 +0000 (10:50 -0700)
committerGitHub <noreply@github.com>
Wed, 31 Mar 2021 17:50:25 +0000 (10:50 -0700)
commit4581290e1b608e08ff628cceb6de2f3365a9912d
tree5bcfd1d4df5a91248a16284f1af133194725581e
parent94bb5d2f5c64e2059a64fc76680ae6c2246392a2
Refactor missing reference errors to allow not throwing for all cases (#50437)

- Build the concept of a cacheable resolution failure
- Plumb it through the Ecma type loader and the required public api surfaces
- Use it within the Mibc parser to avoid throwing
28 files changed:
src/coreclr/tools/Common/Compiler/TypeExtensions.cs
src/coreclr/tools/Common/TypeSystem/Common/ExceptionStringID.cs
src/coreclr/tools/Common/TypeSystem/Common/MetadataTypeSystemContext.cs
src/coreclr/tools/Common/TypeSystem/Common/ModuleDesc.cs
src/coreclr/tools/Common/TypeSystem/Common/NotFoundBehavior.cs [new file with mode: 0644]
src/coreclr/tools/Common/TypeSystem/Common/Properties/Resources.resx
src/coreclr/tools/Common/TypeSystem/Common/ResolutionFailure.cs [new file with mode: 0644]
src/coreclr/tools/Common/TypeSystem/Common/ThrowHelper.Common.cs
src/coreclr/tools/Common/TypeSystem/Common/ThrowHelper.cs
src/coreclr/tools/Common/TypeSystem/Common/TypeSystemException.cs
src/coreclr/tools/Common/TypeSystem/Common/Utilities/CustomAttributeTypeNameParser.cs
src/coreclr/tools/Common/TypeSystem/Ecma/EcmaField.cs
src/coreclr/tools/Common/TypeSystem/Ecma/EcmaMethod.cs
src/coreclr/tools/Common/TypeSystem/Ecma/EcmaModule.cs
src/coreclr/tools/Common/TypeSystem/Ecma/EcmaSignatureParser.cs
src/coreclr/tools/Common/TypeSystem/IL/EcmaMethodIL.cs
src/coreclr/tools/Common/TypeSystem/IL/HelperExtensions.cs
src/coreclr/tools/Common/TypeSystem/IL/InstantiatedMethodIL.cs
src/coreclr/tools/Common/TypeSystem/IL/MethodIL.cs
src/coreclr/tools/Common/TypeSystem/IL/Stubs/ILEmitter.cs
src/coreclr/tools/ILVerification/ILVerification.projitems
src/coreclr/tools/ILVerification/SimpleArrayOfTRuntimeInterfacesAlgorithm.cs
src/coreclr/tools/aot/ILCompiler.ReadyToRun/IBC/IBCProfileParser.cs
src/coreclr/tools/aot/ILCompiler.ReadyToRun/IBC/MIbcProfileParser.cs
src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun/ILCompiler.TypeSystem.ReadyToRun.csproj
src/coreclr/tools/dotnet-pgo/R2RSignatureTypeProvider.cs
src/coreclr/tools/dotnet-pgo/TypeRefTypeSystem/TypeRefTypeSystemContext.cs
src/coreclr/tools/dotnet-pgo/TypeRefTypeSystem/TypeRefTypeSystemModule.cs