diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/TypeSystemAstBuilder.cs b/ICSharpCode.Decompiler/CSharp/Syntax/TypeSystemAstBuilder.cs index 58fd10c83..dae49f6d0 100644 --- a/ICSharpCode.Decompiler/CSharp/Syntax/TypeSystemAstBuilder.cs +++ b/ICSharpCode.Decompiler/CSharp/Syntax/TypeSystemAstBuilder.cs @@ -546,7 +546,13 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax { // Handle nested types result.Target = ConvertTypeHelper(genericType.DeclaringType, typeArguments); - AddTypeAnnotation(result.Target, genericType.DeclaringType); + // Use correct number of type arguments on the declaring type + var declaringType = genericType.DeclaringType; + if (outerTypeParameterCount > 0) + { + declaringType = new ParameterizedType(genericType.DeclaringType, typeArguments.Take(outerTypeParameterCount)); + } + AddTypeAnnotation(result.Target, declaringType); } else {