diff options
author | Mike Krüger <mkrueger@xamarin.com> | 2015-01-30 13:14:27 +0300 |
---|---|---|
committer | Mike Krüger <mkrueger@xamarin.com> | 2015-01-30 13:14:27 +0300 |
commit | a3b4c591e3150148f31b21bf5ab252b0c7467de9 (patch) | |
tree | 5b6a5eda28fd03ce2e1ad153267c13eb1e8e7f54 /reflect | |
parent | 7e0b99936bf92502f7f63d43865cbbe771d3873b (diff) |
Reapply SupressReferenceTypeIdentityConversion flag.
Diffstat (limited to 'reflect')
-rw-r--r-- | reflect/Type.cs | 2 | ||||
-rw-r--r-- | reflect/Universe.cs | 6 |
2 files changed, 8 insertions, 0 deletions
diff --git a/reflect/Type.cs b/reflect/Type.cs index 66606c12..de4f534f 100644 --- a/reflect/Type.cs +++ b/reflect/Type.cs @@ -2662,6 +2662,8 @@ namespace IKVM.Reflection internal static Type Make(Type type, Type[] typeArguments, CustomModifiers[] mods) { + if (type.Universe.SupressReferenceTypeIdentityConversion) + return type.Universe.CanonicalizeType(new GenericTypeInstance(type, typeArguments, mods)); bool identity = true; if (type is TypeBuilder || type is BakedType || type.__IsMissing) { diff --git a/reflect/Universe.cs b/reflect/Universe.cs index 26fb558e..09f3655a 100644 --- a/reflect/Universe.cs +++ b/reflect/Universe.cs @@ -129,6 +129,7 @@ namespace IKVM.Reflection ResolveMissingMembers = 32, DisableWindowsRuntimeProjection = 64, DecodeVersionInfoAttributeBlobs = 128, + SupressReferenceTypeIdentityConversion = 1 << 20 } public sealed class Universe : IDisposable @@ -1222,5 +1223,10 @@ namespace IKVM.Reflection { get { return (options & UniverseOptions.DecodeVersionInfoAttributeBlobs) != 0; } } + + internal bool SupressReferenceTypeIdentityConversion + { + get { return (options & UniverseOptions.SupressReferenceTypeIdentityConversion) != 0; } + } } } |