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 type | " +
- "Provided |
" +
- "" +
- " | " +
- "CharSequence... | " +
- "String |
" +
- " | | int |
" +
- " | | String |
" +
+ "Required type: | " +
+ "CharSequence... | " +
+ "" +
+ "| Provided: | " +
+ "int |
" +
"
";
doHighlighting()