C++: fix used template function parameters

It was missing colorizing and follow symbol template function parameters in case of:
* returning value
* use it as qualified name

Task-number: QTCREATORBUG-6861

Change-Id: I4226199e1f296cfe5a373783ebbc633e32fc9bcd
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
This commit is contained in:
Przemyslaw Gorszkowski
2013-05-16 10:15:02 +02:00
committed by Erik Verbruggen
parent feff33827c
commit f93758b8e1
4 changed files with 49 additions and 2 deletions

View File

@@ -195,6 +195,7 @@ private slots:
void test_checksymbols_highlightingTypeWhenUsingNamespaceClass_QTCREATORBUG7903_namespace();
void test_checksymbols_highlightingTypeWhenUsingNamespaceClass_QTCREATORBUG7903_insideFunction();
void test_checksymbols_crashWhenUsingNamespaceClass_QTCREATORBUG9323_globalNamespace();
void test_checksymbols_highlightingUsedTemplateFunctionParameter_QTCREATORBUG6861();
void test_checksymbols_crashWhenUsingNamespaceClass_QTCREATORBUG9323_namespace();
void test_checksymbols_crashWhenUsingNamespaceClass_QTCREATORBUG9323_insideFunction();
};
@@ -1702,6 +1703,7 @@ void tst_CheckSymbols::test_checksymbols_crashWhenUsingNamespaceClass_QTCREATORB
TestData::check(source, expectedUses);
}
void tst_CheckSymbols::test_checksymbols_crashWhenUsingNamespaceClass_QTCREATORBUG9323_insideFunction()
{
const QByteArray source =
@@ -1725,5 +1727,30 @@ void tst_CheckSymbols::test_checksymbols_crashWhenUsingNamespaceClass_QTCREATORB
TestData::check(source, expectedUses);
}
void tst_CheckSymbols::test_checksymbols_highlightingUsedTemplateFunctionParameter_QTCREATORBUG6861()
{
const QByteArray source =
"template<class TEMP>\n"
"TEMP \n"
"foo(TEMP in)\n"
"{\n"
" typename TEMP::type type;\n"
"}\n"
;
const QList<Use> expectedUses = QList<Use>()
<< Use(1, 16, 4, CppHighlightingSupport::TypeUse)
<< Use(2, 1, 4, CppHighlightingSupport::TypeUse)
<< Use(3, 1, 3, CppHighlightingSupport::FunctionUse)
<< Use(3, 5, 4, CppHighlightingSupport::TypeUse)
<< Use(3, 10, 2, CppHighlightingSupport::LocalUse)
<< Use(5, 14, 4, CppHighlightingSupport::TypeUse)
<< Use(5, 20, 4, CppHighlightingSupport::TypeUse)
<< Use(5, 25, 4, CppHighlightingSupport::LocalUse)
;
TestData::check(source, expectedUses);
}
QTEST_APPLESS_MAIN(tst_CheckSymbols)
#include "tst_checksymbols.moc"