From 918f169d1cd982f67a42b81cdf84e560c5890cc2 Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Thu, 7 Oct 2010 20:07:10 +0200 Subject: [PATCH] Fixed ConstructedType.DeclaringType for inner classes within generic classes. --- ICSharpCode.NRefactory/TypeSystem/ConstructedType.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/ICSharpCode.NRefactory/TypeSystem/ConstructedType.cs b/ICSharpCode.NRefactory/TypeSystem/ConstructedType.cs index 3571882a2c..b3cbfadbef 100644 --- a/ICSharpCode.NRefactory/TypeSystem/ConstructedType.cs +++ b/ICSharpCode.NRefactory/TypeSystem/ConstructedType.cs @@ -83,7 +83,15 @@ namespace ICSharpCode.NRefactory.TypeSystem } public IType DeclaringType { - get { return genericType.DeclaringType; } + get { + ITypeDefinition declaringTypeDef = genericType.DeclaringTypeDefinition; + if (declaringTypeDef != null && declaringTypeDef.TypeParameterCount > 0) { + IType[] newTypeArgs = new IType[declaringTypeDef.TypeParameterCount]; + Array.Copy(this.typeArguments, 0, newTypeArgs, 0, newTypeArgs.Length); + return new ConstructedType(declaringTypeDef, newTypeArgs); + } + return declaringTypeDef; + } } public int TypeParameterCount {