summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Kotas <jkotas@microsoft.com>2017-10-03 16:25:20 -0700
committerJan Kotas <jkotas@microsoft.com>2017-10-03 22:05:45 -0700
commit65738239e7a50615d0fc50dcbe5b1b6086f96ef2 (patch)
treef0b531e7d73ef3144a8b13ae2c16de8681798324
parente67311def9f8eaf2dfad73df5090a63eb34c7f53 (diff)
downloadcoreclr-65738239e7a50615d0fc50dcbe5b1b6086f96ef2.tar.gz
coreclr-65738239e7a50615d0fc50dcbe5b1b6086f96ef2.tar.bz2
coreclr-65738239e7a50615d0fc50dcbe5b1b6086f96ef2.zip
Merge pull request dotnet/corert#4663 from dotnet/nmirror
Merge nmirror to master Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
-rw-r--r--src/mscorlib/shared/System/Reflection/SignatureConstructedGenericType.cs1
-rw-r--r--src/mscorlib/shared/System/Reflection/SignatureGenericMethodParameterType.cs3
-rw-r--r--src/mscorlib/shared/System/Reflection/SignatureHasElementType.cs1
-rw-r--r--src/mscorlib/shared/System/Reflection/SignatureType.cs3
-rw-r--r--src/mscorlib/shared/System/Reflection/SignatureTypeExtensions.cs2
-rw-r--r--src/mscorlib/shared/System/Reflection/TypeDelegator.cs2
-rw-r--r--src/mscorlib/shared/System/Type.cs2
7 files changed, 11 insertions, 3 deletions
diff --git a/src/mscorlib/shared/System/Reflection/SignatureConstructedGenericType.cs b/src/mscorlib/shared/System/Reflection/SignatureConstructedGenericType.cs
index afcdfda352..cd97ffa21b 100644
--- a/src/mscorlib/shared/System/Reflection/SignatureConstructedGenericType.cs
+++ b/src/mscorlib/shared/System/Reflection/SignatureConstructedGenericType.cs
@@ -28,6 +28,7 @@ namespace System.Reflection
public sealed override bool IsVariableBoundArray => false;
public sealed override bool IsConstructedGenericType => true;
public sealed override bool IsGenericParameter => false;
+ public sealed override bool IsGenericTypeParameter => false;
public sealed override bool IsGenericMethodParameter => false;
public sealed override bool ContainsGenericParameters
{
diff --git a/src/mscorlib/shared/System/Reflection/SignatureGenericMethodParameterType.cs b/src/mscorlib/shared/System/Reflection/SignatureGenericMethodParameterType.cs
index ae73272ab7..d0790283fb 100644
--- a/src/mscorlib/shared/System/Reflection/SignatureGenericMethodParameterType.cs
+++ b/src/mscorlib/shared/System/Reflection/SignatureGenericMethodParameterType.cs
@@ -10,7 +10,8 @@ namespace System.Reflection
: base(position)
{
}
-
+
+ public sealed override bool IsGenericTypeParameter => false;
public sealed override bool IsGenericMethodParameter => true;
public sealed override string Name => "!!" + GenericParameterPosition;
diff --git a/src/mscorlib/shared/System/Reflection/SignatureHasElementType.cs b/src/mscorlib/shared/System/Reflection/SignatureHasElementType.cs
index e1aa6c3584..e74e5f5aa2 100644
--- a/src/mscorlib/shared/System/Reflection/SignatureHasElementType.cs
+++ b/src/mscorlib/shared/System/Reflection/SignatureHasElementType.cs
@@ -26,6 +26,7 @@ namespace System.Reflection
public abstract override bool IsVariableBoundArray { get; }
public sealed override bool IsConstructedGenericType => false;
public sealed override bool IsGenericParameter => false;
+ public sealed override bool IsGenericTypeParameter => false;
public sealed override bool IsGenericMethodParameter => false;
public sealed override bool ContainsGenericParameters => _elementType.ContainsGenericParameters;
diff --git a/src/mscorlib/shared/System/Reflection/SignatureType.cs b/src/mscorlib/shared/System/Reflection/SignatureType.cs
index c3dfc49174..40a0590448 100644
--- a/src/mscorlib/shared/System/Reflection/SignatureType.cs
+++ b/src/mscorlib/shared/System/Reflection/SignatureType.cs
@@ -31,7 +31,8 @@ namespace System.Reflection
public abstract override bool IsGenericTypeDefinition { get; }
public abstract override bool IsConstructedGenericType { get; }
public abstract override bool IsGenericParameter { get; }
- public abstract bool IsGenericMethodParameter { get; }
+ public abstract override bool IsGenericTypeParameter { get; }
+ public abstract override bool IsGenericMethodParameter { get; }
public abstract override bool ContainsGenericParameters { get; }
public sealed override MemberTypes MemberType => MemberTypes.TypeInfo;
diff --git a/src/mscorlib/shared/System/Reflection/SignatureTypeExtensions.cs b/src/mscorlib/shared/System/Reflection/SignatureTypeExtensions.cs
index b30da50073..f0a33d0bad 100644
--- a/src/mscorlib/shared/System/Reflection/SignatureTypeExtensions.cs
+++ b/src/mscorlib/shared/System/Reflection/SignatureTypeExtensions.cs
@@ -84,7 +84,7 @@ namespace System.Reflection
}
else if (pattern.IsGenericMethodParameter)
{
- if (!(actual.IsGenericParameter && actual.DeclaringMethod != null))
+ if (!actual.IsGenericMethodParameter)
return false;
if (pattern.GenericParameterPosition != actual.GenericParameterPosition)
return false;
diff --git a/src/mscorlib/shared/System/Reflection/TypeDelegator.cs b/src/mscorlib/shared/System/Reflection/TypeDelegator.cs
index 1dba278893..ac3972fb7c 100644
--- a/src/mscorlib/shared/System/Reflection/TypeDelegator.cs
+++ b/src/mscorlib/shared/System/Reflection/TypeDelegator.cs
@@ -105,6 +105,8 @@ namespace System.Reflection
protected override bool IsArrayImpl() => typeImpl.IsArray;
protected override bool IsPrimitiveImpl() => typeImpl.IsPrimitive;
protected override bool IsByRefImpl() => typeImpl.IsByRef;
+ public override bool IsGenericTypeParameter => typeImpl.IsGenericTypeParameter;
+ public override bool IsGenericMethodParameter => typeImpl.IsGenericMethodParameter;
protected override bool IsPointerImpl() => typeImpl.IsPointer;
protected override bool IsValueTypeImpl() => typeImpl.IsValueType;
protected override bool IsCOMObjectImpl() => typeImpl.IsCOMObject;
diff --git a/src/mscorlib/shared/System/Type.cs b/src/mscorlib/shared/System/Type.cs
index ab3d55bc66..6b6a7b3769 100644
--- a/src/mscorlib/shared/System/Type.cs
+++ b/src/mscorlib/shared/System/Type.cs
@@ -41,6 +41,8 @@ namespace System
protected abstract bool IsPointerImpl();
public virtual bool IsConstructedGenericType { get { throw NotImplemented.ByDesign; } }
public virtual bool IsGenericParameter => false;
+ public virtual bool IsGenericTypeParameter => IsGenericParameter && DeclaringMethod == null;
+ public virtual bool IsGenericMethodParameter => IsGenericParameter && DeclaringMethod != null;
public virtual bool IsGenericType => false;
public virtual bool IsGenericTypeDefinition => false;