diff --git a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Implementations/ConstructedReturnType.cs b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Implementations/ConstructedReturnType.cs index ed21738cc3..d0f7e0f9ad 100644 --- a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Implementations/ConstructedReturnType.cs +++ b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Implementations/ConstructedReturnType.cs @@ -128,7 +128,7 @@ namespace ICSharpCode.SharpDevelop.Dom public static IReturnType TranslateType(IReturnType input, IList typeParameters, bool convertForMethod) { - if (typeParameters == null || typeParameters.Count == 0) { + if (input == null || typeParameters == null || typeParameters.Count == 0) { return input; // nothing to do when there are no type parameters specified } if (input.IsGenericReturnType) { diff --git a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/NRefactoryResolver.cs b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/NRefactoryResolver.cs index 0ad3c1def0..9ef94dc035 100644 --- a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/NRefactoryResolver.cs +++ b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/NRefactoryResolver.cs @@ -638,6 +638,9 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver if (members != null && typeArguments != null && typeArguments.Count != 0) { List typeArgs = typeArguments.ConvertAll(r => TypeVisitor.CreateReturnType(r, this)); + // For all member-groups: + // Remove all non-methods and methods with incorrect type argument count, then + // apply the type arguments to the remaining methods. members = members.Select ( (IList memberGroup) => (IList) @@ -653,7 +656,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver }) .ToList() ) - .Where((IList memberGroup) => memberGroup.Count > 0) + .Where(memberGroup => memberGroup.Count > 0) // keep only non-empty groups .ToList(); } if (language == NR.SupportedLanguage.VBNet && members != null && members.Count > 0) {