summaryrefslogtreecommitdiff
path: root/src/qdoc/clangcodeparser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qdoc/clangcodeparser.cpp')
-rw-r--r--src/qdoc/clangcodeparser.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/qdoc/clangcodeparser.cpp b/src/qdoc/clangcodeparser.cpp
index c7bb37120..db3461c7f 100644
--- a/src/qdoc/clangcodeparser.cpp
+++ b/src/qdoc/clangcodeparser.cpp
@@ -378,6 +378,22 @@ CXChildVisitResult ClangVisitor::visitHeader(CXCursor cursor, CXSourceLocation l
{
auto kind = clang_getCursorKind(cursor);
switch (kind) {
+ case CXCursor_TypeAliasDecl: {
+ QString spelling = getSpelling(clang_getCursorExtent(cursor));
+ QStringList typeAlias = spelling.split(QChar('='));
+ if (typeAlias.size() == 2) {
+ typeAlias[0] = typeAlias[0].trimmed();
+ typeAlias[1] = typeAlias[1].trimmed();
+ int lastBlank = typeAlias[0].lastIndexOf(QChar(' '));
+ if (lastBlank > 0) {
+ typeAlias[0] = typeAlias[0].right(typeAlias[0].size() - (lastBlank + 1));
+ TypeAliasNode* ta = new TypeAliasNode(parent_, typeAlias[0], typeAlias[1]);
+ ta->setAccess(fromCX_CXXAccessSpecifier(clang_getCXXAccessSpecifier(cursor)));
+ ta->setLocation(fromCXSourceLocation(clang_getCursorLocation(cursor)));
+ }
+ }
+ return CXChildVisit_Continue;
+ }
case CXCursor_StructDecl:
case CXCursor_UnionDecl:
case CXCursor_ClassDecl: