@NotNull
  private static List<PsiType> postFilter(@NotNull PsiExpression expr, PsiType type) {
    List<PsiType> result = ContainerUtil.filter(flattenAndGenerify(expr, type), t -> {
      PsiClass typeClass = PsiUtil.resolveClassInType(t);
      return typeClass == null || PsiUtil.isAccessible(typeClass, expr, null);
    });
    if (result.equals(Collections.singletonList(TypeConversionUtil.erasure(expr.getType())))) {
      return Collections.emptyList();
    }
    return result;
  }
@NotNull
  private static List<PsiType> postFilter(@NotNull PsiExpression expr, PsiType type)