diff options
Diffstat (limited to 'java/java-psi-api/src/com/intellij/psi/infos/MethodCandidateInfo.java')
-rw-r--r-- | java/java-psi-api/src/com/intellij/psi/infos/MethodCandidateInfo.java | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/java/java-psi-api/src/com/intellij/psi/infos/MethodCandidateInfo.java b/java/java-psi-api/src/com/intellij/psi/infos/MethodCandidateInfo.java index e7506ebd92fd..f43358007eab 100644 --- a/java/java-psi-api/src/com/intellij/psi/infos/MethodCandidateInfo.java +++ b/java/java-psi-api/src/com/intellij/psi/infos/MethodCandidateInfo.java @@ -180,7 +180,7 @@ public class MethodCandidateInfo extends CandidateInfo{ @NotNull public PsiSubstitutor getSubstitutor(boolean includeReturnConstraint) { PsiSubstitutor substitutor = myCalcedSubstitutor; - if (substitutor == null || !includeReturnConstraint && myLanguageLevel.isAtLeast(LanguageLevel.JDK_1_8)) { + if (substitutor == null || !includeReturnConstraint && myLanguageLevel.isAtLeast(LanguageLevel.JDK_1_8) || isOverloadCheck()) { PsiSubstitutor incompleteSubstitutor = super.getSubstitutor(); PsiMethod method = getElement(); if (myTypeArguments == null) { @@ -189,7 +189,7 @@ public class MethodCandidateInfo extends CandidateInfo{ final PsiSubstitutor inferredSubstitutor = inferTypeArguments(DefaultParameterTypeInferencePolicy.INSTANCE, includeReturnConstraint); if (!stackStamp.mayCacheNow() || - !ourOverloadGuard.currentStack().isEmpty() || + isOverloadCheck() || !includeReturnConstraint && myLanguageLevel.isAtLeast(LanguageLevel.JDK_1_8) || getMarkerList() != null && PsiResolveHelper.ourGraphGuard.currentStack().contains(getMarkerList().getParent())) { return inferredSubstitutor; @@ -209,6 +209,10 @@ public class MethodCandidateInfo extends CandidateInfo{ return substitutor; } + public static boolean isOverloadCheck() { + return !ourOverloadGuard.currentStack().isEmpty(); + } + public boolean isTypeArgumentsApplicable() { return isTypeArgumentsApplicable(false); |