diff --git a/java/java-psi-impl/src/com/intellij/psi/scope/conflictResolvers/JavaMethodsConflictResolver.java b/java/java-psi-impl/src/com/intellij/psi/scope/conflictResolvers/JavaMethodsConflictResolver.java index 781f5f2e93f4..6d57f3854c39 100644 --- a/java/java-psi-impl/src/com/intellij/psi/scope/conflictResolvers/JavaMethodsConflictResolver.java +++ b/java/java-psi-impl/src/com/intellij/psi/scope/conflictResolvers/JavaMethodsConflictResolver.java @@ -299,7 +299,7 @@ public class JavaMethodsConflictResolver implements PsiConflictResolver{ final PsiClass containingClass = method.getContainingClass(); if (containingClass != null && containingClass.isInterface()) { if (qualifierClass == null) { - qualifierClass = getQualifiedClass(method); + qualifierClass = getQualifiedClass(); if (qualifierClass == null) return; } if (!containingClass.getManager().areElementsEquivalent(containingClass, qualifierClass)) { @@ -310,7 +310,7 @@ public class JavaMethodsConflictResolver implements PsiConflictResolver{ } } - private PsiClass getQualifiedClass(PsiMethod method) { + private PsiClass getQualifiedClass() { final PsiElement parent = myArgumentsList.getParent(); if (parent instanceof PsiMethodCallExpression) { final PsiExpression expression = ((PsiMethodCallExpression)parent).getMethodExpression().getQualifierExpression(); @@ -320,9 +320,6 @@ public class JavaMethodsConflictResolver implements PsiConflictResolver{ return (PsiClass)resolve; } } - else if (expression == null && !ImportsUtil.hasStaticImportOn(parent, method, true)) { - return PsiTreeUtil.getParentOfType(parent, PsiClass.class); - } if (expression != null) { return PsiUtil.resolveClassInType(expression.getType()); diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/overloadResolution/UnqualifiedStaticInterfaceMethodCallsOnInnerClasses.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/overloadResolution/UnqualifiedStaticInterfaceMethodCallsOnInnerClasses.java new file mode 100644 index 000000000000..5655d2a81f71 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/overloadResolution/UnqualifiedStaticInterfaceMethodCallsOnInnerClasses.java @@ -0,0 +1,15 @@ +interface Test { + + final class Inner { + + void func() { + of(""); + of(); + of("", ""); + } + + } + + static void of(String... lists) { } + +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/lambda/OverloadResolutionTest.java b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/lambda/OverloadResolutionTest.java index 9d5181f38c45..b89768c08d8b 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/lambda/OverloadResolutionTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/lambda/OverloadResolutionTest.java @@ -262,6 +262,8 @@ public class OverloadResolutionTest extends LightDaemonAnalyzerTestCase { public void testAdaptReturnTypesOfSiblingMethods() { doTest(false);} + public void testUnqualifiedStaticInterfaceMethodCallsOnInnerClasses() { doTest(false);} + private void doTest() { doTest(true); }