xref: /aosp_15_r20/external/clang/test/CodeCompletion/function-templates.cpp (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li namespace std {
2*67e74705SXin Li   template<typename RandomAccessIterator>
3*67e74705SXin Li   void sort(RandomAccessIterator first, RandomAccessIterator last);
4*67e74705SXin Li 
5*67e74705SXin Li   template<class X, class Y>
6*67e74705SXin Li   X* dyn_cast(Y *Val);
7*67e74705SXin Li }
8*67e74705SXin Li 
9*67e74705SXin Li class Foo {
10*67e74705SXin Li public:
11*67e74705SXin Li   template<typename T> T &getAs();
12*67e74705SXin Li };
13*67e74705SXin Li 
f()14*67e74705SXin Li void f() {
15*67e74705SXin Li   std::sort(1, 2);
16*67e74705SXin Li   Foo().getAs<int>();
17*67e74705SXin Li   // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:15:8 %s -o - | FileCheck -check-prefix=CHECK-CC1 %s
18*67e74705SXin Li   // CHECK-CC1: dyn_cast<<#class X#>>(<#Y *Val#>)
19*67e74705SXin Li   // CHECK-CC1: sort(<#RandomAccessIterator first#>, <#RandomAccessIterator last#>
20*67e74705SXin Li   // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:16:9 %s -o - | FileCheck -check-prefix=CHECK-CC2 %s
21*67e74705SXin Li   // CHECK-CC2: getAs<<#typename T#>>()
22*67e74705SXin Li )
23*67e74705SXin Li 
24