@Override
  public PsiType @NotNull [] getParameters() {
    PsiTypeParameter[] parameters = myClass.getTypeParameters();
    if (parameters.length == 0) {
      return PsiType.EMPTY_ARRAY;
    }

    PsiType[] result = new PsiType[parameters.length];
    int pos = 0;
    for (PsiTypeParameter parameter : parameters) {
      PsiType substituted = mySubstitutor.substitute(parameter);
      if (substituted == null) {
        return PsiType.EMPTY_ARRAY;
      }
      result[pos++] = substituted;
    }
    assert pos == result.length;
    return result;
  }
@Override
  public PsiType @NotNull [] getParameters()