LookupElement[] (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) { result.add(PsiTypeLookupItem.createLookupItem(((PsiArrayType)psiType).getComponentType(), null)); } } } return lookupItems; }