public @NotNull PsiSubstitutor infer(PsiParameter @Nullable [] parameters,
                                       PsiExpression @Nullable [] args,
                                       @Nullable PsiElement parent,
                                       @Nullable MethodCandidateInfo currentMethod) {
    return performGuardedInference(parameters, args, parent, currentMethod, PsiSubstitutor.EMPTY, false);
  }
public @NotNull PsiSubstitutor infer(PsiParameter @Nullable [] parameters,
                                       PsiExpression @Nullable [] args,
                                       @Nullable PsiElement parent,
                                       @Nullable MethodCandidateInfo currentMethod)