diff options
Diffstat (limited to 'ICSharpCode.NRefactory/TypeSystem/Implementation/DefaultResolvedProperty.cs')
-rw-r--r-- | ICSharpCode.NRefactory/TypeSystem/Implementation/DefaultResolvedProperty.cs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/ICSharpCode.NRefactory/TypeSystem/Implementation/DefaultResolvedProperty.cs b/ICSharpCode.NRefactory/TypeSystem/Implementation/DefaultResolvedProperty.cs index 0ddb9549..69b477f8 100644 --- a/ICSharpCode.NRefactory/TypeSystem/Implementation/DefaultResolvedProperty.cs +++ b/ICSharpCode.NRefactory/TypeSystem/Implementation/DefaultResolvedProperty.cs @@ -100,8 +100,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 SpecializedProperty(this, substitution); } } |