From bc988bc67beea371d10c3f1d8cca6caee858781c Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Tue, 24 Nov 2015 18:01:33 +0100 Subject: [PATCH] new inference: eq bounds should not contain primitive values, so no filter for instantiations is needed --- .../FunctionalInterfaceParameterizationUtil.java | 2 +- .../impl/source/resolve/graphInference/InferenceSession.java | 4 ++-- 2 files changed, 3 insertions(+), 3 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 edf53a6179b9..c970cb914a07 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 @@ -110,7 +110,7 @@ public class FunctionalInterfaceParameterizationUtil { return null; } - final PsiSubstitutor substitutor = session.retrieveNonPrimitiveEqualsBounds(session.getInferenceVariables()); + final PsiSubstitutor substitutor = session.getInstantiations(session.getInferenceVariables()); final PsiType[] newTypeParameters = new PsiType[parameters.length]; for (int i = 0; i < typeParameters.length; i++) { PsiTypeParameter typeParameter = typeParameters[i]; diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/InferenceSession.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/InferenceSession.java index 2adbe878730a..18258302181d 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/InferenceSession.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/InferenceSession.java @@ -554,11 +554,11 @@ public class InferenceSession { candidateProperties != null && candidateProperties.isVarargs(); } - public PsiSubstitutor retrieveNonPrimitiveEqualsBounds(Collection variables) { + public PsiSubstitutor getInstantiations(Collection variables) { PsiSubstitutor substitutor = PsiSubstitutor.EMPTY; for (InferenceVariable variable : variables) { final PsiType equalsBound = getEqualsBound(variable, substitutor); - if (!(equalsBound instanceof PsiPrimitiveType)) { + if (equalsBound != null && !PsiType.NULL.equals(equalsBound)) { substitutor = substitutor.put(variable, equalsBound); } }