Introduce four new code-completion hooks for C++:
- after "using", show anything that can be a nested-name-specifier.
- after "using namespace", show any visible namespaces or namespace aliases
- after "namespace", show any namespace definitions in the current scope
- after "namespace identifier = ", show any visible namespaces or
namespace aliases
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82251 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/CodeCompletion/namespace-alias.cpp b/test/CodeCompletion/namespace-alias.cpp
new file mode 100644
index 0000000..8d70c45
--- /dev/null
+++ b/test/CodeCompletion/namespace-alias.cpp
@@ -0,0 +1,22 @@
+// RUN: clang-cc -fsyntax-only -code-completion-dump=1 %s -o - | FileCheck -check-prefix=CC1 %s &&
+// RUN: true
+
+namespace N4 {
+ namespace N3 { }
+}
+
+class N3;
+
+namespace N2 {
+ namespace I1 { }
+ namespace I4 = I1;
+ namespace I5 { }
+ namespace I1 { }
+
+ // CHECK-CC1: I1 : 1
+ // CHECK-CC1: I4 : 1
+ // CHECK-CC1: I5 : 1
+ // CHECK-CC1: N2 : 2
+ // CHECK-NEXT-CC1: N4 : 2
+ namespace New =
+
diff --git a/test/CodeCompletion/namespace.cpp b/test/CodeCompletion/namespace.cpp
new file mode 100644
index 0000000..db84124
--- /dev/null
+++ b/test/CodeCompletion/namespace.cpp
@@ -0,0 +1,15 @@
+// RUN: clang-cc -fsyntax-only -code-completion-dump=1 %s -o - | FileCheck -check-prefix=CC1 %s &&
+// RUN: true
+
+namespace N3 {
+}
+
+namespace N2 {
+ namespace I1 { }
+ namespace I4 = I1;
+ namespace I5 { }
+ namespace I1 { }
+
+ // CHECK-CC1: I1 : 0
+ // CHECK-NEXT-CC1: I5 : 0
+ namespace
diff --git a/test/CodeCompletion/using-namespace.cpp b/test/CodeCompletion/using-namespace.cpp
new file mode 100644
index 0000000..b30b0bc
--- /dev/null
+++ b/test/CodeCompletion/using-namespace.cpp
@@ -0,0 +1,24 @@
+// RUN: clang-cc -fsyntax-only -code-completion-dump=1 %s -o - | FileCheck -check-prefix=CC1 %s &&
+// RUN: true
+
+namespace N4 {
+ namespace N3 { }
+}
+
+class N3;
+
+namespace N2 {
+ namespace I1 { }
+ namespace I4 = I1;
+ namespace I5 { }
+ namespace I1 { }
+
+ void foo() {
+ // CHECK-CC1: I1 : 2
+ // CHECK-CC1: I4 : 2
+ // CHECK-CC1: I5 : 2
+ // CHECK-CC1: N2 : 3
+ // CHECK-NEXT-CC1: N4 : 3
+ using namespace
+
+
diff --git a/test/CodeCompletion/using.cpp b/test/CodeCompletion/using.cpp
new file mode 100644
index 0000000..7bef353
--- /dev/null
+++ b/test/CodeCompletion/using.cpp
@@ -0,0 +1,27 @@
+// RUN: clang-cc -fsyntax-only -code-completion-dump=1 %s -o - | FileCheck -check-prefix=CC1 %s &&
+// RUN: true
+
+namespace N4 {
+ namespace N3 { }
+}
+
+class N3;
+
+namespace N2 {
+ namespace I1 { }
+ namespace I4 = I1;
+ namespace I5 { }
+ namespace I1 { }
+
+ void foo() {
+ int N3;
+
+ // CHECK-CC1: I1 : 2
+ // CHECK-CC1: I4 : 2
+ // CHECK-CC1: I5 : 2
+ // CHECK-CC1: N2 : 3
+ // CHECK-CC1: N3 : 3
+ // CHECK-NEXT-CC1: N4 : 3
+ using
+
+