@Override
  public PsiType substitute(@NotNull PsiTypeParameter typeParameter) {
    PsiType type = getFromMap(typeParameter);
    return PsiTypes.voidType().equals(type) ? JavaPsiFacade.getElementFactory(typeParameter.getProject()).createType(typeParameter) : type;
  }
@Override
  public PsiType substitute(@NotNull PsiTypeParameter typeParameter)