C++: add semantic support for C++11 alias decls.

Task-number: QTCREATORBUG-9386

Change-Id: Ia68f3866c122ca5261dd73b2c740b47fb15744fc
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
This commit is contained in:
Erik Verbruggen
2013-05-30 12:40:08 +02:00
committed by Nikolai Kosjar
parent c2d6081a6c
commit e2a727c450
12 changed files with 83 additions and 12 deletions

View File

@@ -154,6 +154,7 @@ private slots:
void function_declaration_2();
void function_definition_1();
void nested_class_1();
void alias_declaration_1();
void typedef_1();
void typedef_2();
void typedef_3();
@@ -320,6 +321,25 @@ void tst_Semantic::nested_class_1()
QCOMPARE(namedTy->name()->asNameId()->identifier(), objectId);
}
void tst_Semantic::alias_declaration_1()
{
QSharedPointer<Document> doc = document(
"using wobble = int;\n"
, false, false, true);
QCOMPARE(doc->errorCount, 0U);
QCOMPARE(doc->globals->memberCount(), 1U);
Declaration *decl = doc->globals->memberAt(0)->asDeclaration();
QVERIFY(decl->name());
QVERIFY(decl->name()->identifier());
QCOMPARE(decl->name()->identifier()->chars(), "wobble");
QVERIFY(decl->isTypedef());
QVERIFY(decl->type().isTypedef());
QVERIFY(decl->type()->isIntegerType());
}
void tst_Semantic::typedef_1()
{
QSharedPointer<Document> doc = document(