@Override
  public boolean isValid() {
    for (Map.Entry<PsiTypeParameter, PsiType> entry : mySubstitutionMap.entrySet()) {
      if (!entry.getKey().isValid()) return false;

      PsiType type = entry.getValue();
      if (type != null && !type.isValid()) return false;
    }
    return true;
  }
@Override
  public boolean isValid()