Implement support for cached code completions for
nested-name-specifiers. Also includes fixes to the generation of
nested-name-specifier result in the non-cached case; we were producing
lame results for namespaces and namespace aliases, which (1) didn't
always have nested-name-specifiers when we want them, and (2) did not
have the necessary "::" as part of the completion.

llvm-svn: 111203
diff --git a/clang/test/Index/code-completion.cpp b/clang/test/Index/code-completion.cpp
index 1d50fd3..cd0317f 100644
--- a/clang/test/Index/code-completion.cpp
+++ b/clang/test/Index/code-completion.cpp
@@ -15,9 +15,9 @@
   double member;
   operator int() const;
 };
-
+struct W { };
 struct Z get_Z();
-
+namespace N { }
 void test_Z() {
   // RUN: c-index-test -code-completion-at=%s:23:11 %s | FileCheck -check-prefix=CHECK-MEMBER %s
   get_Z().member = 17;
@@ -64,4 +64,4 @@
 // CHECK-EXPR: FieldDecl:{ResultType int}{Text X::}{TypedText member} (5)
 // CHECK-EXPR: FieldDecl:{ResultType float}{Text Y::}{TypedText member} (11)
 // CHECK-EXPR: FunctionDecl:{ResultType void}{TypedText memfunc}{LeftParen (}{Optional {Placeholder int i}}{RightParen )} (22)
-
+// CHECK-EXPR: NotImplemented:{TypedText N}{Text ::} (75)