List<PsiExpression> (@Nullable PsiExpression maybeArray) { if (ExpressionUtils.isNullLiteral(maybeArray)) { return Collections.emptyList(); } if (isVarargAsArray(maybeArray)) { final PsiExpression argumentsDefinition = findDefinition(maybeArray); if (argumentsDefinition instanceof PsiArrayInitializerExpression) { return Arrays.asList(((PsiArrayInitializerExpression)argumentsDefinition).getInitializers()); } if (argumentsDefinition instanceof PsiNewExpression) { final PsiArrayInitializerExpression arrayInitializer = ((PsiNewExpression)argumentsDefinition).getArrayInitializer(); if (arrayInitializer != null) { return Arrays.asList(arrayInitializer.getInitializers()); } final PsiExpression[] dimensions = ((PsiNewExpression)argumentsDefinition).getArrayDimensions(); if (dimensions.length == 1) { // new Object[length] or new Class<?>[length] final Integer itemCount = computeConstantExpression(findDefinition(dimensions[0]), Integer.class); if (itemCount != null && itemCount >= 0 && itemCount < 256) { return Collections.nCopies(itemCount, null); } } } } return null; }