Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/corert.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/Common/src/TypeSystem/Ecma/EcmaModule.cs')
-rw-r--r--src/Common/src/TypeSystem/Ecma/EcmaModule.cs13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/Common/src/TypeSystem/Ecma/EcmaModule.cs b/src/Common/src/TypeSystem/Ecma/EcmaModule.cs
index 14b3d51b4..37f82ca03 100644
--- a/src/Common/src/TypeSystem/Ecma/EcmaModule.cs
+++ b/src/Common/src/TypeSystem/Ecma/EcmaModule.cs
@@ -9,8 +9,6 @@ using System.Reflection.Metadata;
using System.Reflection.Metadata.Ecma335;
using System.Reflection.PortableExecutable;
-using Internal.TypeSystem;
-
namespace Internal.TypeSystem.Ecma
{
public partial class EcmaModule : ModuleDesc
@@ -147,6 +145,10 @@ namespace Internal.TypeSystem.Ecma
item = _module;
break;
+ case HandleKind.ModuleReference:
+ item = _module.ResolveModuleReference((ModuleReferenceHandle)handle);
+ break;
+
default:
throw new BadImageFormatException("Unknown metadata token type: " + handle.Kind);
}
@@ -165,6 +167,13 @@ namespace Internal.TypeSystem.Ecma
}
}
+ private object ResolveModuleReference(ModuleReferenceHandle handle)
+ {
+ ModuleReference moduleReference = _metadataReader.GetModuleReference(handle);
+ string fileName = _metadataReader.GetString(moduleReference.Name);
+ return Context.ResolveModule(this, fileName);
+ }
+
private LockFreeReaderHashtable<EntityHandle, IEntityHandleObject> _resolvedTokens;
internal EcmaModule(TypeSystemContext context, PEReader peReader, MetadataReader metadataReader)