void (final CompletionParameters parameters, Collection<? extends PsiClassType> expectedClassTypes, final PrefixMatcher matcher, final Consumer<? super PsiType> consumer) { final PsiElement context = parameters.getPosition(); GlobalSearchScope scope = context.getResolveScope(); expectedClassTypes = ContainerUtil.mapNotNull(expectedClassTypes, type -> type.resolve() instanceof PsiTypeParameter ? null : PsiClassImplUtil.correctType(type, scope)); //quick if (!processMostProbableInheritors(parameters.getOriginalFile(), context, expectedClassTypes, consumer)) return; //long for (final PsiClassType type : expectedClassTypes) { CodeInsightUtil.processSubTypes(type, context, false, matcher, consumer); } }