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 a72cfe5027b7..2c93a6e8945b 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 @@ -128,7 +128,7 @@ public class JavaMethodsConflictResolver implements PsiConflictResolver{ } } - private void checkSpecifics(List conflicts, @MethodCandidateInfo.ApplicabilityLevelConstant int applicabilityLevel) { + public void checkSpecifics(List conflicts, @MethodCandidateInfo.ApplicabilityLevelConstant int applicabilityLevel) { final boolean applicable = applicabilityLevel > MethodCandidateInfo.ApplicabilityLevel.NOT_APPLICABLE; int conflictsCount = conflicts.size(); @@ -450,7 +450,8 @@ public class JavaMethodsConflictResolver implements PsiConflictResolver{ PsiType type1 = params1[Math.min(i, params1.length - 1)].getType(); PsiType type2 = params2[Math.min(i, params2.length - 1)].getType(); if (applicabilityLevel == MethodCandidateInfo.ApplicabilityLevel.VARARGS) { - if (type1 instanceof PsiEllipsisType && type2 instanceof PsiEllipsisType) { + if (type1 instanceof PsiEllipsisType && type2 instanceof PsiEllipsisType && + (((PsiArrayType)type1).getComponentType().equalsToText(CommonClassNames.JAVA_LANG_OBJECT) || ((PsiArrayType)type2).getComponentType().equalsToText(CommonClassNames.JAVA_LANG_OBJECT))) { type1 = ((PsiEllipsisType)type1).toArrayType(); type2 = ((PsiEllipsisType)type2).toArrayType(); } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/ambiguousVarargs/pck/AmbiguousMethodCall.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/ambiguousVarargs/pck/AmbiguousMethodCall.java index 3ced31214dcf..d1b120225a79 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/ambiguousVarargs/pck/AmbiguousMethodCall.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/ambiguousVarargs/pck/AmbiguousMethodCall.java @@ -21,4 +21,12 @@ abstract class A { { foo(1); } -} \ No newline at end of file +} +abstract class A1 { + abstract void foo(double ... x); + abstract void foo(int... x); + + { + foo(1); + } +}