@Contract("null, _ -> null")
  @Nullable
  public static PsiType extractIterableTypeParameter(@Nullable PsiType psiType, boolean eraseTypeParameter) {
    PsiType type = substituteTypeParameter(psiType, CommonClassNames.JAVA_LANG_ITERABLE, 0, eraseTypeParameter);
    return type != null ? type : substituteTypeParameter(psiType, CommonClassNames.JAVA_UTIL_COLLECTION, 0, eraseTypeParameter);
  }
@Contract("null, _ -> null")
  @Nullable
  public static PsiType extractIterableTypeParameter(@Nullable PsiType psiType, boolean eraseTypeParameter)