Browse Source

Fixed ConstructedType.DeclaringType for inner classes within generic classes.

newNRvisualizers
Daniel Grunwald 15 years ago
parent
commit
918f169d1c
  1. 10
      ICSharpCode.NRefactory/TypeSystem/ConstructedType.cs

10
ICSharpCode.NRefactory/TypeSystem/ConstructedType.cs

@ -83,7 +83,15 @@ namespace ICSharpCode.NRefactory.TypeSystem
} }
public IType DeclaringType { 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 { public int TypeParameterCount {

Loading…
Cancel
Save