diff --git a/java/java-psi-api/src/com/intellij/psi/PsiMethodReferenceUtil.java b/java/java-psi-api/src/com/intellij/psi/PsiMethodReferenceUtil.java index ad92cfebb62d..96930ebe4f97 100644 --- a/java/java-psi-api/src/com/intellij/psi/PsiMethodReferenceUtil.java +++ b/java/java-psi-api/src/com/intellij/psi/PsiMethodReferenceUtil.java @@ -87,6 +87,7 @@ public class PsiMethodReferenceUtil { myReferenceTypeQualified = referenceTypeQualified; } + @Nullable public PsiClass getContainingClass() { return myContainingClass; } 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 3c836558cc9d..555b53b908eb 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 @@ -115,8 +115,11 @@ public class PsiMethodReferenceCompatibilityConstraint implements ConstraintForm constraints.add(new TypeCompatibilityConstraint(GenericsUtil.eliminateWildcards(returnType), psiSubstitutor.substitute(applicableMethodReturnType))); } else if (applicableMember instanceof PsiClass || applicableMember instanceof PsiMethod && ((PsiMethod)applicableMember).isConstructor()) { final PsiElementFactory elementFactory = JavaPsiFacade.getElementFactory(applicableMember.getProject()); - final PsiClassType classType = elementFactory.createType(qualifierResolveResult.getContainingClass(), psiSubstitutor); - constraints.add(new TypeCompatibilityConstraint(GenericsUtil.eliminateWildcards(returnType), classType)); + final PsiClass containingClass = qualifierResolveResult.getContainingClass(); + if (containingClass != null) { + final PsiClassType classType = elementFactory.createType(containingClass, psiSubstitutor); + constraints.add(new TypeCompatibilityConstraint(GenericsUtil.eliminateWildcards(returnType), classType)); + } } } return true;