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

github.com/xamarin/NRefactory.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'ICSharpCode.NRefactory/TypeSystem/Implementation/DefaultResolvedField.cs')
-rw-r--r--ICSharpCode.NRefactory/TypeSystem/Implementation/DefaultResolvedField.cs8
1 files changed, 7 insertions, 1 deletions
diff --git a/ICSharpCode.NRefactory/TypeSystem/Implementation/DefaultResolvedField.cs b/ICSharpCode.NRefactory/TypeSystem/Implementation/DefaultResolvedField.cs
index 8bb2317f..16981d2b 100644
--- a/ICSharpCode.NRefactory/TypeSystem/Implementation/DefaultResolvedField.cs
+++ b/ICSharpCode.NRefactory/TypeSystem/Implementation/DefaultResolvedField.cs
@@ -74,8 +74,14 @@ namespace ICSharpCode.NRefactory.TypeSystem.Implementation
public override IMember Specialize(TypeParameterSubstitution substitution)
{
- if (TypeParameterSubstitution.Identity.Equals(substitution))
+ if (TypeParameterSubstitution.Identity.Equals(substitution)
+ || DeclaringTypeDefinition == null
+ || DeclaringTypeDefinition.TypeParameterCount == 0)
+ {
return this;
+ }
+ if (substitution.MethodTypeArguments != null && substitution.MethodTypeArguments.Count > 0)
+ substitution = new TypeParameterSubstitution(substitution.ClassTypeArguments, EmptyList<IType>.Instance);
return new SpecializedField(this, substitution);
}