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 Livoid 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