From 34cbde3a4ec75031b1d99837e9a522d35b66c5df Mon Sep 17 00:00:00 2001 From: anna Date: Thu, 28 Nov 2013 12:43:56 +0100 Subject: [PATCH] EA-52436 - IAE: PsiElementFactoryImpl.createType --- .../src/com/intellij/psi/PsiMethodReferenceUtil.java | 1 + .../PsiMethodReferenceCompatibilityConstraint.java | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) 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;