From a320daff865cefa6a880c80f3bae897dd7557345 Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Fri, 13 Mar 2015 11:46:08 +0200 Subject: [PATCH] CppTools: Add a failing test for partial template specialization Task-number: QTCREATORBUG-14036 Change-Id: I7545bfa40ec3e1399d57bf5ab2486318aa1fcb9f Reviewed-by: Nikolai Kosjar --- src/plugins/cpptools/cppcompletion_test.cpp | 30 +++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/plugins/cpptools/cppcompletion_test.cpp b/src/plugins/cpptools/cppcompletion_test.cpp index f2eebca8672..405867148d0 100644 --- a/src/plugins/cpptools/cppcompletion_test.cpp +++ b/src/plugins/cpptools/cppcompletion_test.cpp @@ -319,6 +319,7 @@ void CppToolsPlugin::test_completion() QEXPECT_FAIL("enum_in_function_in_struct_in_function_anon", "QTCREATORBUG-13757", Abort); QEXPECT_FAIL("enum_in_class_accessed_in_member_func_cxx11", "QTCREATORBUG-13757", Abort); QEXPECT_FAIL("enum_in_class_accessed_in_member_func_inline_cxx11", "QTCREATORBUG-13757", Abort); + QEXPECT_FAIL("pointer_partial_specialization", "QTCREATORBUG-14036", Abort); QCOMPARE(actualCompletions, expectedCompletions); } @@ -2654,6 +2655,35 @@ void CppToolsPlugin::test_completion_data() << QLatin1String("operator ->") << QLatin1String("t") << QLatin1String("iterator")); + + QTest::newRow("pointer_partial_specialization") << _( + "template\n" + "struct Traits { typedef typename T::pointer pointer; };\n" + "\n" + "template\n" + "struct Traits<_Tp*> { typedef _Tp *pointer; };\n" + "\n" + "template\n" + "class Temp\n" + "{\n" + "protected:\n" + " typedef Traits TraitsT;\n" + "\n" + "public:\n" + " typedef typename TraitsT::pointer pointer;\n" + " pointer p;\n" + "};\n" + "\n" + "struct Foo { int bar; };\n" + "\n" + "void func()\n" + "{\n" + " Temp t;\n" + " @\n" + "}\n" + ) << _("t.p->") << (QStringList() + << QLatin1String("Foo") + << QLatin1String("bar")); } void CppToolsPlugin::test_completion_member_access_operator()