@Override
  public PsiType substitute(@NotNull PsiTypeParameter typeParameter){
    return JavaPsiFacade.getElementFactory(typeParameter.getProject()).createType(typeParameter);
  }
@Override
  public PsiType substitute(@NotNull PsiTypeParameter typeParameter)