private static boolean hasTypeParametersToInfer(PsiClassType classType) {
    final PsiClassType.ClassResolveResult resolveResult = classType.resolveGenerics();
    PsiClass aClass = resolveResult.getElement();
    if (aClass == null) return false;

    final Iterable<PsiTypeParameter> iterable = com.intellij.psi.util.PsiUtil.typeParametersIterable(aClass);
    if (!iterable.iterator().hasNext()) {
      return false;
    }

    for (PsiTypeParameter parameter : iterable) {
      PsiType type = resolveResult.getSubstitutor().substitute(parameter);
      if (type != null) {
        if (!(type instanceof PsiWildcardType) || ((PsiWildcardType)type).getBound() != null) {
          return false;
        }
      }
    }
    return true;
  }
private static boolean hasTypeParametersToInfer(PsiClassType classType)