aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/cpptools/cppcompletion_test.cpp
diff options
context:
space:
mode:
authorOrgad Shaneh <orgad.shaneh@audiocodes.com>2015-05-22 15:12:26 +0300
committerOrgad Shaneh <orgads@gmail.com>2015-07-01 14:41:43 +0000
commit7bed5cd3b684c13fbf5b178a45cca1420acfe26d (patch)
tree49c4b16eca0b1d5de3750311e2615e87d7915194 /src/plugins/cpptools/cppcompletion_test.cpp
parent873408c594c5ae376a8f8dec05e60ca2c4bfa429 (diff)
C++: Cleanup LookupContext
Since the cache is now more reliable, some workarounds and optimizations in the instantiation process are not needed anymore. Also avoid instantiation of base classes when expandTemplates is disabled. As a bonus, we now resolve decltype of template function for a type that is not referenced anywhere but in the decltype. Change-Id: Idf42ba7280992db477c9aa62bb1815b27174594d Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
Diffstat (limited to 'src/plugins/cpptools/cppcompletion_test.cpp')
-rw-r--r--src/plugins/cpptools/cppcompletion_test.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/plugins/cpptools/cppcompletion_test.cpp b/src/plugins/cpptools/cppcompletion_test.cpp
index b4140d9065..b7ede1021c 100644
--- a/src/plugins/cpptools/cppcompletion_test.cpp
+++ b/src/plugins/cpptools/cppcompletion_test.cpp
@@ -3212,6 +3212,29 @@ void CppToolsPlugin::test_completion_data()
) << _("s.") << (QStringList()
<< QLatin1String("Foo")
<< QLatin1String("bar"));
+
+ QTest::newRow("nested_instantiation_typedefed_decltype_declaration_of_template_function") << _(
+ "template <typename T, typename D = T>\n"
+ "struct Temp\n"
+ "{\n"
+ " struct Nested\n"
+ " {\n"
+ " template<typename U> static T* __test(...);\n"
+ " typedef decltype(__test<D>(0)) type;\n"
+ " };\n"
+ "};\n"
+ "\n"
+ "struct Foo { int bar; };\n"
+ "\n"
+ "void func()\n"
+ "{\n"
+ " Temp<Foo>::Nested::type s;\n"
+ " @\n"
+ "}\n"
+ ) << _("s.") << (QStringList()
+ << QLatin1String("Foo")
+ << QLatin1String("bar"));
+
}
void CppToolsPlugin::test_completion_member_access_operator()