From 0c02d873d8fbd4648abbc84aa9ffc4db21be86c0 Mon Sep 17 00:00:00 2001 From: anna Date: Fri, 15 Nov 2013 18:18:33 +0100 Subject: [PATCH] new inference: process type arguments withing bounds (cherry picked from commit 18c175ea17eb26b4baec7cc1f7b9579849783a5e) --- .../PsiMethodReferenceCompatibilityConstraint.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/constraints/PsiMethodReferenceCompatibilityConstraint.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/constraints/PsiMethodReferenceCompatibilityConstraint.java index f99c103ee02e..ba962705c119 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/constraints/PsiMethodReferenceCompatibilityConstraint.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/constraints/PsiMethodReferenceCompatibilityConstraint.java @@ -19,9 +19,7 @@ import com.intellij.openapi.diagnostic.Logger; import com.intellij.psi.*; import com.intellij.psi.impl.source.resolve.graphInference.InferenceSession; import com.intellij.psi.impl.source.resolve.graphInference.PsiPolyExpressionUtil; -import com.intellij.psi.impl.source.tree.java.PsiMethodCallExpressionImpl; import com.intellij.psi.impl.source.tree.java.PsiMethodReferenceExpressionImpl; -import com.intellij.psi.infos.MethodCandidateInfo; import com.intellij.psi.util.PsiUtil; import java.util.Arrays; @@ -71,7 +69,9 @@ public class PsiMethodReferenceCompatibilityConstraint implements ConstraintForm LOG.assertTrue(applicableMember != null); int idx = 0; for (PsiTypeParameter param : ((PsiTypeParameterListOwner)applicableMember).getTypeParameters()) { - psiSubstitutor = psiSubstitutor.put(param, typeParameters[idx++]); + if (idx < typeParameters.length) { + psiSubstitutor = psiSubstitutor.put(param, typeParameters[idx++]); + } } final PsiParameter[] parameters = applicableMember instanceof PsiMethod ? ((PsiMethod)applicableMember).getParameterList().getParameters() : PsiParameter.EMPTY_ARRAY; if (targetParameters.length == parameters.length + 1) {