private static String getCanonicalText(PsiType boundType) {
    if (boundType instanceof PsiIntersectionType) {
      return StringUtil.join(ContainerUtil.map(((PsiIntersectionType)boundType).getConjuncts(), type -> type.getCanonicalText()), " & ");
    }
    return boundType.getCanonicalText();
  }
private static String getCanonicalText(PsiType boundType)