java 8 diamonds: include constructor's type parameters in inference constraints (IDEA-160918)

This commit is contained in:
Anna Kozlova
2016-09-19 17:43:55 +03:00
parent dbc3854f69
commit b8f0e626b9
3 changed files with 26 additions and 0 deletions
@@ -21,6 +21,7 @@ import com.intellij.psi.impl.source.resolve.graphInference.InferenceVariable;
import com.intellij.psi.impl.source.resolve.graphInference.PsiPolyExpressionUtil;
import com.intellij.psi.infos.MethodCandidateInfo;
import com.intellij.psi.util.TypeConversionUtil;
import com.intellij.util.ArrayUtil;
import org.jetbrains.annotations.NotNull;
import java.util.List;
@@ -142,6 +143,9 @@ public class ExpressionCompatibilityConstraint extends InputOutputConstraintForm
if (psiClass != null) {
returnType = JavaPsiFacade.getElementFactory(argumentList.getProject()).createType(psiClass, PsiSubstitutor.EMPTY);
typeParams = psiClass.getTypeParameters();
if (method != null && method.hasTypeParameters()) {
typeParams = ArrayUtil.mergeArrays(typeParams, method.getTypeParameters());
}
}
}