diff options
author | Orgad Shaneh <orgad.shaneh@audiocodes.com> | 2015-05-22 15:12:26 +0300 |
---|---|---|
committer | Orgad Shaneh <orgads@gmail.com> | 2015-07-01 14:41:43 +0000 |
commit | 7bed5cd3b684c13fbf5b178a45cca1420acfe26d (patch) | |
tree | 49c4b16eca0b1d5de3750311e2615e87d7915194 /src/plugins/cpptools/cppcompletion_test.cpp | |
parent | 873408c594c5ae376a8f8dec05e60ca2c4bfa429 (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.cpp | 23 |
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() |