CppEditor: Fix "insert def from decl" for template return types

Fixes: QTCREATORBUG-26397
Change-Id: Ia215f2c2b5da708b0fd7c894987683b305f4ccec
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
Christian Kandeler
2021-10-26 15:16:23 +02:00
parent a1f088376a
commit 05e698a478
6 changed files with 99 additions and 17 deletions

View File

@@ -4707,6 +4707,43 @@ N::S N::foo(const S &s)
QuickFixOperationTest(testDocuments, &factory);
}
void QuickfixTest::testInsertDefFromDeclAliasTemplateAsReturnType()
{
QList<TestDocumentPtr> testDocuments;
QByteArray original;
QByteArray expected;
// Header File
original = R"(
struct foo {
struct foo2 {
template <typename T> using MyType = T;
MyType<int> @bar();
};
};
)";
expected = original;
testDocuments << CppTestDocument::create("file.h", original, expected);
// Source File
original = R"(
#include "file.h"
)";
expected = R"(
#include "file.h"
foo::foo2::MyType<int> foo::foo2::bar()
{
}
)";
testDocuments << CppTestDocument::create("file.cpp", original, expected);
InsertDefFromDecl factory;
QuickFixOperationTest(testDocuments, &factory);
}
void QuickfixTest::testInsertDefsFromDecls_data()
{
QTest::addColumn<QByteArrayList>("headers");