1ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaonamespace std { 2ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao template<typename RandomAccessIterator> 3ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao void sort(RandomAccessIterator first, RandomAccessIterator last); 4ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 5ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao template<class X, class Y> 6ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao X* dyn_cast(Y *Val); 7ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao} 8ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 9ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoclass Foo { 10ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaopublic: 11ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao template<typename T> T &getAs(); 12ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao}; 13ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 14ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaovoid f() { 15ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao std::sort(1, 2); 16ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao Foo().getAs<int>(); 17ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:15:8 %s -o - | FileCheck -check-prefix=CHECK-CC1 %s 18ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao // CHECK-CC1: dyn_cast<<#class X#>>(<#Y *Val#>) 19ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao // CHECK-CC1: sort(<#RandomAccessIterator first#>, <#RandomAccessIterator last#> 20ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:16:9 %s -o - | FileCheck -check-prefix=CHECK-CC2 %s 21ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao // CHECK-CC2: getAs<<#typename T#>>() 22ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao) 23ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 24