From 03693dcf9954476d0d1e547ab9f2cdfb39ceb269 Mon Sep 17 00:00:00 2001 From: anna Date: Tue, 2 Oct 2012 21:36:35 +0200 Subject: [PATCH] varargs check can be applied for new java only (fix resolve tests) --- .../JavaMethodsConflictResolver.java | 2 +- .../daemon/lambda/MethodRefHighlightingTest.java | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) 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 31129d3e3642..96e270d2164f 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 @@ -454,7 +454,7 @@ public class JavaMethodsConflictResolver implements PsiConflictResolver{ PsiType type2 = params2[Math.min(i, params2.length - 1)].getType(); if (applicabilityLevel == MethodCandidateInfo.ApplicabilityLevel.VARARGS) { if (type1 instanceof PsiEllipsisType && type2 instanceof PsiEllipsisType && - (((PsiArrayType)type1).getComponentType().equalsToText(CommonClassNames.JAVA_LANG_OBJECT) || ((PsiArrayType)type2).getComponentType().equalsToText(CommonClassNames.JAVA_LANG_OBJECT))) { + (!JavaVersionService.getInstance().isAtLeast(class1, JavaSdkVersion.JDK_1_8) || ((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/testSrc/com/intellij/codeInsight/daemon/lambda/MethodRefHighlightingTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/MethodRefHighlightingTest.java index 33a8550dde24..5339ac10b9a3 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/MethodRefHighlightingTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/MethodRefHighlightingTest.java @@ -18,6 +18,9 @@ package com.intellij.codeInsight.daemon.lambda; import com.intellij.codeInsight.daemon.LightDaemonAnalyzerTestCase; import com.intellij.codeInspection.LocalInspectionTool; import com.intellij.codeInspection.unusedSymbol.UnusedSymbolLocalInspection; +import com.intellij.openapi.projectRoots.JavaSdkVersion; +import com.intellij.openapi.projectRoots.JavaVersionService; +import com.intellij.openapi.projectRoots.JavaVersionServiceImpl; import org.jetbrains.annotations.NonNls; public class MethodRefHighlightingTest extends LightDaemonAnalyzerTestCase { @@ -99,6 +102,13 @@ public class MethodRefHighlightingTest extends LightDaemonAnalyzerTestCase { } private void doTest(final boolean warnings) throws Exception { - doTest(BASE_PATH + "/" + getTestName(false) + ".java", warnings, false); + final JavaVersionServiceImpl versionService = (JavaVersionServiceImpl)JavaVersionService.getInstance(); + try { + versionService.setTestVersion(JavaSdkVersion.JDK_1_8); + doTest(BASE_PATH + "/" + getTestName(false) + ".java", warnings, false); + } + finally { + versionService.setTestVersion(null); + } } }