diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightMethodUtil.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightMethodUtil.java index b805dac3f97a..0b8b53252e24 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightMethodUtil.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightMethodUtil.java @@ -1036,12 +1036,20 @@ public class HighlightMethodUtil { parameterNameStyle += "background-color: " + ColorUtil.toHtmlColor(paramBgColor) + ";"; } + boolean varargAdded = false; for (int i = 0; i < Math.max(parameters.length, expressions.length); i++) { - PsiParameter parameter = i < parameters.length ? parameters[i] : null; - PsiExpression expression = i < expressions.length ? expressions[i] : null; boolean varargs = info != null && info.isVarargs(); if (assignmentCompatible(i, parameters, expressions, substitutor, varargs)) continue; + PsiParameter parameter = null; + if (i < parameters.length) { + parameter = parameters[i]; + } + else if (!varargAdded) { + parameter = parameters[parameters.length - 1]; + varargAdded = true; + } PsiType parameterType = substitutor.substitute(PsiTypesUtil.getParameterType(parameters, i, varargs)); + PsiExpression expression = i < expressions.length ? expressions[i] : null; boolean showShortType = HighlightUtil.showShortType(parameterType, expression != null ? expression.getType() : null); s.append(""); diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting8/VarargsTooltip.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting8/VarargsTooltip.java index ae09d28a8e71..1d7f04d7f85e 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting8/VarargsTooltip.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting8/VarargsTooltip.java @@ -4,6 +4,6 @@ class MyTest { } void test() { - processStrings(1, "str", "s"); + processStrings("", 1, "str", "s"); } } \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/lambda/GenericsHighlighting8Test.java b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/lambda/GenericsHighlighting8Test.java index 65ba0f62ac21..f19ee87ff9cd 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/lambda/GenericsHighlighting8Test.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/lambda/GenericsHighlighting8Test.java @@ -1101,15 +1101,11 @@ public class GenericsHighlighting8Test extends LightDaemonAnalyzerTestCase { int fontSize = StartupUiUtil.getLabelFont().getSize() - (SystemInfo.isWindows ? 0 : 1); String expected = "" + "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + + "" + + "" + + "" + + "" + + "" + "
" + - "Required typeProvided
charSequences:
CharSequence...String
int
String
Required type:CharSequence...
Provided:int
"; doHighlighting()