summaryrefslogtreecommitdiff
path: root/java/java-analysis-impl/src/com/intellij/codeInspection/AnonymousCanBeLambdaInspection.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/java-analysis-impl/src/com/intellij/codeInspection/AnonymousCanBeLambdaInspection.java')
-rw-r--r--java/java-analysis-impl/src/com/intellij/codeInspection/AnonymousCanBeLambdaInspection.java14
1 files changed, 13 insertions, 1 deletions
diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/AnonymousCanBeLambdaInspection.java b/java/java-analysis-impl/src/com/intellij/codeInspection/AnonymousCanBeLambdaInspection.java
index c1f127d3a1df..621ce3fce2af 100644
--- a/java/java-analysis-impl/src/com/intellij/codeInspection/AnonymousCanBeLambdaInspection.java
+++ b/java/java-analysis-impl/src/com/intellij/codeInspection/AnonymousCanBeLambdaInspection.java
@@ -141,7 +141,19 @@ public class AnonymousCanBeLambdaInspection extends BaseJavaBatchLocalInspection
.inferTypeArguments(method.getTypeParameters(), parameters, expressions,
((MethodCandidateInfo)result).getSiteSubstitutor(), callExpr.getParent(),
DefaultParameterTypeInferencePolicy.INSTANCE);
- return substitutor.substitute(parameters[i].getType());
+ PsiType paramType;
+ if (i < parameters.length) {
+ paramType = parameters[i].getType();
+ }
+ else {
+ paramType = parameters[parameters.length - 1].getType();
+ if (!(paramType instanceof PsiEllipsisType)) {
+ return null;
+ }
+ paramType = ((PsiEllipsisType)paramType).getComponentType();
+ }
+
+ return substitutor.substitute(paramType);
}
}
}