diff options
author | Orgad Shaneh <orgad.shaneh@audiocodes.com> | 2015-05-22 15:39:55 +0300 |
---|---|---|
committer | Orgad Shaneh <orgads@gmail.com> | 2015-06-01 16:30:47 +0000 |
commit | 07f8c474be629de75780d235df62a50ae6f27870 (patch) | |
tree | 464595fff1332ebe0fa229a5f4e1fc587cb4f486 /src/plugins/cpptools/cppcompletion_test.cpp | |
parent | a429ef3d50242e871237402a2a70da9b77bb1509 (diff) | |
download | qt-creator-07f8c474be629de75780d235df62a50ae6f27870.tar.gz |
C++: Fix decltype resolving for template function
The last nail for std::unique_ptr (GCC variant, MSVC still doesn't work).
Use-case:
template<typename T>
static T f();
struct Foo { int bar; };
void fun()
{
decltype(f<Foo>()) s;
s.bar; // bar not highlighted
}
Task-number: QTCREATORBUG-14483
Task-number: QTCREATORBUG-8937
Change-Id: I5bab757400b070cf9dbb688a44fd8eafe95ddc61
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 | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/plugins/cpptools/cppcompletion_test.cpp b/src/plugins/cpptools/cppcompletion_test.cpp index e9c35198cb..00b796f0a8 100644 --- a/src/plugins/cpptools/cppcompletion_test.cpp +++ b/src/plugins/cpptools/cppcompletion_test.cpp @@ -2984,6 +2984,21 @@ void CppToolsPlugin::test_completion_data() ) << _("s.") << (QStringList() << QLatin1String("Foo") << QLatin1String("bar")); + + QTest::newRow("typedefed_decltype_of_template_function") << _( + "template<typename T>\n" + "static T f();\n" + "\n" + "struct Foo { int bar; };\n" + "\n" + "void fun()\n" + "{\n" + " decltype(f<Foo>()) s;\n" + " @\n" + "}\n" + ) << _("s.") << (QStringList() + << QLatin1String("Foo") + << QLatin1String("bar")); } void CppToolsPlugin::test_completion_member_access_operator() |