template <typename T, typename... Args>
void fun(T x, Args... args) {}

void f() {
  fun(1, 2, 3, 4);
  // The results are quite awkward here, but it's the best we can do for now.
  // Tools, including clangd, can unexpand "args" when showing this to the user.
  // The important thing is that we provide OVERLOAD signature in all those cases.
  //
  // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:%(line-5):7 %s -o - | FileCheck --check-prefix=CHECK-1 %s
  // CHECK-1: OVERLOAD: [#void#]fun(<#T x#>)
  // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:%(line-7):10 %s -o - | FileCheck --check-prefix=CHECK-2 %s
  // CHECK-2: OVERLOAD: [#void#]fun(int x)
  // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:%(line-9):13 %s -o - | FileCheck --check-prefix=CHECK-3 %s
  // CHECK-3: OVERLOAD: [#void#]fun(int x, int args)
  // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:%(line-11):16 %s -o - | FileCheck --check-prefix=CHECK-4 %s
  // CHECK-4: OVERLOAD: [#void#]fun(int x, int args, int args)
}
