diff options
Diffstat (limited to 'src/qdoc/clangcodeparser.cpp')
-rw-r--r-- | src/qdoc/clangcodeparser.cpp | 16 |
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: |