1945e8d97SDouglas Gregor class X { }; 2945e8d97SDouglas Gregor struct Y { }; 3945e8d97SDouglas Gregor 4945e8d97SDouglas Gregor namespace N { 5945e8d97SDouglas Gregor template<typename> class Z; 6945e8d97SDouglas Gregor } 7945e8d97SDouglas Gregor 856c2dbcfSDouglas Gregor namespace M { 956c2dbcfSDouglas Gregor class A; 1056c2dbcfSDouglas Gregor } 1156c2dbcfSDouglas Gregor using M::A; 1256c2dbcfSDouglas Gregor 13945e8d97SDouglas Gregor namespace N { 14945e8d97SDouglas Gregor class Y; 15945e8d97SDouglas Gregor test()16945e8d97SDouglas Gregor void test() { 17ea9b03e6SDouglas Gregor class 18*b3510c42SIlya Biryukov // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:17:11 %s -o - | FileCheck -check-prefix=CHECK-CC1 %s 1952ce62f0SDouglas Gregor // FIXME: the redundant Y is really annoying... it needs qualification to 2052ce62f0SDouglas Gregor // actually be useful. Here, it just looks redundant :( 2152ce62f0SDouglas Gregor // CHECK-CC1: A 2252ce62f0SDouglas Gregor // CHECK-CC1: M : M:: 2352ce62f0SDouglas Gregor // CHECK-CC1: N : N:: 2452ce62f0SDouglas Gregor // CHECK-CC1: X 2552ce62f0SDouglas Gregor // CHECK-CC1: Y 2652ce62f0SDouglas Gregor // CHECK-CC1: Y 2752ce62f0SDouglas Gregor // CHECK-CC1: Z 28