diff options
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.java | 14 |
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); } } } |