diff options
Diffstat (limited to 'java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/FunctionalInterfaceParameterizationUtil.java')
-rw-r--r-- | java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/FunctionalInterfaceParameterizationUtil.java | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/FunctionalInterfaceParameterizationUtil.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/FunctionalInterfaceParameterizationUtil.java index b4b188c772cc..9742e0f28608 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/FunctionalInterfaceParameterizationUtil.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/FunctionalInterfaceParameterizationUtil.java @@ -36,7 +36,7 @@ public class FunctionalInterfaceParameterizationUtil { } if (classType instanceof PsiClassType) { for (PsiType type : ((PsiClassType)classType).getParameters()) { - if (type instanceof PsiWildcardType || type instanceof PsiCapturedWildcardType) { + if (type instanceof PsiWildcardType) { return true; } } @@ -94,7 +94,8 @@ public class FunctionalInterfaceParameterizationUtil { final InferenceSession session = new InferenceSession(typeParameters, PsiSubstitutor.EMPTY, expr.getManager(), expr); for (int i = 0; i < targetMethodParams.length; i++) { - session.addConstraint(new TypeEqualityConstraint(lambdaParams[i].getType(), targetMethodParams[i].getType())); + session.addConstraint(new TypeEqualityConstraint(lambdaParams[i].getType(), + session.substituteWithInferenceVariables(targetMethodParams[i].getType()))); } if (!session.repeatInferencePhases(false)) { |