summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppcompletion_test.cpp
diff options
context:
space:
mode:
authorPrzemyslaw Gorszkowski <pgorszkowski@gmail.com>2013-09-03 22:51:53 +0200
committerNikolai Kosjar <nikolai.kosjar@digia.com>2013-11-22 16:12:53 +0100
commit4836fa0106e3a2658f4d0018ae51c66a0b1f2b5a (patch)
tree5d25bfdbab5ecd8a7547aaf875add7009155cd7f /src/plugins/cpptools/cppcompletion_test.cpp
parent4b4e5f69901f80ace0c0dba683771c2139d5c2b8 (diff)
downloadqt-creator-4836fa0106e3a2658f4d0018ae51c66a0b1f2b5a.tar.gz
C++: fix auto completion for member of classes accessed by using
Example: namespace NS { struct S { int member; void fun(); }; } using NS::S; void S::fun() { mem// ctrl+space } Task-number: QTCREATORBUG-9037 Change-Id: I5a568be1b5c44deb02caa04996167a88a9c5d4d7 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
Diffstat (limited to 'src/plugins/cpptools/cppcompletion_test.cpp')
-rw-r--r--src/plugins/cpptools/cppcompletion_test.cpp43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/plugins/cpptools/cppcompletion_test.cpp b/src/plugins/cpptools/cppcompletion_test.cpp
index 3eed35b507..d749a7d554 100644
--- a/src/plugins/cpptools/cppcompletion_test.cpp
+++ b/src/plugins/cpptools/cppcompletion_test.cpp
@@ -2821,3 +2821,46 @@ void CppToolsPlugin::test_completion_signals_hide_QPrivateSignal()
QCOMPARE(completions.size(), 1);
QVERIFY(completions.contains(QLatin1String("timeout()")));
}
+
+void CppToolsPlugin::test_completion_member_of_class_accessed_by_using_QTCREATORBUG9037_1()
+{
+ const QByteArray source =
+ "namespace NS { struct S { int member; void fun(); }; }\n"
+ "using NS::S;\n"
+ "void S::fun()\n"
+ "{\n"
+ " @\n"
+ " // padding so we get the scope right\n"
+ "}\n"
+ ;
+ CompletionTestCase test(source, "mem");
+
+ QStringList completions = test.getCompletions();
+ QCOMPARE(completions.size(), 1);
+ QVERIFY(completions.contains(QLatin1String("member")));
+}
+
+void CppToolsPlugin::test_completion_member_of_class_accessed_by_using_QTCREATORBUG9037_2()
+{
+ const QByteArray source =
+ "namespace NS \n"
+ "{\n"
+ " namespace Internal\n"
+ " {\n"
+ " struct S { int member; void fun(); };\n"
+ " }\n"
+ " using Internal::S;\n"
+ "}\n"
+ "using NS::S;\n"
+ "void S::fun()\n"
+ "{\n"
+ " @\n"
+ " // padding so we get the scope right\n"
+ "}\n"
+ ;
+ CompletionTestCase test(source, "mem");
+
+ QStringList completions = test.getCompletions();
+ QCOMPARE(completions.size(), 1);
+ QVERIFY(completions.contains(QLatin1String("member")));
+}