@NotNull
  private PsiSubstitutor inferSubstitutor(@NotNull PsiMethod method, @NotNull ResolveState state) {
    PsiSubstitutor substitutor = state.get(PsiSubstitutor.KEY);
    if (substitutor == null) substitutor = PsiSubstitutor.EMPTY;

    return myByShape
        ? substitutor
        : mySubstitutorComputer.obtainSubstitutor(substitutor, method, state);
  }
 @Nullable
 @Override
 public PsiType[] getTypeArguments() {
   return mySubstitutorComputer.getTypeArguments();
 }