forked from qt-creator/qt-creator
Clang: Make Q_PROPERTY replacement simpler
The infrastructure around Q_PROPERTY extraction allows to make it static assert and still find it's parent. This way makes it easier for Clang to parse and does not provide unexisting functions for class. Change-Id: I1c40550c72d214c2448169094a46c6f793132f23 Reviewed-by: Marco Bubke <marco.bubke@qt.io>
This commit is contained in:
@@ -86,7 +86,7 @@ static Utf8String propertyParentSpelling(CXTranslationUnit cxTranslationUnit,
|
||||
tuCursor.visit([&filePath, line, column, &parentSpelling](CXCursor cxCursor, CXCursor parent) {
|
||||
const CXCursorKind kind = clang_getCursorKind(cxCursor);
|
||||
if (kind == CXCursor_Namespace || kind == CXCursor_StructDecl
|
||||
|| kind == CXCursor_ClassDecl || kind == CXCursor_CXXMethod) {
|
||||
|| kind == CXCursor_ClassDecl || kind == CXCursor_StaticAssert) {
|
||||
Cursor cursor(cxCursor);
|
||||
const SourceRange range = cursor.sourceRange();
|
||||
if (range.start().filePath() != filePath)
|
||||
@@ -96,7 +96,7 @@ static Utf8String propertyParentSpelling(CXTranslationUnit cxTranslationUnit,
|
||||
|| kind == CXCursor_ClassDecl) {
|
||||
return CXChildVisit_Recurse;
|
||||
}
|
||||
// CXCursor_CXXMethod case. This is Q_PROPERTY_MAGIC_FUNCTION
|
||||
// CXCursor_StaticAssert case. This is Q_PROPERTY static_assert
|
||||
parentSpelling = Cursor(parent).type().spelling();
|
||||
return CXChildVisit_Break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user