Browse Source

Fixed NullReferenceException when resolving in incomplete method declaration.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@3060 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 18 years ago
parent
commit
257704fc07
  1. 2
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Implementations/ConstructedReturnType.cs
  2. 5
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/NRefactoryResolver.cs

2
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Implementations/ConstructedReturnType.cs

@ -128,7 +128,7 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -128,7 +128,7 @@ namespace ICSharpCode.SharpDevelop.Dom
public static IReturnType TranslateType(IReturnType input, IList<IReturnType> 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) {

5
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/NRefactoryResolver.cs

@ -638,6 +638,9 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -638,6 +638,9 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
if (members != null && typeArguments != null && typeArguments.Count != 0) {
List<IReturnType> 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<IMember> memberGroup) => (IList<IMember>)
@ -653,7 +656,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -653,7 +656,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
})
.ToList()
)
.Where((IList<IMember> 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) {

Loading…
Cancel
Save