From 494f7fb405676e74475fad5751cee4f36c1fbb09 Mon Sep 17 00:00:00 2001 From: anna Date: Tue, 2 Oct 2012 14:24:04 +0200 Subject: [PATCH] method refs: cleanup --- .../tree/java/PsiMethodReferenceExpressionImpl.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiMethodReferenceExpressionImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiMethodReferenceExpressionImpl.java index 03167df12ca5..654d18972db7 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiMethodReferenceExpressionImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiMethodReferenceExpressionImpl.java @@ -312,10 +312,11 @@ public class PsiMethodReferenceExpressionImpl extends PsiReferenceExpressionBase final PsiType[] signatureParameterTypes2 = psiMethod.getSignature(subst).getParameterTypes(); final boolean varArgs = psiMethod.isVarArgs(); - final boolean isStatic = psiMethod.hasModifierProperty(PsiModifier.STATIC); - + final boolean validConstructorRef = psiMethod.isConstructor() && (myContainingClass.getContainingClass() == null || myContainingClass.hasModifierProperty(PsiModifier.STATIC)); + final boolean staticOrValidConstructorRef = psiMethod.hasModifierProperty(PsiModifier.STATIC) || validConstructorRef; + if ((parameterTypes.length == signatureParameterTypes2.length || varArgs && parameterTypes.length >= signatureParameterTypes2.length) && - (!myBeginsWithReferenceType || isStatic || (psiMethod.isConstructor() && (conflict.isStaticsScopeCorrect() || myContainingClass.getContainingClass() == null)))) { + (!myBeginsWithReferenceType || staticOrValidConstructorRef)) { boolean correct = true; for (int i = 0; i < parameterTypes.length; i++) { final PsiType type1 = parameterTypes[i]; @@ -329,8 +330,7 @@ public class PsiMethodReferenceExpressionImpl extends PsiReferenceExpressionBase } } - if (hasReceiver && parameterTypes.length == signatureParameterTypes2.length + 1 && !isStatic && - (!psiMethod.isConstructor() || (myContainingClass.getContainingClass() != null) && !myContainingClass.hasModifierProperty(PsiModifier.STATIC))) { + if (hasReceiver && parameterTypes.length == signatureParameterTypes2.length + 1 && !staticOrValidConstructorRef) { boolean correct = true; for (int i = 0; i < signatureParameterTypes2.length; i++) { final PsiType type1 = parameterTypes[i + 1];