private static boolean validateTypes(Collection<PsiType> psiTypes, ProblemSink problemSink) {
    boolean result = true;
    for (PsiType psiType : psiTypes) {
      if (!checkConcreteClass(psiType)) {
        problemSink.addErrorMessage("inspection.message.delegate.can.only.use.concrete.class.types", psiType.getCanonicalText());
        result = false;
      }
      else {
        result &= validateRecursion(psiType, problemSink);
      }
    }
    return result;
  }
private static boolean validateTypes(Collection<PsiType> psiTypes, ProblemSink problemSink)