diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiMethodReferenceExpressionImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiMethodReferenceExpressionImpl.java index c6fb44b0d993..c25ba98b9d40 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiMethodReferenceExpressionImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiMethodReferenceExpressionImpl.java @@ -439,9 +439,12 @@ public class PsiMethodReferenceExpressionImpl extends PsiReferenceExpressionBase } } else { if (rightTypes.length != types.length || rightTypes[rightTypes.length - 1].getArrayDimensions() != types[types.length-1].getArrayDimensions()) { - types[types.length - 1] = ((PsiArrayType)types[types.length - 1]).getComponentType(); + boolean expandTypeArray = types.length < rightTypes.length; int min = Math.min(types.length, rightTypes.length); types = Arrays.copyOf(types, min); + if (expandTypeArray) { + types[types.length - 1] = ((PsiArrayType)types[types.length - 1]).getComponentType(); + } rightTypes = Arrays.copyOf(rightTypes, min); } }