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