@Override
  public LookupElement[] calculateLookupItems(Expression @NotNull [] params, ExpressionContext context) {
    if (params.length != 1) return null;
    LookupElement[] lookupItems = params[0].calculateLookupItems(context);
    if (lookupItems == null) return null;

    List<LookupElement> result = new ArrayList<>();
    for (LookupElement element : lookupItems) {
      PsiTypeLookupItem lookupItem = element.as(PsiTypeLookupItem.CLASS_CONDITION_KEY);
      if (lookupItem != null) {
        PsiType psiType = lookupItem.getType();
        if (psiType instanceof PsiArrayType arrayType) {
          result.add(PsiTypeLookupItem.createLookupItem(arrayType.getComponentType(), null));
        }
      }
    }

    return result.toArray(LookupElement.EMPTY_ARRAY);
  }
@Override
  public LookupElement[] calculateLookupItems(Expression @NotNull [] params, ExpressionContext context)