class X { };
struct Y { };

namespace N {
  template<typename> class Z;
}

namespace M {
  class A;
}
using M::A;

namespace N {
  class Y;
  
  void test() {
    class
    // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:17:10 %s -o - | FileCheck -check-prefix=CC1 %s
    // FIXME: the redundant Y is really annoying... it needs qualification to 
    // actually be useful. Here, it just looks redundant :(
    // CHECK-CC1: A
    // CHECK-CC1: M : M::
    // CHECK-CC1: N : N::
    // CHECK-CC1: X
    // CHECK-CC1: Y
    // CHECK-CC1: Y
    // CHECK-CC1: Z