diff options
Diffstat (limited to 'src/plugins/cpptools/cppcompletion_test.cpp')
-rw-r--r-- | src/plugins/cpptools/cppcompletion_test.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/plugins/cpptools/cppcompletion_test.cpp b/src/plugins/cpptools/cppcompletion_test.cpp index 679e141b75..0f12e36b07 100644 --- a/src/plugins/cpptools/cppcompletion_test.cpp +++ b/src/plugins/cpptools/cppcompletion_test.cpp @@ -2328,6 +2328,34 @@ void CppToolsPlugin::test_completion_data() << QLatin1String("foo") << QLatin1String("Foo")); + QTest::newRow("resolving_template_argument1") << _( + "template <typename T>\n" + "struct Base { T t; };\n" + "struct Foo { int foo; };\n" + "void fun() {\n" + " typedef Foo TypedefedFoo;\n" + " Base<TypedefedFoo> baseFoo;\n" + " @\n" + "}\n" + ) << _("baseFoo.t.") << (QStringList() + << QLatin1String("foo") + << QLatin1String("Foo")); + + QTest::newRow("resolving_template_argument2") << _( + "namespace NS {\n" + "template <typename T>\n" + "struct Base { T t; };\n" + "}\n" + "struct Foo { int foo; };\n" + "void fun() {\n" + " typedef Foo TypedefedFoo;\n" + " NS::Base<TypedefedFoo> baseFoo;\n" + " @\n" + "}\n" + ) << _("baseFoo.t.") << (QStringList() + << QLatin1String("foo") + << QLatin1String("Foo")); + // this is not a valid code(is not compile) but it caused a crash QTest::newRow("template_specialization_and_initialization_with_pointer2") << _( "template <typename T1, typename T2 = int>\n" |