@Override
  @NotNull
  public String getCanonicalText() {
    String name = getJavaClassName();
    final PsiType[] params = getParameters();
    if (params.length == 0 || params[0] == null) return name;

    final Function<PsiType, String> f = psiType -> psiType == this ? getJavaClassName() : psiType.getCanonicalText();
    return name + "<" + StringUtil.join(params, f, ", ") + ">";
  }
@Override
  @NotNull
  public String getCanonicalText()