static LookupElement @NotNull [] suggestInitializer(final PsiVariable variable) {
    PsiType type = variable.getType();
    PsiElementFactory elementFactory = JavaPsiFacade.getElementFactory(variable.getProject());

    List<LookupElement> result = new SmartList<>();
    String defaultValue = PsiTypesUtil.getDefaultValueOfType(type);
    String customDefaultValue = PsiTypesUtil.getDefaultValueOfType(type, true);
    if (!customDefaultValue.equals(defaultValue)) {
      PsiExpression customDef = elementFactory.createExpressionFromText(customDefaultValue, variable);
      result.add(new ExpressionLookupItem((PsiExpression)JavaCodeStyleManager.getInstance(variable.getProject()).shortenClassReferences(customDef)));
    }
    result.add(new ExpressionLookupItem(elementFactory.createExpressionFromText(defaultValue, variable)));
    PsiClass aClass = PsiUtil.resolveClassInClassTypeOnly(type);
    if (aClass != null) {
      if (!aClass.hasModifierProperty(PsiModifier.ABSTRACT) && PsiUtil.hasDefaultConstructor(aClass)) {
        String typeText = type.getCanonicalText(false);
        if (aClass.getTypeParameters().length > 0 && PsiUtil.isAvailable(JavaFeature.DIAMOND_TYPES, variable)) {
          if (!PsiDiamondTypeImpl.haveConstructorsGenericsParameters(aClass)) {
            typeText = TypeConversionUtil.erasure(type).getCanonicalText(false) + "<>";
          }
        }
        final String expressionText = PsiKeyword.NEW + " " + typeText + "()";
        PsiExpression initializer = elementFactory.createExpressionFromText(expressionText, variable);
        String variableName = variable.getName();
        LOG.assertTrue(variableName != null);
        PsiDeclarationStatement statement = elementFactory.createVariableDeclarationStatement(variableName, variable.getType(), initializer, variable);
        ExpressionLookupItem newExpression = new ExpressionLookupItem(((PsiLocalVariable)statement.getDeclaredElements()[0]).getInitializer());
        result.add(newExpression);
      }
    }
    return result.toArray(LookupElement.EMPTY_ARRAY);
  }
static LookupElement @NotNull [] suggestInitializer(final PsiVariable variable)