From 6079af3a74c360fed8352f40b93d8b0b4de653fd Mon Sep 17 00:00:00 2001 From: peter Date: Thu, 20 Oct 2011 20:36:00 +0200 Subject: [PATCH] NPE EA-30173 --- .../codeInsight/completion/JavaInheritorsGetter.java | 3 ++- java/java-psi-api/src/com/intellij/psi/util/PsiUtil.java | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaInheritorsGetter.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaInheritorsGetter.java index 23ccc24f9d03..88457e842c85 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaInheritorsGetter.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaInheritorsGetter.java @@ -161,7 +161,8 @@ public class JavaInheritorsGetter extends CompletionProvider -1) { final JavaResolveResult resolveResult = methodCallExpression.resolveMethodGenerics(); - return PsiUtil.getApplicabilityLevel((PsiMethod)resolveResult.getElement(), resolveResult.getSubstitutor(), types, PsiUtil.getLanguageLevel(originalPosition)) + PsiMethod method = (PsiMethod)resolveResult.getElement(); + return method == null || PsiUtil.getApplicabilityLevel(method, resolveResult.getSubstitutor(), types, PsiUtil.getLanguageLevel(originalPosition)) != MethodCandidateInfo.ApplicabilityLevel.NOT_APPLICABLE; } } diff --git a/java/java-psi-api/src/com/intellij/psi/util/PsiUtil.java b/java/java-psi-api/src/com/intellij/psi/util/PsiUtil.java index d6f1c3a40b21..742b140f1e93 100644 --- a/java/java-psi-api/src/com/intellij/psi/util/PsiUtil.java +++ b/java/java-psi-api/src/com/intellij/psi/util/PsiUtil.java @@ -437,8 +437,8 @@ public final class PsiUtil extends PsiUtilCore { return getApplicabilityLevel(method, substitutorForMethod, argList.getExpressionTypes(), getLanguageLevel(argList)); } - public static int getApplicabilityLevel(final PsiMethod method, final PsiSubstitutor substitutorForMethod, @NotNull final PsiType[] args, - final LanguageLevel languageLevel) { + public static int getApplicabilityLevel(@NotNull final PsiMethod method, @NotNull final PsiSubstitutor substitutorForMethod, @NotNull final PsiType[] args, + @NotNull final LanguageLevel languageLevel) { final PsiParameter[] parms = method.getParameterList().getParameters(); if (args.length < parms.length - 1) return ApplicabilityLevel.NOT_APPLICABLE; @@ -472,7 +472,7 @@ public final class PsiUtil extends PsiUtilCore { } private static boolean areFirstArgumentsApplicable(final PsiType[] args, final PsiParameter[] parms, final LanguageLevel languageLevel, - final PsiSubstitutor substitutorForMethod) { + @NotNull final PsiSubstitutor substitutorForMethod) { for (int i = 0; i < parms.length - 1; i++) { final PsiType type = args[i]; @@ -488,7 +488,7 @@ public final class PsiUtil extends PsiUtilCore { private static PsiType getParameterType(final PsiParameter parameter, final LanguageLevel languageLevel, - final PsiSubstitutor substitutor) { + @NotNull final PsiSubstitutor substitutor) { PsiType parmType = parameter.getType(); if (parmType instanceof PsiClassType) { parmType = ((PsiClassType)parmType).setLanguageLevel(languageLevel);