diff options
Diffstat (limited to 'ICSharpCode.NRefactory/TypeSystem/Implementation/DefaultResolvedField.cs')
-rw-r--r-- | ICSharpCode.NRefactory/TypeSystem/Implementation/DefaultResolvedField.cs | 8 |
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); } |