From 06edc13ffd652678f92041c017b74a9c2a4db327 Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Fri, 25 May 2018 17:27:18 +0300 Subject: [PATCH] performance --- .../resolve/graphInference/InferenceSession.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) 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 9d742baac7cc..8b28c6d917a2 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 @@ -588,7 +588,7 @@ public class InferenceSession { foundErrorMessage = checkBoundsConsistency(mySiteSubstitutor, inferenceVariable) == PsiType.NULL; } mySiteSubstitutor = mySiteSubstitutor - .put(typeParameter, JavaPsiFacade.getInstance(typeParameter.getProject()).getElementFactory().createType(typeParameter)); + .put(typeParameter, JavaPsiFacade.getInstance(myManager.getProject()).getElementFactory().createType(typeParameter)); } } } @@ -627,7 +627,7 @@ public class InferenceSession { } InferenceVariable variable = new InferenceVariable(context, parameter, name); result.add(variable); - final PsiElementFactory elementFactory = JavaPsiFacade.getElementFactory(parameter.getProject()); + final PsiElementFactory elementFactory = JavaPsiFacade.getElementFactory(myManager.getProject()); myInferenceSubstitution = myInferenceSubstitution.put(parameter, elementFactory.createType(variable)); myRestoreNameSubstitution = myRestoreNameSubstitution.put(variable, elementFactory.createType(parameter)); myInferenceVariables.add(variable); @@ -1621,11 +1621,13 @@ public class InferenceSession { } //no additional constraints for array creation - if (PsiEquivalenceUtil.areElementsEquivalent(containingClass, JavaPsiFacade.getElementFactory(reference.getProject()).getArrayClass(PsiUtil.getLanguageLevel(reference)))) { + PsiElementFactory factory = JavaPsiFacade.getElementFactory(myManager.getProject()); + if (PsiEquivalenceUtil.areElementsEquivalent(containingClass, factory + .getArrayClass(PsiUtil.getLanguageLevel(reference)))) { return null; } - final PsiType qType = JavaPsiFacade.getElementFactory(method.getProject()).createType(containingClass, psiSubstitutor); + final PsiType qType = factory.createType(containingClass, psiSubstitutor); addConstraint(new TypeCompatibilityConstraint(substituteWithInferenceVariables(qType), PsiUtil.captureToplevelWildcards(pType, reference))); @@ -1952,7 +1954,7 @@ public class InferenceSession { public PsiType startWithFreshVars(PsiType type) { PsiSubstitutor s = PsiSubstitutor.EMPTY; for (InferenceVariable variable : myInferenceVariables) { - s = s.put(variable, JavaPsiFacade.getElementFactory(variable.getProject()).createType(variable.getParameter())); + s = s.put(variable, JavaPsiFacade.getElementFactory(myManager.getProject()).createType(variable.getParameter())); } return s.substitute(type); }